11. Fetching Data from APIs#

In this recipe you will learn to retrieve data for your visualization projects using APIs (Application Programming Interfaces). This will allow you to leverage the millions of APIs that are available online, with websites like Reddit, X (formerly Twitter), and Facebook offering access to certain data sets through their APIs.

Getting ready#

For this recipe, we will use the Python library requests. If you use pip to manage your Python packages, you can install the requests library using the following command

pip install requests

How to do it#

  1. Import the requests module

import requests
  1. Define the API enpoint from which you want to request the data. For this example, we are goig to use an URL to get GitHub’s public timeline.

url = 'https://api.github.com/events'
  1. Submit a request by using the method get

response = requests.get(url=url)
type(response)
requests.models.Response
  1. Check the status code of the response

print(response.status_code)
200

Every request sent to a web-server returns a status code indicating what happened. Some common codes relevant to GET requests:

  • 200: Everything went okay, and the result (if any) has been returned.

  • 301: The server is redirecting you to a different endpoint. This can happen when a company switches domain names, or an endpoint name is changed.

  • 400: The server thinks you made a bad request. This happens when you send incorrect data or make other client-side errors.

  • 401: The server thinks you’re not authenticated. Many APIs require login credentials, so this happens when you don’t send the right credentials to access an API.

  • 403: The resource you’re trying to access is forbidden: you don’t have the right permissions to see it.

  • 404: The resource you tried to access wasn’t found on the server.

  • 503: The server is not ready to handle the request.

  1. Parse the response content using text. This will simply show the result as a string.

response.text
'[{"id":"46625537825","type":"PushEvent","actor":{"id":182719630,"login":"bi-machine","display_login":"bi-machine","gravatar_id":"","url":"https://api.github.com/users/bi-machine","avatar_url":"https://avatars.githubusercontent.com/u/182719630?"},"repo":{"id":866976722,"name":"code4fukui/fukui-kanko-people-flow-data","url":"https://api.github.com/repos/code4fukui/fukui-kanko-people-flow-data"},"payload":{"repository_id":866976722,"push_id":22687453936,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"840b23c97a67d15a3dcd73cb3dd610b171935712","before":"213be382656a3be8b3b1be236032f0c604413c58","commits":[{"sha":"840b23c97a67d15a3dcd73cb3dd610b171935712","author":{"email":"bi_dev@jig.jp","name":"bi-machine"},"message":"🤖 Add new data","distinct":true,"url":"https://api.github.com/repos/code4fukui/fukui-kanko-people-flow-data/commits/840b23c97a67d15a3dcd73cb3dd610b171935712"}]},"public":true,"created_at":"2025-02-16T21:25:45Z","org":{"id":16657908,"login":"code4fukui","gravatar_id":"","url":"https://api.github.com/orgs/code4fukui","avatar_url":"https://avatars.githubusercontent.com/u/16657908?"}},{"id":"46625537813","type":"PushEvent","actor":{"id":41898282,"login":"github-actions[bot]","display_login":"github-actions","gravatar_id":"","url":"https://api.github.com/users/github-actions[bot]","avatar_url":"https://avatars.githubusercontent.com/u/41898282?"},"repo":{"id":933858853,"name":"veekhere/just-cache-it","url":"https://api.github.com/repos/veekhere/just-cache-it"},"payload":{"repository_id":933858853,"push_id":22687453896,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"a35b3483481355fb0d61e8d4ac6ff3cb1a7c0306","before":"4d692d410c0a3cb2ad30b3e23a4f7be118b07aae","commits":[{"sha":"a35b3483481355fb0d61e8d4ac6ff3cb1a7c0306","author":{"email":"veekhere@users.noreply.github.com","name":"Automated publish"},"message":"1.0.2","distinct":true,"url":"https://api.github.com/repos/veekhere/just-cache-it/commits/a35b3483481355fb0d61e8d4ac6ff3cb1a7c0306"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537818","type":"PushEvent","actor":{"id":41898282,"login":"github-actions[bot]","display_login":"github-actions","gravatar_id":"","url":"https://api.github.com/users/github-actions[bot]","avatar_url":"https://avatars.githubusercontent.com/u/41898282?"},"repo":{"id":920316711,"name":"ChesterCraigienyrmc/Barrieziyuxing","url":"https://api.github.com/repos/ChesterCraigienyrmc/Barrieziyuxing"},"payload":{"repository_id":920316711,"push_id":22687453956,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"913eb04aa8431b7f7eaaa85160613ae6b5a55e26","before":"95234c0fc23b492aa170bcc589b6a05af19f28d0","commits":[{"sha":"913eb04aa8431b7f7eaaa85160613ae6b5a55e26","author":{"email":"nodvfwg@outlook.com","name":"ChesterCraigienyrmc"},"message":"zchmXoIiyqu","distinct":true,"url":"https://api.github.com/repos/ChesterCraigienyrmc/Barrieziyuxing/commits/913eb04aa8431b7f7eaaa85160613ae6b5a55e26"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537815","type":"PushEvent","actor":{"id":182483123,"login":"freefastconnect","display_login":"freefastconnect","gravatar_id":"","url":"https://api.github.com/users/freefastconnect","avatar_url":"https://avatars.githubusercontent.com/u/182483123?"},"repo":{"id":861597434,"name":"freefastconnect/fastconnect","url":"https://api.github.com/repos/freefastconnect/fastconnect"},"payload":{"repository_id":861597434,"push_id":22687453947,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"06dd7ebd96af7d2b736df64456d732b9ce8681de","before":"2fffd9eb22474aa026b2fe7a94941714b59bf794","commits":[{"sha":"06dd7ebd96af7d2b736df64456d732b9ce8681de","author":{"email":"freefastconnect@gmail.com","name":"freefastconnect"},"message":"super","distinct":true,"url":"https://api.github.com/repos/freefastconnect/fastconnect/commits/06dd7ebd96af7d2b736df64456d732b9ce8681de"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537807","type":"PushEvent","actor":{"id":173774847,"login":"Quang123-op","display_login":"Quang123-op","gravatar_id":"","url":"https://api.github.com/users/Quang123-op","avatar_url":"https://avatars.githubusercontent.com/u/173774847?"},"repo":{"id":927359842,"name":"Quang123-op/Heart_Attack","url":"https://api.github.com/repos/Quang123-op/Heart_Attack"},"payload":{"repository_id":927359842,"push_id":22687453911,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"4fff3d81410fd9a1d75562ce2b48d2f3056bc8b4","before":"a63c72a261a659fefc9ae8c3a92424a69da5c10e","commits":[{"sha":"4fff3d81410fd9a1d75562ce2b48d2f3056bc8b4","author":{"email":"sharofv@inbox.ru","name":"DUY"},"message":"Commit","distinct":true,"url":"https://api.github.com/repos/Quang123-op/Heart_Attack/commits/4fff3d81410fd9a1d75562ce2b48d2f3056bc8b4"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537804","type":"PushEvent","actor":{"id":143484658,"login":"dadan041100","display_login":"dadan041100","gravatar_id":"","url":"https://api.github.com/users/dadan041100","avatar_url":"https://avatars.githubusercontent.com/u/143484658?"},"repo":{"id":933803521,"name":"dadan041100/pet-tracker-system","url":"https://api.github.com/repos/dadan041100/pet-tracker-system"},"payload":{"repository_id":933803521,"push_id":22687453941,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"34baf2901d72917e1aece34f8345a969fc16fbd4","before":"1a4653e55489fa755d330f110d1c1ed343c27078","commits":[{"sha":"34baf2901d72917e1aece34f8345a969fc16fbd4","author":{"email":"ddramolete@student.apc.edu.ph","name":"Daniel D. Ramolete"},"message":"Update README.md","distinct":true,"url":"https://api.github.com/repos/dadan041100/pet-tracker-system/commits/34baf2901d72917e1aece34f8345a969fc16fbd4"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537803","type":"PushEvent","actor":{"id":167164146,"login":"fateeeeeeeee","display_login":"fateeeeeeeee","gravatar_id":"","url":"https://api.github.com/users/fateeeeeeeee","avatar_url":"https://avatars.githubusercontent.com/u/167164146?"},"repo":{"id":927356554,"name":"fateeeeeeeee/IPAnalyzer","url":"https://api.github.com/repos/fateeeeeeeee/IPAnalyzer"},"payload":{"repository_id":927356554,"push_id":22687453937,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"30ea4da2a82c443c2a8e3c4f095ab01f4edecfd2","before":"289da739b434355e7c502a070c64309d520a969b","commits":[{"sha":"30ea4da2a82c443c2a8e3c4f095ab01f4edecfd2","author":{"email":"167164146+fateeeeeeeee@users.noreply.github.com","name":"fateeeeeeeee"},"message":"Commit","distinct":true,"url":"https://api.github.com/repos/fateeeeeeeee/IPAnalyzer/commits/30ea4da2a82c443c2a8e3c4f095ab01f4edecfd2"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537808","type":"WatchEvent","actor":{"id":57781212,"login":"jkhrisjj","display_login":"jkhrisjj","gravatar_id":"","url":"https://api.github.com/users/jkhrisjj","avatar_url":"https://avatars.githubusercontent.com/u/57781212?"},"repo":{"id":641656392,"name":"unionlabs/union","url":"https://api.github.com/repos/unionlabs/union"},"payload":{"action":"started"},"public":true,"created_at":"2025-02-16T21:25:45Z","org":{"id":129756567,"login":"unionlabs","gravatar_id":"","url":"https://api.github.com/orgs/unionlabs","avatar_url":"https://avatars.githubusercontent.com/u/129756567?"}},{"id":"46625537799","type":"PushEvent","actor":{"id":195404805,"login":"stein-sudo","display_login":"stein-sudo","gravatar_id":"","url":"https://api.github.com/users/stein-sudo","avatar_url":"https://avatars.githubusercontent.com/u/195404805?"},"repo":{"id":928998603,"name":"stein-sudo/crypto","url":"https://api.github.com/repos/stein-sudo/crypto"},"payload":{"repository_id":928998603,"push_id":22687453926,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"05c9452c85c8f8dcd5d5b91aecf22c381f0f6265","before":"bcb7edb215c6e8b6998c5da14add7ae015285935","commits":[{"sha":"05c9452c85c8f8dcd5d5b91aecf22c381f0f6265","author":{"email":"richiesupdates1548@gmail.com","name":"stein-sudo"},"message":"Add files via upload","distinct":true,"url":"https://api.github.com/repos/stein-sudo/crypto/commits/05c9452c85c8f8dcd5d5b91aecf22c381f0f6265"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537800","type":"DeleteEvent","actor":{"id":178131732,"login":"mkmba-conscience[bot]","display_login":"mkmba-conscience","gravatar_id":"","url":"https://api.github.com/users/mkmba-conscience[bot]","avatar_url":"https://avatars.githubusercontent.com/u/178131732?"},"repo":{"id":712210968,"name":"mkmba-nz/ssokenizer","url":"https://api.github.com/repos/mkmba-nz/ssokenizer"},"payload":{"ref":"fix-typo","ref_type":"branch","pusher_type":"user"},"public":true,"created_at":"2025-02-16T21:25:45Z","org":{"id":134508252,"login":"mkmba-nz","gravatar_id":"","url":"https://api.github.com/orgs/mkmba-nz","avatar_url":"https://avatars.githubusercontent.com/u/134508252?"}},{"id":"46625537797","type":"PushEvent","actor":{"id":41928138,"login":"sebast759","display_login":"sebast759","gravatar_id":"","url":"https://api.github.com/users/sebast759","avatar_url":"https://avatars.githubusercontent.com/u/41928138?"},"repo":{"id":457470784,"name":"sebast759/sebast759.github.io","url":"https://api.github.com/repos/sebast759/sebast759.github.io"},"payload":{"repository_id":457470784,"push_id":22687453921,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"4a6afb97ec2483e96e77176d178900998a3edb35","before":"33ad4229f89f3c240218ad470a8cd2e99ec8de23","commits":[{"sha":"4a6afb97ec2483e96e77176d178900998a3edb35","author":{"email":"41928138+sebast759@users.noreply.github.com","name":"sebast759"},"message":"Commit_aplo","distinct":true,"url":"https://api.github.com/repos/sebast759/sebast759.github.io/commits/4a6afb97ec2483e96e77176d178900998a3edb35"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537796","type":"PushEvent","actor":{"id":30881221,"login":"toniadrenalin","display_login":"toniadrenalin","gravatar_id":"","url":"https://api.github.com/users/toniadrenalin","avatar_url":"https://avatars.githubusercontent.com/u/30881221?"},"repo":{"id":927357699,"name":"toniadrenalin/hack-crypto-wallet","url":"https://api.github.com/repos/toniadrenalin/hack-crypto-wallet"},"payload":{"repository_id":927357699,"push_id":22687453923,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"b5bd1a06a6abf57033ecb263001ec8ca647bd9a5","before":"8dfa1cd59b8b4d997aee6b0e948d8be876ec7071","commits":[{"sha":"b5bd1a06a6abf57033ecb263001ec8ca647bd9a5","author":{"email":"30881221+toniadrenalin@users.noreply.github.com","name":"toniadrenalin"},"message":"Commit","distinct":true,"url":"https://api.github.com/repos/toniadrenalin/hack-crypto-wallet/commits/b5bd1a06a6abf57033ecb263001ec8ca647bd9a5"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537794","type":"PushEvent","actor":{"id":173535095,"login":"frdpzk2","display_login":"frdpzk2","gravatar_id":"","url":"https://api.github.com/users/frdpzk2","avatar_url":"https://avatars.githubusercontent.com/u/173535095?"},"repo":{"id":818567109,"name":"frdpzk2/ppub","url":"https://api.github.com/repos/frdpzk2/ppub"},"payload":{"repository_id":818567109,"push_id":22687453919,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"fc7add87e0792727e715a5d9cda60f45adc0aeef","before":"3f3f3dde9978c1aea9e701335223d6ce444ce942","commits":[{"sha":"fc7add87e0792727e715a5d9cda60f45adc0aeef","author":{"email":"frdpzk2@gmail.com","name":"frdpzk2"},"message":"commited","distinct":true,"url":"https://api.github.com/repos/frdpzk2/ppub/commits/fc7add87e0792727e715a5d9cda60f45adc0aeef"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537789","type":"PushEvent","actor":{"id":53983028,"login":"ruihengsu","display_login":"ruihengsu","gravatar_id":"","url":"https://api.github.com/users/ruihengsu","avatar_url":"https://avatars.githubusercontent.com/u/53983028?"},"repo":{"id":723249204,"name":"ruihengsu/ruihengsu.github.io","url":"https://api.github.com/repos/ruihengsu/ruihengsu.github.io"},"payload":{"repository_id":723249204,"push_id":22687453924,"size":2,"distinct_size":2,"ref":"refs/heads/main","head":"8dc98915e741abab2eec5d630536e11d2ff2bdcf","before":"8c1b3f77ece04bfc272f3cb8a0ee56090b31cfad","commits":[{"sha":"d2aa5d4905d682b413d36292e441fca636e9645c","author":{"email":"ruihengsu@gmail.com","name":"ruihengsu"},"message":"Good","distinct":true,"url":"https://api.github.com/repos/ruihengsu/ruihengsu.github.io/commits/d2aa5d4905d682b413d36292e441fca636e9645c"},{"sha":"8dc98915e741abab2eec5d630536e11d2ff2bdcf","author":{"email":"ruihengsu@gmail.com","name":"ruihengsu"},"message":"G","distinct":true,"url":"https://api.github.com/repos/ruihengsu/ruihengsu.github.io/commits/8dc98915e741abab2eec5d630536e11d2ff2bdcf"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537795","type":"CreateEvent","actor":{"id":136048994,"login":"OKEAMAH","display_login":"OKEAMAH","gravatar_id":"","url":"https://api.github.com/users/OKEAMAH","avatar_url":"https://avatars.githubusercontent.com/u/136048994?"},"repo":{"id":831220323,"name":"OKEAMAH/ws","url":"https://api.github.com/repos/OKEAMAH/ws"},"payload":{"ref":"snyk-upgrade-b4323dff68b37a303b082676f5919e19","ref_type":"branch","master_branch":"master","description":"Simple to use, blazing fast and thoroughly tested WebSocket client and server for Node.js","pusher_type":"user"},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537786","type":"PushEvent","actor":{"id":168277661,"login":"SimonMoehnle","display_login":"SimonMoehnle","gravatar_id":"","url":"https://api.github.com/users/SimonMoehnle","avatar_url":"https://avatars.githubusercontent.com/u/168277661?"},"repo":{"id":925249418,"name":"losrhaastafari/WebprojektReiner","url":"https://api.github.com/repos/losrhaastafari/WebprojektReiner"},"payload":{"repository_id":925249418,"push_id":22687453895,"size":1,"distinct_size":1,"ref":"refs/heads/kunden","head":"52f32a8ecd7ff978d089ae0b348327fd877fd76e","before":"ecf2206aa5d2b3071d2645bbb2ac41c57980d52f","commits":[{"sha":"52f32a8ecd7ff978d089ae0b348327fd877fd76e","author":{"email":"168277661+SimonMoehnle@users.noreply.github.com","name":"SimonMoehnle"},"message":"asdf\\n\\nasdf","distinct":true,"url":"https://api.github.com/repos/losrhaastafari/WebprojektReiner/commits/52f32a8ecd7ff978d089ae0b348327fd877fd76e"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537790","type":"CreateEvent","actor":{"id":71716775,"login":"omarshakir8","display_login":"omarshakir8","gravatar_id":"","url":"https://api.github.com/users/omarshakir8","avatar_url":"https://avatars.githubusercontent.com/u/71716775?"},"repo":{"id":921841819,"name":"Capstone-Projects-2025-Spring/project-feedstack","url":"https://api.github.com/repos/Capstone-Projects-2025-Spring/project-feedstack"},"payload":{"ref":"omarshakir8-architecture3-patch","ref_type":"branch","master_branch":"main","description":"capstone-projects-2025-spring-classroom-95fb36-applebaum-projects-creation-tu-cis-4398-docs-template created by GitHub Classroom","pusher_type":"user"},"public":true,"created_at":"2025-02-16T21:25:45Z","org":{"id":195687534,"login":"Capstone-Projects-2025-Spring","gravatar_id":"","url":"https://api.github.com/orgs/Capstone-Projects-2025-Spring","avatar_url":"https://avatars.githubusercontent.com/u/195687534?"}},{"id":"46625537787","type":"CreateEvent","actor":{"id":190878850,"login":"lprhodes314","display_login":"lprhodes314","gravatar_id":"","url":"https://api.github.com/users/lprhodes314","avatar_url":"https://avatars.githubusercontent.com/u/190878850?"},"repo":{"id":933866729,"name":"lprhodes314/eecs370p2","url":"https://api.github.com/repos/lprhodes314/eecs370p2"},"payload":{"ref":null,"ref_type":"repository","master_branch":"main","description":null,"pusher_type":"user"},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537783","type":"PushEvent","actor":{"id":197246450,"login":"ifiokLab2","display_login":"ifiokLab2","gravatar_id":"","url":"https://api.github.com/users/ifiokLab2","avatar_url":"https://avatars.githubusercontent.com/u/197246450?"},"repo":{"id":931711422,"name":"ifiokLab2/elearning_app","url":"https://api.github.com/repos/ifiokLab2/elearning_app"},"payload":{"repository_id":931711422,"push_id":22687453905,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"5e14e73849f053095fef38f9b9563f7a36cadbc3","before":"9668a05cc65c6447b92998aa50793cbdd6048fa9","commits":[{"sha":"5e14e73849f053095fef38f9b9563f7a36cadbc3","author":{"email":"ifiokudoh6@gmail.com","name":"ifiokLab2"},"message":"jjjj","distinct":true,"url":"https://api.github.com/repos/ifiokLab2/elearning_app/commits/5e14e73849f053095fef38f9b9563f7a36cadbc3"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537776","type":"PushEvent","actor":{"id":188921258,"login":"Gt7o3","display_login":"Gt7o3","gravatar_id":"","url":"https://api.github.com/users/Gt7o3","avatar_url":"https://avatars.githubusercontent.com/u/188921258?"},"repo":{"id":927364616,"name":"Gt7o3/Loan-Prediction","url":"https://api.github.com/repos/Gt7o3/Loan-Prediction"},"payload":{"repository_id":927364616,"push_id":22687453922,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"6b1742796425d95c3823bd180e66f2fd386363dc","before":"49ffc98007576827d23f97fd8ff4ce9f5d241fdb","commits":[{"sha":"6b1742796425d95c3823bd180e66f2fd386363dc","author":{"email":"artemfrolovzf2906@lenta.ru","name":"Gt7o3"},"message":"Commit","distinct":true,"url":"https://api.github.com/repos/Gt7o3/Loan-Prediction/commits/6b1742796425d95c3823bd180e66f2fd386363dc"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537773","type":"PushEvent","actor":{"id":182483123,"login":"freefastconnect","display_login":"freefastconnect","gravatar_id":"","url":"https://api.github.com/users/freefastconnect","avatar_url":"https://avatars.githubusercontent.com/u/182483123?"},"repo":{"id":861597434,"name":"freefastconnect/fastconnect","url":"https://api.github.com/repos/freefastconnect/fastconnect"},"payload":{"repository_id":861597434,"push_id":22687453897,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"2fffd9eb22474aa026b2fe7a94941714b59bf794","before":"1d911248d18d08a097ec12c0cdb3ec9fdaa34f79","commits":[{"sha":"2fffd9eb22474aa026b2fe7a94941714b59bf794","author":{"email":"freefastconnect@gmail.com","name":"freefastconnect"},"message":"super","distinct":true,"url":"https://api.github.com/repos/freefastconnect/fastconnect/commits/2fffd9eb22474aa026b2fe7a94941714b59bf794"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537774","type":"PushEvent","actor":{"id":126865849,"login":"WSH032","display_login":"WSH032","gravatar_id":"","url":"https://api.github.com/users/WSH032","avatar_url":"https://avatars.githubusercontent.com/u/126865849?"},"repo":{"id":873703477,"name":"WSH032/pytauri","url":"https://api.github.com/repos/WSH032/pytauri"},"payload":{"repository_id":873703477,"push_id":22687453913,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"92eeba10e1dcc5bf0edf561f0b9575604a981259","before":"4dde910429c54c612e9f82a1317c12ad39f9771d","commits":[{"sha":"92eeba10e1dcc5bf0edf561f0b9575604a981259","author":{"email":"126865849+WSH032@users.noreply.github.com","name":"Sean Wang"},"message":"feat(pytauri)!: implement tauri `tray` feature (#79)\\n\\n* feat(pytauri)!: implement tauri `tray` feature\\n\\nAdded:\\n\\n- feat: implement tauri `tray` feature:\\n    enable `tauri/tray-icon` feature\\n    - `mod tauri::`\\n        - `Rect`\\n        - `Size`\\n        - `enum RunEvent::{MenuEvent, TrayIconEvent}`\\n        - `AppHandle::{run_on_main_thread, exit, restart,\\n          on_tray_icon_event, tray_by_id, remove_tray_by_id,\\n          default_window_icon, invoke_key}`\\n    - `mod tauri::tray`\\n    - `mod webview::`\\n        - `WebviewWindow::{run_on_main_thread, set_icon}`\\n\\nChanged:\\n\\n- bump `rust-version = \\"1.82\\"`\\n- perf(pytauri): almost all of pyo3 `pymethods` will release the `GIL`\\n  now\\n\\nDocs:\\n\\n- update `example/nicegui-app` to use `tray` and `menu` features\\n    - use `python3.10` `match` statement instead of `if-else` statement\\n    - bump `requires-python = \\">=3.10\\"`\\n\\nInternal:\\n\\n- `pytauri.ffi.ipc.JavaScriptChannelId.from_str` becomes `staticmethod`\\n  from `classmethod`\\n- refactor(pyo3-utils): use `rust v1.82` feature `Omitting empty types\\n  in pattern matching` in place of `Result<T, Infallible>::unwrap`\\n\\nBREAKING CHANGE:\\n\\n- perf(pytauri): the fields type of `enum RunEvent` `struct` variants\\n  changed to `Py<T>`\\n\\n* ci: set `python-version` to `setup-uv` step for matrix workflow\\n\\nFor matrix jobs, we must set `python-version`, otherwise `uv` may\\nincorrectly use other Python versions cached in GitHub Actions.\\n\\nRef: <https://github.com/astral-sh/uv/pull/9454>","distinct":true,"url":"https://api.github.com/repos/WSH032/pytauri/commits/92eeba10e1dcc5bf0edf561f0b9575604a981259"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537755","type":"PushEvent","actor":{"id":81983616,"login":"Joeshmoe03","display_login":"Joeshmoe03","gravatar_id":"","url":"https://api.github.com/users/Joeshmoe03","avatar_url":"https://avatars.githubusercontent.com/u/81983616?"},"repo":{"id":924262748,"name":"PanthersPool/PanthersPoolWeb","url":"https://api.github.com/repos/PanthersPool/PanthersPoolWeb"},"payload":{"repository_id":924262748,"push_id":22687453885,"size":1,"distinct_size":1,"ref":"refs/heads/josef","head":"41df44c13e386aee3b3572b529fd1f6eb0f3680b","before":"a89a074fbdb31c733441fe8a6364c40cba9e172d","commits":[{"sha":"41df44c13e386aee3b3572b529fd1f6eb0f3680b","author":{"email":"liemjt@comcast.net","name":"Josef"},"message":"Initial draft of Fine Ride Page","distinct":true,"url":"https://api.github.com/repos/PanthersPool/PanthersPoolWeb/commits/41df44c13e386aee3b3572b529fd1f6eb0f3680b"}]},"public":true,"created_at":"2025-02-16T21:25:45Z","org":{"id":196978516,"login":"PanthersPool","gravatar_id":"","url":"https://api.github.com/orgs/PanthersPool","avatar_url":"https://avatars.githubusercontent.com/u/196978516?"}},{"id":"46625537763","type":"PushEvent","actor":{"id":31290767,"login":"inl-labtrack","display_login":"inl-labtrack","gravatar_id":"","url":"https://api.github.com/users/inl-labtrack","avatar_url":"https://avatars.githubusercontent.com/u/31290767?"},"repo":{"id":384151164,"name":"idaholab/repository-statistics","url":"https://api.github.com/repos/idaholab/repository-statistics"},"payload":{"repository_id":384151164,"push_id":22687453890,"size":3,"distinct_size":3,"ref":"refs/heads/main","head":"748ad04fe651672b2b204017571b150e30819c96","before":"9078bb29367a6e18e583d5550955c006b8f60cfe","commits":[{"sha":"c4c140d1ef77be9d8dfb1990568c35a5597597e3","author":{"email":"action@github.com","name":"GitHub Action"},"message":"ghrs: snap 02-16-2116-F7FB for idaholab/Hydro_Hybrids","distinct":true,"url":"https://api.github.com/repos/idaholab/repository-statistics/commits/c4c140d1ef77be9d8dfb1990568c35a5597597e3"},{"sha":"2ede0e754395d1876d2e58ddc0bc6efebe2a6c96","author":{"email":"action@github.com","name":"GitHub Action"},"message":"ghrs: vc agg 02-16-2116-F7FB for idaholab/Hydro_Hybrids","distinct":true,"url":"https://api.github.com/repos/idaholab/repository-statistics/commits/2ede0e754395d1876d2e58ddc0bc6efebe2a6c96"},{"sha":"748ad04fe651672b2b204017571b150e30819c96","author":{"email":"action@github.com","name":"GitHub Action"},"message":"ghrs: report 02-16-2116-F7FB for idaholab/Hydro_Hybrids","distinct":true,"url":"https://api.github.com/repos/idaholab/repository-statistics/commits/748ad04fe651672b2b204017571b150e30819c96"}]},"public":true,"created_at":"2025-02-16T21:25:45Z","org":{"id":3855370,"login":"idaholab","gravatar_id":"","url":"https://api.github.com/orgs/idaholab","avatar_url":"https://avatars.githubusercontent.com/u/3855370?"}},{"id":"46625537769","type":"PullRequestEvent","actor":{"id":3298303,"login":"jsartin513","display_login":"jsartin513","gravatar_id":"","url":"https://api.github.com/users/jsartin513","avatar_url":"https://avatars.githubusercontent.com/u/3298303?"},"repo":{"id":872723380,"name":"jsartin513/video-editor","url":"https://api.github.com/repos/jsartin513/video-editor"},"payload":{"action":"opened","number":15,"pull_request":{"url":"https://api.github.com/repos/jsartin513/video-editor/pulls/15","id":2338419305,"node_id":"PR_kwDONASztM6LYXJp","html_url":"https://github.com/jsartin513/video-editor/pull/15","diff_url":"https://github.com/jsartin513/video-editor/pull/15.diff","patch_url":"https://github.com/jsartin513/video-editor/pull/15.patch","issue_url":"https://api.github.com/repos/jsartin513/video-editor/issues/15","number":15,"state":"open","locked":false,"title":"Jls/refactor","user":{"login":"jsartin513","id":3298303,"node_id":"MDQ6VXNlcjMyOTgzMDM=","avatar_url":"https://avatars.githubusercontent.com/u/3298303?v=4","gravatar_id":"","url":"https://api.github.com/users/jsartin513","html_url":"https://github.com/jsartin513","followers_url":"https://api.github.com/users/jsartin513/followers","following_url":"https://api.github.com/users/jsartin513/following{/other_user}","gists_url":"https://api.github.com/users/jsartin513/gists{/gist_id}","starred_url":"https://api.github.com/users/jsartin513/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsartin513/subscriptions","organizations_url":"https://api.github.com/users/jsartin513/orgs","repos_url":"https://api.github.com/users/jsartin513/repos","events_url":"https://api.github.com/users/jsartin513/events{/privacy}","received_events_url":"https://api.github.com/users/jsartin513/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"DRY out the functions that create the away/home team animations","created_at":"2025-02-16T21:25:43Z","updated_at":"2025-02-16T21:25:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/jsartin513/video-editor/pulls/15/commits","review_comments_url":"https://api.github.com/repos/jsartin513/video-editor/pulls/15/comments","review_comment_url":"https://api.github.com/repos/jsartin513/video-editor/pulls/comments{/number}","comments_url":"https://api.github.com/repos/jsartin513/video-editor/issues/15/comments","statuses_url":"https://api.github.com/repos/jsartin513/video-editor/statuses/d1fdefa7378d9f74c71c721510504e20229cdaf9","head":{"label":"jsartin513:jls/refactor","ref":"jls/refactor","sha":"d1fdefa7378d9f74c71c721510504e20229cdaf9","user":{"login":"jsartin513","id":3298303,"node_id":"MDQ6VXNlcjMyOTgzMDM=","avatar_url":"https://avatars.githubusercontent.com/u/3298303?v=4","gravatar_id":"","url":"https://api.github.com/users/jsartin513","html_url":"https://github.com/jsartin513","followers_url":"https://api.github.com/users/jsartin513/followers","following_url":"https://api.github.com/users/jsartin513/following{/other_user}","gists_url":"https://api.github.com/users/jsartin513/gists{/gist_id}","starred_url":"https://api.github.com/users/jsartin513/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsartin513/subscriptions","organizations_url":"https://api.github.com/users/jsartin513/orgs","repos_url":"https://api.github.com/users/jsartin513/repos","events_url":"https://api.github.com/users/jsartin513/events{/privacy}","received_events_url":"https://api.github.com/users/jsartin513/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":872723380,"node_id":"R_kgDONASztA","name":"video-editor","full_name":"jsartin513/video-editor","private":false,"owner":{"login":"jsartin513","id":3298303,"node_id":"MDQ6VXNlcjMyOTgzMDM=","avatar_url":"https://avatars.githubusercontent.com/u/3298303?v=4","gravatar_id":"","url":"https://api.github.com/users/jsartin513","html_url":"https://github.com/jsartin513","followers_url":"https://api.github.com/users/jsartin513/followers","following_url":"https://api.github.com/users/jsartin513/following{/other_user}","gists_url":"https://api.github.com/users/jsartin513/gists{/gist_id}","starred_url":"https://api.github.com/users/jsartin513/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsartin513/subscriptions","organizations_url":"https://api.github.com/users/jsartin513/orgs","repos_url":"https://api.github.com/users/jsartin513/repos","events_url":"https://api.github.com/users/jsartin513/events{/privacy}","received_events_url":"https://api.github.com/users/jsartin513/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/jsartin513/video-editor","description":"Video clipper","fork":false,"url":"https://api.github.com/repos/jsartin513/video-editor","forks_url":"https://api.github.com/repos/jsartin513/video-editor/forks","keys_url":"https://api.github.com/repos/jsartin513/video-editor/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jsartin513/video-editor/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jsartin513/video-editor/teams","hooks_url":"https://api.github.com/repos/jsartin513/video-editor/hooks","issue_events_url":"https://api.github.com/repos/jsartin513/video-editor/issues/events{/number}","events_url":"https://api.github.com/repos/jsartin513/video-editor/events","assignees_url":"https://api.github.com/repos/jsartin513/video-editor/assignees{/user}","branches_url":"https://api.github.com/repos/jsartin513/video-editor/branches{/branch}","tags_url":"https://api.github.com/repos/jsartin513/video-editor/tags","blobs_url":"https://api.github.com/repos/jsartin513/video-editor/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jsartin513/video-editor/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jsartin513/video-editor/git/refs{/sha}","trees_url":"https://api.github.com/repos/jsartin513/video-editor/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jsartin513/video-editor/statuses/{sha}","languages_url":"https://api.github.com/repos/jsartin513/video-editor/languages","stargazers_url":"https://api.github.com/repos/jsartin513/video-editor/stargazers","contributors_url":"https://api.github.com/repos/jsartin513/video-editor/contributors","subscribers_url":"https://api.github.com/repos/jsartin513/video-editor/subscribers","subscription_url":"https://api.github.com/repos/jsartin513/video-editor/subscription","commits_url":"https://api.github.com/repos/jsartin513/video-editor/commits{/sha}","git_commits_url":"https://api.github.com/repos/jsartin513/video-editor/git/commits{/sha}","comments_url":"https://api.github.com/repos/jsartin513/video-editor/comments{/number}","issue_comment_url":"https://api.github.com/repos/jsartin513/video-editor/issues/comments{/number}","contents_url":"https://api.github.com/repos/jsartin513/video-editor/contents/{+path}","compare_url":"https://api.github.com/repos/jsartin513/video-editor/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jsartin513/video-editor/merges","archive_url":"https://api.github.com/repos/jsartin513/video-editor/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jsartin513/video-editor/downloads","issues_url":"https://api.github.com/repos/jsartin513/video-editor/issues{/number}","pulls_url":"https://api.github.com/repos/jsartin513/video-editor/pulls{/number}","milestones_url":"https://api.github.com/repos/jsartin513/video-editor/milestones{/number}","notifications_url":"https://api.github.com/repos/jsartin513/video-editor/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jsartin513/video-editor/labels{/name}","releases_url":"https://api.github.com/repos/jsartin513/video-editor/releases{/id}","deployments_url":"https://api.github.com/repos/jsartin513/video-editor/deployments","created_at":"2024-10-15T00:43:37Z","updated_at":"2025-02-16T17:49:31Z","pushed_at":"2025-02-16T21:24:07Z","git_url":"git://github.com/jsartin513/video-editor.git","ssh_url":"git@github.com:jsartin513/video-editor.git","clone_url":"https://github.com/jsartin513/video-editor.git","svn_url":"https://github.com/jsartin513/video-editor","homepage":null,"size":71322,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"main"}},"base":{"label":"jsartin513:main","ref":"main","sha":"805edd90decf299325592b727635e447fb49e80f","user":{"login":"jsartin513","id":3298303,"node_id":"MDQ6VXNlcjMyOTgzMDM=","avatar_url":"https://avatars.githubusercontent.com/u/3298303?v=4","gravatar_id":"","url":"https://api.github.com/users/jsartin513","html_url":"https://github.com/jsartin513","followers_url":"https://api.github.com/users/jsartin513/followers","following_url":"https://api.github.com/users/jsartin513/following{/other_user}","gists_url":"https://api.github.com/users/jsartin513/gists{/gist_id}","starred_url":"https://api.github.com/users/jsartin513/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsartin513/subscriptions","organizations_url":"https://api.github.com/users/jsartin513/orgs","repos_url":"https://api.github.com/users/jsartin513/repos","events_url":"https://api.github.com/users/jsartin513/events{/privacy}","received_events_url":"https://api.github.com/users/jsartin513/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":872723380,"node_id":"R_kgDONASztA","name":"video-editor","full_name":"jsartin513/video-editor","private":false,"owner":{"login":"jsartin513","id":3298303,"node_id":"MDQ6VXNlcjMyOTgzMDM=","avatar_url":"https://avatars.githubusercontent.com/u/3298303?v=4","gravatar_id":"","url":"https://api.github.com/users/jsartin513","html_url":"https://github.com/jsartin513","followers_url":"https://api.github.com/users/jsartin513/followers","following_url":"https://api.github.com/users/jsartin513/following{/other_user}","gists_url":"https://api.github.com/users/jsartin513/gists{/gist_id}","starred_url":"https://api.github.com/users/jsartin513/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsartin513/subscriptions","organizations_url":"https://api.github.com/users/jsartin513/orgs","repos_url":"https://api.github.com/users/jsartin513/repos","events_url":"https://api.github.com/users/jsartin513/events{/privacy}","received_events_url":"https://api.github.com/users/jsartin513/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/jsartin513/video-editor","description":"Video clipper","fork":false,"url":"https://api.github.com/repos/jsartin513/video-editor","forks_url":"https://api.github.com/repos/jsartin513/video-editor/forks","keys_url":"https://api.github.com/repos/jsartin513/video-editor/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jsartin513/video-editor/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jsartin513/video-editor/teams","hooks_url":"https://api.github.com/repos/jsartin513/video-editor/hooks","issue_events_url":"https://api.github.com/repos/jsartin513/video-editor/issues/events{/number}","events_url":"https://api.github.com/repos/jsartin513/video-editor/events","assignees_url":"https://api.github.com/repos/jsartin513/video-editor/assignees{/user}","branches_url":"https://api.github.com/repos/jsartin513/video-editor/branches{/branch}","tags_url":"https://api.github.com/repos/jsartin513/video-editor/tags","blobs_url":"https://api.github.com/repos/jsartin513/video-editor/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jsartin513/video-editor/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jsartin513/video-editor/git/refs{/sha}","trees_url":"https://api.github.com/repos/jsartin513/video-editor/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jsartin513/video-editor/statuses/{sha}","languages_url":"https://api.github.com/repos/jsartin513/video-editor/languages","stargazers_url":"https://api.github.com/repos/jsartin513/video-editor/stargazers","contributors_url":"https://api.github.com/repos/jsartin513/video-editor/contributors","subscribers_url":"https://api.github.com/repos/jsartin513/video-editor/subscribers","subscription_url":"https://api.github.com/repos/jsartin513/video-editor/subscription","commits_url":"https://api.github.com/repos/jsartin513/video-editor/commits{/sha}","git_commits_url":"https://api.github.com/repos/jsartin513/video-editor/git/commits{/sha}","comments_url":"https://api.github.com/repos/jsartin513/video-editor/comments{/number}","issue_comment_url":"https://api.github.com/repos/jsartin513/video-editor/issues/comments{/number}","contents_url":"https://api.github.com/repos/jsartin513/video-editor/contents/{+path}","compare_url":"https://api.github.com/repos/jsartin513/video-editor/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jsartin513/video-editor/merges","archive_url":"https://api.github.com/repos/jsartin513/video-editor/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jsartin513/video-editor/downloads","issues_url":"https://api.github.com/repos/jsartin513/video-editor/issues{/number}","pulls_url":"https://api.github.com/repos/jsartin513/video-editor/pulls{/number}","milestones_url":"https://api.github.com/repos/jsartin513/video-editor/milestones{/number}","notifications_url":"https://api.github.com/repos/jsartin513/video-editor/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jsartin513/video-editor/labels{/name}","releases_url":"https://api.github.com/repos/jsartin513/video-editor/releases{/id}","deployments_url":"https://api.github.com/repos/jsartin513/video-editor/deployments","created_at":"2024-10-15T00:43:37Z","updated_at":"2025-02-16T17:49:31Z","pushed_at":"2025-02-16T21:24:07Z","git_url":"git://github.com/jsartin513/video-editor.git","ssh_url":"git@github.com:jsartin513/video-editor.git","clone_url":"https://github.com/jsartin513/video-editor.git","svn_url":"https://github.com/jsartin513/video-editor","homepage":null,"size":71322,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/jsartin513/video-editor/pulls/15"},"html":{"href":"https://github.com/jsartin513/video-editor/pull/15"},"issue":{"href":"https://api.github.com/repos/jsartin513/video-editor/issues/15"},"comments":{"href":"https://api.github.com/repos/jsartin513/video-editor/issues/15/comments"},"review_comments":{"href":"https://api.github.com/repos/jsartin513/video-editor/pulls/15/comments"},"review_comment":{"href":"https://api.github.com/repos/jsartin513/video-editor/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/jsartin513/video-editor/pulls/15/commits"},"statuses":{"href":"https://api.github.com/repos/jsartin513/video-editor/statuses/d1fdefa7378d9f74c71c721510504e20229cdaf9"}},"author_association":"OWNER","auto_merge":null,"active_lock_reason":null,"merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":3,"additions":50,"deletions":63,"changed_files":1}},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537764","type":"PushEvent","actor":{"id":166583901,"login":"trhieuyeuemm","display_login":"trhieuyeuemm","gravatar_id":"","url":"https://api.github.com/users/trhieuyeuemm","avatar_url":"https://avatars.githubusercontent.com/u/166583901?"},"repo":{"id":926698784,"name":"trhieuyeuemm/greenlight","url":"https://api.github.com/repos/trhieuyeuemm/greenlight"},"payload":{"repository_id":926698784,"push_id":22687453917,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"83739a1f6ddc1a870f7cc495a9eaaa822a35a0b2","before":"baf9979026f26aaaec2d0a28b253cb5e313f3832","commits":[{"sha":"83739a1f6ddc1a870f7cc495a9eaaa822a35a0b2","author":{"email":"166583901+trhieuyeuemm@users.noreply.github.com","name":"trhieuyeuemm"},"message":"Commit","distinct":true,"url":"https://api.github.com/repos/trhieuyeuemm/greenlight/commits/83739a1f6ddc1a870f7cc495a9eaaa822a35a0b2"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537762","type":"PushEvent","actor":{"id":183740688,"login":"f60n","display_login":"f60n","gravatar_id":"","url":"https://api.github.com/users/f60n","avatar_url":"https://avatars.githubusercontent.com/u/183740688?"},"repo":{"id":927370328,"name":"f60n/player-engagement-system","url":"https://api.github.com/repos/f60n/player-engagement-system"},"payload":{"repository_id":927370328,"push_id":22687453904,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"38a288b463af5881895d143f943484f5c4218400","before":"ec0222486a3427c26105e6991e52eae7953dfb11","commits":[{"sha":"38a288b463af5881895d143f943484f5c4218400","author":{"email":"nikitafedotovkk0682@ro.ru","name":"f60n"},"message":"Commit","distinct":true,"url":"https://api.github.com/repos/f60n/player-engagement-system/commits/38a288b463af5881895d143f943484f5c4218400"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537758","type":"PushEvent","actor":{"id":25700704,"login":"Heneros","display_login":"Heneros","gravatar_id":"","url":"https://api.github.com/users/Heneros","avatar_url":"https://avatars.githubusercontent.com/u/25700704?"},"repo":{"id":859335167,"name":"Heneros/movie-app","url":"https://api.github.com/repos/Heneros/movie-app"},"payload":{"repository_id":859335167,"push_id":22687453888,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"499973d14ba68d5b919d7323f4d6f7a152f85172","before":"bd8deaf731b7e7964e566c75fc385c321cef3c26","commits":[{"sha":"499973d14ba68d5b919d7323f4d6f7a152f85172","author":{"email":"punk60826@gmail.com","name":"Heneros"},"message":"movies graphql","distinct":true,"url":"https://api.github.com/repos/Heneros/movie-app/commits/499973d14ba68d5b919d7323f4d6f7a152f85172"}]},"public":true,"created_at":"2025-02-16T21:25:45Z"},{"id":"46625537767","type":"IssueCommentEvent","actor":{"id":1533850,"login":"gertd","display_login":"gertd","gravatar_id":"","url":"https://api.github.com/users/gertd","avatar_url":"https://avatars.githubusercontent.com/u/1533850?"},"repo":{"id":556329104,"name":"aserto-dev/topaz","url":"https://api.github.com/repos/aserto-dev/topaz"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/aserto-dev/topaz/issues/534","repository_url":"https://api.github.com/repos/aserto-dev/topaz","labels_url":"https://api.github.com/repos/aserto-dev/topaz/issues/534/labels{/name}","comments_url":"https://api.github.com/repos/aserto-dev/topaz/issues/534/comments","events_url":"https://api.github.com/repos/aserto-dev/topaz/issues/534/events","html_url":"https://github.com/aserto-dev/topaz/pull/534","id":2844023332,"node_id":"PR_kwDOISjokM6Kuvu4","number":534,"title":"GDrive: Separate \'public_viewer\' wildcard relation","user":{"login":"ronenh","id":624188,"node_id":"MDQ6VXNlcjYyNDE4OA==","avatar_url":"https://avatars.githubusercontent.com/u/624188?v=4","gravatar_id":"","url":"https://api.github.com/users/ronenh","html_url":"https://github.com/ronenh","followers_url":"https://api.github.com/users/ronenh/followers","following_url":"https://api.github.com/users/ronenh/following{/other_user}","gists_url":"https://api.github.com/users/ronenh/gists{/gist_id}","starred_url":"https://api.github.com/users/ronenh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ronenh/subscriptions","organizations_url":"https://api.github.com/users/ronenh/orgs","repos_url":"https://api.github.com/users/ronenh/repos","events_url":"https://api.github.com/users/ronenh/events{/privacy}","received_events_url":"https://api.github.com/users/ronenh/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2025-02-11T00:39:20Z","updated_at":"2025-02-16T21:25:44Z","closed_at":"2025-02-16T21:25:43Z","author_association":"CONTRIBUTOR","sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/aserto-dev/topaz/pulls/534","html_url":"https://github.com/aserto-dev/topaz/pull/534","diff_url":"https://github.com/aserto-dev/topaz/pull/534.diff","patch_url":"https://github.com/aserto-dev/topaz/pull/534.patch","merged_at":null},"body":"With these changes all gdrive assertions pass with the inverted `identifier` relation.\\r\\n\\r\\nThe `doc#viewer` relation had to be split into `viewer` and `public_viewer` because  wildcard relations cannot be used in the base of an arrow operator.\\r\\n\\r\\nDepends on:\\r\\n* https://github.com/aserto-dev/azm/pull/69\\r\\n* https://github.com/aserto-dev/go-edge-ds/pull/124","reactions":{"url":"https://api.github.com/repos/aserto-dev/topaz/issues/534/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/aserto-dev/topaz/issues/534/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/aserto-dev/topaz/issues/comments/2661625097","html_url":"https://github.com/aserto-dev/topaz/pull/534#issuecomment-2661625097","issue_url":"https://api.github.com/repos/aserto-dev/topaz/issues/534","id":2661625097,"node_id":"IC_kwDOISjokM6epS0J","user":{"login":"gertd","id":1533850,"node_id":"MDQ6VXNlcjE1MzM4NTA=","avatar_url":"https://avatars.githubusercontent.com/u/1533850?v=4","gravatar_id":"","url":"https://api.github.com/users/gertd","html_url":"https://github.com/gertd","followers_url":"https://api.github.com/users/gertd/followers","following_url":"https://api.github.com/users/gertd/following{/other_user}","gists_url":"https://api.github.com/users/gertd/gists{/gist_id}","starred_url":"https://api.github.com/users/gertd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gertd/subscriptions","organizations_url":"https://api.github.com/users/gertd/orgs","repos_url":"https://api.github.com/users/gertd/repos","events_url":"https://api.github.com/users/gertd/events{/privacy}","received_events_url":"https://api.github.com/users/gertd/received_events","type":"User","user_view_type":"public","site_admin":false},"created_at":"2025-02-16T21:25:43Z","updated_at":"2025-02-16T21:25:43Z","author_association":"MEMBER","body":"Closing: \\r\\n\\r\\nAll code changes are already in `main` \\r\\n\\r\\nAll template changes have been isolated into two new templates (citadel-inv & gdrive-inv) in order not to break existing templates.","reactions":{"url":"https://api.github.com/repos/aserto-dev/topaz/issues/comments/2661625097/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2025-02-16T21:25:45Z","org":{"id":72838458,"login":"aserto-dev","gravatar_id":"","url":"https://api.github.com/orgs/aserto-dev","avatar_url":"https://avatars.githubusercontent.com/u/72838458?"}},{"id":"46625537761","type":"PullRequestEvent","actor":{"id":178131732,"login":"mkmba-conscience[bot]","display_login":"mkmba-conscience","gravatar_id":"","url":"https://api.github.com/users/mkmba-conscience[bot]","avatar_url":"https://avatars.githubusercontent.com/u/178131732?"},"repo":{"id":712210968,"name":"mkmba-nz/ssokenizer","url":"https://api.github.com/repos/mkmba-nz/ssokenizer"},"payload":{"action":"closed","number":24,"pull_request":{"url":"https://api.github.com/repos/mkmba-nz/ssokenizer/pulls/24","id":2338419069,"node_id":"PR_kwDOKnN6GM6LYXF9","html_url":"https://github.com/mkmba-nz/ssokenizer/pull/24","diff_url":"https://github.com/mkmba-nz/ssokenizer/pull/24.diff","patch_url":"https://github.com/mkmba-nz/ssokenizer/pull/24.patch","issue_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/issues/24","number":24,"state":"closed","locked":false,"title":"fix typo","user":{"login":"mattbnz","id":37299,"node_id":"MDQ6VXNlcjM3Mjk5","avatar_url":"https://avatars.githubusercontent.com/u/37299?v=4","gravatar_id":"","url":"https://api.github.com/users/mattbnz","html_url":"https://github.com/mattbnz","followers_url":"https://api.github.com/users/mattbnz/followers","following_url":"https://api.github.com/users/mattbnz/following{/other_user}","gists_url":"https://api.github.com/users/mattbnz/gists{/gist_id}","starred_url":"https://api.github.com/users/mattbnz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattbnz/subscriptions","organizations_url":"https://api.github.com/users/mattbnz/orgs","repos_url":"https://api.github.com/users/mattbnz/repos","events_url":"https://api.github.com/users/mattbnz/events{/privacy}","received_events_url":"https://api.github.com/users/mattbnz/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"GHA lack of testing/validatino environment bites again!\\n","created_at":"2025-02-16T21:24:59Z","updated_at":"2025-02-16T21:25:44Z","closed_at":"2025-02-16T21:25:44Z","merged_at":"2025-02-16T21:25:44Z","merge_commit_sha":"4e344638053c06eba6515f1bb970400dbaa7ae7b","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/pulls/24/commits","review_comments_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/pulls/24/comments","review_comment_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/issues/24/comments","statuses_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/statuses/b50dec412132b994c9c4e841e9b01d354246e1d2","head":{"label":"mkmba-nz:fix-typo","ref":"fix-typo","sha":"b50dec412132b994c9c4e841e9b01d354246e1d2","user":{"login":"mkmba-nz","id":134508252,"node_id":"O_kgDOCARu3A","avatar_url":"https://avatars.githubusercontent.com/u/134508252?v=4","gravatar_id":"","url":"https://api.github.com/users/mkmba-nz","html_url":"https://github.com/mkmba-nz","followers_url":"https://api.github.com/users/mkmba-nz/followers","following_url":"https://api.github.com/users/mkmba-nz/following{/other_user}","gists_url":"https://api.github.com/users/mkmba-nz/gists{/gist_id}","starred_url":"https://api.github.com/users/mkmba-nz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkmba-nz/subscriptions","organizations_url":"https://api.github.com/users/mkmba-nz/orgs","repos_url":"https://api.github.com/users/mkmba-nz/repos","events_url":"https://api.github.com/users/mkmba-nz/events{/privacy}","received_events_url":"https://api.github.com/users/mkmba-nz/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":712210968,"node_id":"R_kgDOKnN6GA","name":"ssokenizer","full_name":"mkmba-nz/ssokenizer","private":false,"owner":{"login":"mkmba-nz","id":134508252,"node_id":"O_kgDOCARu3A","avatar_url":"https://avatars.githubusercontent.com/u/134508252?v=4","gravatar_id":"","url":"https://api.github.com/users/mkmba-nz","html_url":"https://github.com/mkmba-nz","followers_url":"https://api.github.com/users/mkmba-nz/followers","following_url":"https://api.github.com/users/mkmba-nz/following{/other_user}","gists_url":"https://api.github.com/users/mkmba-nz/gists{/gist_id}","starred_url":"https://api.github.com/users/mkmba-nz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkmba-nz/subscriptions","organizations_url":"https://api.github.com/users/mkmba-nz/orgs","repos_url":"https://api.github.com/users/mkmba-nz/repos","events_url":"https://api.github.com/users/mkmba-nz/events{/privacy}","received_events_url":"https://api.github.com/users/mkmba-nz/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/mkmba-nz/ssokenizer","description":null,"fork":true,"url":"https://api.github.com/repos/mkmba-nz/ssokenizer","forks_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/forks","keys_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/teams","hooks_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/hooks","issue_events_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/issues/events{/number}","events_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/events","assignees_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/assignees{/user}","branches_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/branches{/branch}","tags_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/tags","blobs_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/git/refs{/sha}","trees_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/statuses/{sha}","languages_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/languages","stargazers_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/stargazers","contributors_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/contributors","subscribers_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/subscribers","subscription_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/subscription","commits_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/commits{/sha}","git_commits_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/git/commits{/sha}","comments_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/comments{/number}","issue_comment_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/issues/comments{/number}","contents_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/contents/{+path}","compare_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/merges","archive_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/downloads","issues_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/issues{/number}","pulls_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/pulls{/number}","milestones_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/milestones{/number}","notifications_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/labels{/name}","releases_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/releases{/id}","deployments_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/deployments","created_at":"2023-10-31T02:37:35Z","updated_at":"2025-02-16T21:23:34Z","pushed_at":"2025-02-16T21:25:44Z","git_url":"git://github.com/mkmba-nz/ssokenizer.git","ssh_url":"git@github.com:mkmba-nz/ssokenizer.git","clone_url":"https://github.com/mkmba-nz/ssokenizer.git","svn_url":"https://github.com/mkmba-nz/ssokenizer","homepage":"","size":110,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main"}},"base":{"label":"mkmba-nz:main","ref":"main","sha":"f2e1d225125039e5d06b84b91a441396e70cdfa1","user":{"login":"mkmba-nz","id":134508252,"node_id":"O_kgDOCARu3A","avatar_url":"https://avatars.githubusercontent.com/u/134508252?v=4","gravatar_id":"","url":"https://api.github.com/users/mkmba-nz","html_url":"https://github.com/mkmba-nz","followers_url":"https://api.github.com/users/mkmba-nz/followers","following_url":"https://api.github.com/users/mkmba-nz/following{/other_user}","gists_url":"https://api.github.com/users/mkmba-nz/gists{/gist_id}","starred_url":"https://api.github.com/users/mkmba-nz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkmba-nz/subscriptions","organizations_url":"https://api.github.com/users/mkmba-nz/orgs","repos_url":"https://api.github.com/users/mkmba-nz/repos","events_url":"https://api.github.com/users/mkmba-nz/events{/privacy}","received_events_url":"https://api.github.com/users/mkmba-nz/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":712210968,"node_id":"R_kgDOKnN6GA","name":"ssokenizer","full_name":"mkmba-nz/ssokenizer","private":false,"owner":{"login":"mkmba-nz","id":134508252,"node_id":"O_kgDOCARu3A","avatar_url":"https://avatars.githubusercontent.com/u/134508252?v=4","gravatar_id":"","url":"https://api.github.com/users/mkmba-nz","html_url":"https://github.com/mkmba-nz","followers_url":"https://api.github.com/users/mkmba-nz/followers","following_url":"https://api.github.com/users/mkmba-nz/following{/other_user}","gists_url":"https://api.github.com/users/mkmba-nz/gists{/gist_id}","starred_url":"https://api.github.com/users/mkmba-nz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkmba-nz/subscriptions","organizations_url":"https://api.github.com/users/mkmba-nz/orgs","repos_url":"https://api.github.com/users/mkmba-nz/repos","events_url":"https://api.github.com/users/mkmba-nz/events{/privacy}","received_events_url":"https://api.github.com/users/mkmba-nz/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/mkmba-nz/ssokenizer","description":null,"fork":true,"url":"https://api.github.com/repos/mkmba-nz/ssokenizer","forks_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/forks","keys_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/teams","hooks_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/hooks","issue_events_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/issues/events{/number}","events_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/events","assignees_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/assignees{/user}","branches_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/branches{/branch}","tags_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/tags","blobs_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/git/refs{/sha}","trees_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/statuses/{sha}","languages_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/languages","stargazers_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/stargazers","contributors_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/contributors","subscribers_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/subscribers","subscription_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/subscription","commits_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/commits{/sha}","git_commits_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/git/commits{/sha}","comments_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/comments{/number}","issue_comment_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/issues/comments{/number}","contents_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/contents/{+path}","compare_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/merges","archive_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/downloads","issues_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/issues{/number}","pulls_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/pulls{/number}","milestones_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/milestones{/number}","notifications_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/labels{/name}","releases_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/releases{/id}","deployments_url":"https://api.github.com/repos/mkmba-nz/ssokenizer/deployments","created_at":"2023-10-31T02:37:35Z","updated_at":"2025-02-16T21:23:34Z","pushed_at":"2025-02-16T21:25:44Z","git_url":"git://github.com/mkmba-nz/ssokenizer.git","ssh_url":"git@github.com:mkmba-nz/ssokenizer.git","clone_url":"https://github.com/mkmba-nz/ssokenizer.git","svn_url":"https://github.com/mkmba-nz/ssokenizer","homepage":"","size":110,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/mkmba-nz/ssokenizer/pulls/24"},"html":{"href":"https://github.com/mkmba-nz/ssokenizer/pull/24"},"issue":{"href":"https://api.github.com/repos/mkmba-nz/ssokenizer/issues/24"},"comments":{"href":"https://api.github.com/repos/mkmba-nz/ssokenizer/issues/24/comments"},"review_comments":{"href":"https://api.github.com/repos/mkmba-nz/ssokenizer/pulls/24/comments"},"review_comment":{"href":"https://api.github.com/repos/mkmba-nz/ssokenizer/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mkmba-nz/ssokenizer/pulls/24/commits"},"statuses":{"href":"https://api.github.com/repos/mkmba-nz/ssokenizer/statuses/b50dec412132b994c9c4e841e9b01d354246e1d2"}},"author_association":"NONE","auto_merge":{"enabled_by":{"login":"mkmba-conscience[bot]","id":178131732,"node_id":"BOT_kgDOCp4TFA","avatar_url":"https://avatars.githubusercontent.com/u/134508252?v=4","gravatar_id":"","url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D","html_url":"https://github.com/apps/mkmba-conscience","followers_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/followers","following_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/repos","events_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"merge_method":"rebase","commit_title":null,"commit_message":null},"active_lock_reason":null,"merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"mkmba-conscience[bot]","id":178131732,"node_id":"BOT_kgDOCp4TFA","avatar_url":"https://avatars.githubusercontent.com/u/134508252?v=4","gravatar_id":"","url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D","html_url":"https://github.com/apps/mkmba-conscience","followers_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/followers","following_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/repos","events_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/mkmba-conscience%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":1,"deletions":1,"changed_files":1}},"public":true,"created_at":"2025-02-16T21:25:45Z","org":{"id":134508252,"login":"mkmba-nz","gravatar_id":"","url":"https://api.github.com/orgs/mkmba-nz","avatar_url":"https://avatars.githubusercontent.com/u/134508252?"}}]'
  1. Parse the response content in JSON format using the method json. This will return a list, as we can see by checking the type of the result.

result = response.json()
type(result)
list
  1. Check the first element of the response

result[0]
{'id': '46625537825',
 'type': 'PushEvent',
 'actor': {'id': 182719630,
  'login': 'bi-machine',
  'display_login': 'bi-machine',
  'gravatar_id': '',
  'url': 'https://api.github.com/users/bi-machine',
  'avatar_url': 'https://avatars.githubusercontent.com/u/182719630?'},
 'repo': {'id': 866976722,
  'name': 'code4fukui/fukui-kanko-people-flow-data',
  'url': 'https://api.github.com/repos/code4fukui/fukui-kanko-people-flow-data'},
 'payload': {'repository_id': 866976722,
  'push_id': 22687453936,
  'size': 1,
  'distinct_size': 1,
  'ref': 'refs/heads/main',
  'head': '840b23c97a67d15a3dcd73cb3dd610b171935712',
  'before': '213be382656a3be8b3b1be236032f0c604413c58',
  'commits': [{'sha': '840b23c97a67d15a3dcd73cb3dd610b171935712',
    'author': {'email': 'bi_dev@jig.jp', 'name': 'bi-machine'},
    'message': '🤖 Add new data',
    'distinct': True,
    'url': 'https://api.github.com/repos/code4fukui/fukui-kanko-people-flow-data/commits/840b23c97a67d15a3dcd73cb3dd610b171935712'}]},
 'public': True,
 'created_at': '2025-02-16T21:25:45Z',
 'org': {'id': 16657908,
  'login': 'code4fukui',
  'gravatar_id': '',
  'url': 'https://api.github.com/orgs/code4fukui',
  'avatar_url': 'https://avatars.githubusercontent.com/u/16657908?'}}
nasaKey = "your-key-here"
params = {'api_key': nasaKey}
response = requests.get('https://api.nasa.gov/planetary/apod', params=params)
response
<Response [403]>
response.json()
{'error': {'code': 'API_KEY_INVALID',
  'message': 'An invalid api_key was supplied. Get one at https://api.nasa.gov:443'}}