From 437ff8452a709e1e84c8fb80feca6d1a7f986cce Mon Sep 17 00:00:00 2001 From: Aleksei Fedotov Date: Tue, 25 Oct 2022 05:02:33 +0200 Subject: [PATCH] Add class Artifact (#2313) (#2319) Co-authored-by: Aleksei Fedotov --- github/Artifact.py | 178 ++++++++++++++++++ github/Artifact.pyi | 30 +++ github/Repository.py | 29 +++ github/Repository.pyi | 3 + github/WorkflowRun.py | 11 ++ tests/Artifact.py | 60 ++++++ tests/ReplayData/Artifact.setUp.txt | 11 ++ tests/ReplayData/Artifact.testDelete.txt | 44 +++++ .../Artifact.testGetArtifactsFromRepo.txt | 11 ++ .../Artifact.testGetArtifactsFromWorkflow.txt | 22 +++ .../Artifact.testGetNonexistentArtifact.txt | 22 +++ ...Artifact.testGetSingleArtifactFromRepo.txt | 11 ++ 12 files changed, 432 insertions(+) create mode 100644 github/Artifact.py create mode 100644 github/Artifact.pyi create mode 100644 tests/Artifact.py create mode 100644 tests/ReplayData/Artifact.setUp.txt create mode 100644 tests/ReplayData/Artifact.testDelete.txt create mode 100644 tests/ReplayData/Artifact.testGetArtifactsFromRepo.txt create mode 100644 tests/ReplayData/Artifact.testGetArtifactsFromWorkflow.txt create mode 100644 tests/ReplayData/Artifact.testGetNonexistentArtifact.txt create mode 100644 tests/ReplayData/Artifact.testGetSingleArtifactFromRepo.txt diff --git a/github/Artifact.py b/github/Artifact.py new file mode 100644 index 0000000000..741bfea04d --- /dev/null +++ b/github/Artifact.py @@ -0,0 +1,178 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2022 Aleksei Fedotov # +# # +# This file is part of PyGithub. # +# http://pygithub.readthedocs.io/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import github.GithubObject +import github.WorkflowRun + + +class Artifact(github.GithubObject.NonCompletableGithubObject): + """ + This class represents an Artifact of Github Run + """ + + def __repr__(self): + return self.get__repr__({"name": self._name.value, "id": self._id.value}) + + @property + def archive_download_url(self): + """ + :type: string + """ + return self._archive_download_url.value + + @property + def created_at(self): + """ + :type: datetime.datetime + """ + return self._created_at.value + + @property + def expired(self): + """ + :type: bool + """ + return self._expired.value + + @property + def expires_at(self): + """ + :type: datetime.datetime + """ + return self._expires_at.value + + @property + def head_sha(self): + """ + :type: string + """ + return self._head_sha.value + + @property + def id(self): + """ + :type: string + """ + return self._id.value + + @property + def name(self): + """ + :type: string + """ + return self._name.value + + @property + def node_id(self): + """ + :type: string + """ + return self._node_id.value + + @property + def size_in_bytes(self): + """ + :type: integer + """ + return self._size_in_bytes.value + + @property + def updated_at(self): + """ + :type: datetime.datetime + """ + return self._updated_at.value + + @property + def url(self): + """ + :type: string + """ + return self._url.value + + @property + def workflow_run(self): + """ + :type: :class:`` + """ + return self._workflow_run.value + + def delete(self) -> bool: + """ + :calls: `DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id} `_ + :rtype: bool + """ + status, headers, data = self._requester.requestBlob("DELETE", self.url) + return status == 204 + + def _initAttributes(self): + self._archive_download_url = github.GithubObject.NotSet + self._created_at = github.GithubObject.NotSet + self._expired = github.GithubObject.NotSet + self._expires_at = github.GithubObject.NotSet + self._head_sha = github.GithubObject.NotSet + self._id = github.GithubObject.NotSet + self._name = github.GithubObject.NotSet + self._node_id = github.GithubObject.NotSet + self._size_in_bytes = github.GithubObject.NotSet + self._updated_at = github.GithubObject.NotSet + self._url = github.GithubObject.NotSet + self._workflow_run = github.GithubObject.NotSet + + def _useAttributes(self, attributes): + if "archive_download_url" in attributes: # pragma no branch + self._archive_download_url = self._makeStringAttribute( + attributes["archive_download_url"] + ) + if "created_at" in attributes: # pragma no branch + assert attributes["created_at"] is None or isinstance( + attributes["created_at"], (str,) + ), attributes["created_at"] + self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "expired" in attributes: # pragma no branch + self._expired = self._makeBoolAttribute(attributes["expired"]) + if "expires_at" in attributes: # pragma no branch + assert attributes["expires_at"] is None or isinstance( + attributes["expires_at"], (str,) + ), attributes["expires_at"] + self._expires_at = self._makeDatetimeAttribute(attributes["expires_at"]) + if "head_sha" in attributes: # pragma no branch + self._head_sha = self._makeStringAttribute(attributes["head_sha"]) + if "id" in attributes: # pragma no branch + self._id = self._makeIntAttribute(attributes["id"]) + if "name" in attributes: # pragma no branch + self._name = self._makeStringAttribute(attributes["name"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) + if "size_in_bytes" in attributes: # pragma no branch + self._size_in_bytes = self._makeIntAttribute(attributes["size_in_bytes"]) + if "updated_at" in attributes: # pragma no branch + assert attributes["updated_at"] is None or isinstance( + attributes["updated_at"], (str,) + ), attributes["updated_at"] + self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) + if "workflow_run" in attributes: # pragma no branch + self._workflow_run = self._makeClassAttribute( + github.WorkflowRun.WorkflowRun, attributes["workflow_run"] + ) diff --git a/github/Artifact.pyi b/github/Artifact.pyi new file mode 100644 index 0000000000..4fe7872ae7 --- /dev/null +++ b/github/Artifact.pyi @@ -0,0 +1,30 @@ +from github.WorkflowRun import WorkflowRun +from datetime import datetime +from github.GithubObject import NonCompletableGithubObject as NonCompletableGithubObject + +class Artifact(NonCompletableGithubObject): + @property + def archive_download_url(self) -> str: ... + @property + def created_at(self) -> datetime: ... + def delete(self) -> bool: ... + @property + def expired(self) -> bool: ... + @property + def expires_at(self) -> datetime: ... + @property + def head_sha(self) -> str: ... + @property + def id(self) -> int: ... + @property + def name(self) -> str: ... + @property + def node_id(self) -> str: ... + @property + def size_in_bytes(self) -> int: ... + @property + def updated_at(self) -> datetime: ... + @property + def url(self) -> str: ... + @property + def workflow_run(self) -> WorkflowRun: ... diff --git a/github/Repository.py b/github/Repository.py index aef02f2f1f..cc9b97062b 100644 --- a/github/Repository.py +++ b/github/Repository.py @@ -65,6 +65,7 @@ # Copyright 2018 Yves Zumbach # # Copyright 2018 Leying Chen # # Copyright 2020 Pascal Hofmann # +# Copyright 2022 Aleksei Fedotov # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -91,6 +92,7 @@ from deprecated import deprecated +import github.Artifact import github.Branch import github.CheckRun import github.CheckSuite @@ -3703,6 +3705,33 @@ def get_check_run(self, check_run_id): ) return github.CheckRun.CheckRun(self._requester, headers, data, completed=True) + def get_artifacts(self): + """ + :calls: `GET /repos/{owner}/{repo}/actions/artifacts `_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Artifact.Artifact` + """ + + return github.PaginatedList.PaginatedList( + github.Artifact.Artifact, + self._requester, + f"{self.url}/actions/artifacts", + None, + list_item="artifacts", + ) + + def get_artifact(self, artifact_id): + """ + :calls: `GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id} `_ + :param artifact_id: int + :rtype: :class:`github.Artifact.Artifact` + """ + assert isinstance(artifact_id, int), artifact_id + headers, data = self._requester.requestJsonAndCheck( + "GET", f"{self.url}/actions/artifacts/{artifact_id}" + ) + + return github.Artifact.Artifact(self._requester, headers, data, completed=True) + def _initAttributes(self): self._allow_merge_commit = github.GithubObject.NotSet self._allow_rebase_merge = github.GithubObject.NotSet diff --git a/github/Repository.pyi b/github/Repository.pyi index 103fc8f1c7..9c52cb2604 100644 --- a/github/Repository.pyi +++ b/github/Repository.pyi @@ -1,6 +1,7 @@ from datetime import date, datetime from typing import Any, Dict, List, Optional, Union, overload +from github.Artifact import Artifact from github.AuthenticatedUser import AuthenticatedUser from github.Branch import Branch from github.CheckRun import CheckRun @@ -305,6 +306,8 @@ class Repository(CompletableGithubObject): def get_archive_link( self, archive_format: str, ref: Union[str, _NotSetType] = ... ) -> str: ... + def get_artifact(self) -> Artifact: ... + def get_artifacts(self) -> PaginatedList[Artifact]: ... def get_assignees(self) -> PaginatedList[NamedUser]: ... def get_branch(self, branch: str) -> Branch: ... def rename_branch(self, branch: Union[str, Branch], new_name: str) -> bool: ... diff --git a/github/WorkflowRun.py b/github/WorkflowRun.py index 4c1cfad1b0..2846c9d4ce 100644 --- a/github/WorkflowRun.py +++ b/github/WorkflowRun.py @@ -1,6 +1,7 @@ ############################ Copyrights and license ############################ # # # Copyright 2020 Steve Kowalik # +# Copyright 2022 Aleksei Fedotov # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -22,6 +23,7 @@ from collections import namedtuple +import github.Artifact import github.GithubObject import github.PullRequest @@ -170,6 +172,15 @@ def artifacts_url(self): self._completeIfNotSet(self._artifacts_url) return self._artifacts_url.value + def get_artifacts(self): + return github.PaginatedList.PaginatedList( + github.Artifact.Artifact, + self._requester, + self._artifacts_url.value, + None, + list_item="artifacts", + ) + @property def cancel_url(self): """ diff --git a/tests/Artifact.py b/tests/Artifact.py new file mode 100644 index 0000000000..f5a4447a2d --- /dev/null +++ b/tests/Artifact.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 + +import github + +from . import Framework + + +class Artifact(Framework.TestCase): + def setUp(self): + super().setUp() + self.repo = self.g.get_repo("github/vscode-codeql") + + def testGetArtifactsFromWorkflow(self): + artifact = self.repo.get_workflow_run(160995070).get_artifacts()[0] + + self.assertEqual(artifact.name, "vscode-codeql-extension") + self.assertTrue(artifact.expired) + self.assertEqual( + repr(artifact), 'Artifact(name="vscode-codeql-extension", id=10495898)' + ) + + def testGetSingleArtifactFromRepo(self): + artifact = self.repo.get_artifact(378970214) + + self.assertEqual(artifact.name, "vscode-codeql-extension") + self.assertFalse(artifact.expired) + self.assertEqual( + repr(artifact), 'Artifact(name="vscode-codeql-extension", id=378970214)' + ) + + def testGetArtifactsFromRepo(self): + artifact_id = 378970214 + artifacts = self.repo.get_artifacts() + for item in artifacts: + if item.id == artifact_id: + artifact = item + break + else: + assert False, f"No artifact {artifact_id} is found" + + self.assertEqual( + repr(artifact), + f'Artifact(name="vscode-codeql-extension", id={artifact_id})', + ) + + def testGetNonexistentArtifact(self): + artifact_id = 396724437 + repo_name = "lexa/PyGithub" + repo = self.g.get_repo(repo_name) + with self.assertRaises(github.GithubException): + repo.get_artifact(artifact_id) + + def testDelete(self): + artifact_id = 396724439 + repo_name = "lexa/PyGithub" + repo = self.g.get_repo(repo_name) + artifact = repo.get_artifact(artifact_id) + self.assertTrue(artifact.delete()) + with self.assertRaises(github.GithubException): + repo.get_artifact(artifact_id) diff --git a/tests/ReplayData/Artifact.setUp.txt b/tests/ReplayData/Artifact.setUp.txt new file mode 100644 index 0000000000..d4c526072f --- /dev/null +++ b/tests/ReplayData/Artifact.setUp.txt @@ -0,0 +1,11 @@ +https +GET +api.github.com +None +/repos/github/vscode-codeql +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Sep 2022 11:31:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"b8996d1d847bfa31020b23f12f995dc133b73619849c219cd1868e168b90f6fa"'), ('Last-Modified', 'Sat, 24 Sep 2022 16:33:41 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '45'), ('X-RateLimit-Reset', '1664368108'), ('X-RateLimit-Used', '15'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'AB34:5240:1F7B70F:1FF54F1:63343096')] +{"id":211169016,"node_id":"MDEwOlJlcG9zaXRvcnkyMTExNjkwMTY=","name":"vscode-codeql","full_name":"github/vscode-codeql","private":false,"owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars.githubusercontent.com/u/9919?v=4","gravatar_id":"","url":"https://api.github.com/users/github","html_url":"https://github.com/github","followers_url":"https://api.github.com/users/github/followers","following_url":"https://api.github.com/users/github/following{/other_user}","gists_url":"https://api.github.com/users/github/gists{/gist_id}","starred_url":"https://api.github.com/users/github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github/subscriptions","organizations_url":"https://api.github.com/users/github/orgs","repos_url":"https://api.github.com/users/github/repos","events_url":"https://api.github.com/users/github/events{/privacy}","received_events_url":"https://api.github.com/users/github/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/github/vscode-codeql","description":"An extension for Visual Studio Code that adds rich language support for CodeQL","fork":false,"url":"https://api.github.com/repos/github/vscode-codeql","forks_url":"https://api.github.com/repos/github/vscode-codeql/forks","keys_url":"https://api.github.com/repos/github/vscode-codeql/keys{/key_id}","collaborators_url":"https://api.github.com/repos/github/vscode-codeql/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/github/vscode-codeql/teams","hooks_url":"https://api.github.com/repos/github/vscode-codeql/hooks","issue_events_url":"https://api.github.com/repos/github/vscode-codeql/issues/events{/number}","events_url":"https://api.github.com/repos/github/vscode-codeql/events","assignees_url":"https://api.github.com/repos/github/vscode-codeql/assignees{/user}","branches_url":"https://api.github.com/repos/github/vscode-codeql/branches{/branch}","tags_url":"https://api.github.com/repos/github/vscode-codeql/tags","blobs_url":"https://api.github.com/repos/github/vscode-codeql/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/github/vscode-codeql/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/github/vscode-codeql/git/refs{/sha}","trees_url":"https://api.github.com/repos/github/vscode-codeql/git/trees{/sha}","statuses_url":"https://api.github.com/repos/github/vscode-codeql/statuses/{sha}","languages_url":"https://api.github.com/repos/github/vscode-codeql/languages","stargazers_url":"https://api.github.com/repos/github/vscode-codeql/stargazers","contributors_url":"https://api.github.com/repos/github/vscode-codeql/contributors","subscribers_url":"https://api.github.com/repos/github/vscode-codeql/subscribers","subscription_url":"https://api.github.com/repos/github/vscode-codeql/subscription","commits_url":"https://api.github.com/repos/github/vscode-codeql/commits{/sha}","git_commits_url":"https://api.github.com/repos/github/vscode-codeql/git/commits{/sha}","comments_url":"https://api.github.com/repos/github/vscode-codeql/comments{/number}","issue_comment_url":"https://api.github.com/repos/github/vscode-codeql/issues/comments{/number}","contents_url":"https://api.github.com/repos/github/vscode-codeql/contents/{+path}","compare_url":"https://api.github.com/repos/github/vscode-codeql/compare/{base}...{head}","merges_url":"https://api.github.com/repos/github/vscode-codeql/merges","archive_url":"https://api.github.com/repos/github/vscode-codeql/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/github/vscode-codeql/downloads","issues_url":"https://api.github.com/repos/github/vscode-codeql/issues{/number}","pulls_url":"https://api.github.com/repos/github/vscode-codeql/pulls{/number}","milestones_url":"https://api.github.com/repos/github/vscode-codeql/milestones{/number}","notifications_url":"https://api.github.com/repos/github/vscode-codeql/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/github/vscode-codeql/labels{/name}","releases_url":"https://api.github.com/repos/github/vscode-codeql/releases{/id}","deployments_url":"https://api.github.com/repos/github/vscode-codeql/deployments","created_at":"2019-09-26T19:44:53Z","updated_at":"2022-09-24T16:33:41Z","pushed_at":"2022-09-28T11:20:36Z","git_url":"git://github.com/github/vscode-codeql.git","ssh_url":"git@github.com:github/vscode-codeql.git","clone_url":"https://github.com/github/vscode-codeql.git","svn_url":"https://github.com/github/vscode-codeql","homepage":"","size":9461,"stargazers_count":311,"watchers_count":311,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":165,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":138,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["codeql","vscode","vscode-extension","works-with-codespaces"],"visibility":"public","forks":165,"open_issues":138,"watchers":311,"default_branch":"main","temp_clone_token":null,"organization":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars.githubusercontent.com/u/9919?v=4","gravatar_id":"","url":"https://api.github.com/users/github","html_url":"https://github.com/github","followers_url":"https://api.github.com/users/github/followers","following_url":"https://api.github.com/users/github/following{/other_user}","gists_url":"https://api.github.com/users/github/gists{/gist_id}","starred_url":"https://api.github.com/users/github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github/subscriptions","organizations_url":"https://api.github.com/users/github/orgs","repos_url":"https://api.github.com/users/github/repos","events_url":"https://api.github.com/users/github/events{/privacy}","received_events_url":"https://api.github.com/users/github/received_events","type":"Organization","site_admin":false},"network_count":165,"subscribers_count":28} + diff --git a/tests/ReplayData/Artifact.testDelete.txt b/tests/ReplayData/Artifact.testDelete.txt new file mode 100644 index 0000000000..b678955715 --- /dev/null +++ b/tests/ReplayData/Artifact.testDelete.txt @@ -0,0 +1,44 @@ +https +GET +api.github.com +None +/repos/lexa/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 13 Oct 2022 11:21:25 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"fa17a5276e7acf7935e265c35562e198168eba7e364cec522ed3c943db34b9ab"'), ('Last-Modified', 'Tue, 27 Sep 2022 16:35:24 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2022-12-12 11:42:35 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4986'), ('X-RateLimit-Reset', '1665662666'), ('X-RateLimit-Used', '14'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D144:88EA:13115A0:1360F01:6347F4B5')] +{"id":542181388,"node_id":"R_kgDOIFEIDA","name":"PyGithub","full_name":"lexa/PyGithub","private":false,"owner":{"login":"lexa","id":80391,"node_id":"MDQ6VXNlcjgwMzkx","avatar_url":"https://avatars.githubusercontent.com/u/80391?v=4","gravatar_id":"","url":"https://api.github.com/users/lexa","html_url":"https://github.com/lexa","followers_url":"https://api.github.com/users/lexa/followers","following_url":"https://api.github.com/users/lexa/following{/other_user}","gists_url":"https://api.github.com/users/lexa/gists{/gist_id}","starred_url":"https://api.github.com/users/lexa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lexa/subscriptions","organizations_url":"https://api.github.com/users/lexa/orgs","repos_url":"https://api.github.com/users/lexa/repos","events_url":"https://api.github.com/users/lexa/events{/privacy}","received_events_url":"https://api.github.com/users/lexa/received_events","type":"User","site_admin":false},"html_url":"https://github.com/lexa/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/lexa/PyGithub","forks_url":"https://api.github.com/repos/lexa/PyGithub/forks","keys_url":"https://api.github.com/repos/lexa/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lexa/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lexa/PyGithub/teams","hooks_url":"https://api.github.com/repos/lexa/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/lexa/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/lexa/PyGithub/events","assignees_url":"https://api.github.com/repos/lexa/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/lexa/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/lexa/PyGithub/tags","blobs_url":"https://api.github.com/repos/lexa/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lexa/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lexa/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/lexa/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lexa/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/lexa/PyGithub/languages","stargazers_url":"https://api.github.com/repos/lexa/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/lexa/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/lexa/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/lexa/PyGithub/subscription","commits_url":"https://api.github.com/repos/lexa/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/lexa/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/lexa/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/lexa/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/lexa/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/lexa/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lexa/PyGithub/merges","archive_url":"https://api.github.com/repos/lexa/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lexa/PyGithub/downloads","issues_url":"https://api.github.com/repos/lexa/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/lexa/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/lexa/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/lexa/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lexa/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/lexa/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/lexa/PyGithub/deployments","created_at":"2022-09-27T16:22:55Z","updated_at":"2022-09-27T16:35:24Z","pushed_at":"2022-10-13T10:44:09Z","git_url":"git://github.com/lexa/PyGithub.git","ssh_url":"git@github.com:lexa/PyGithub.git","clone_url":"https://github.com/lexa/PyGithub.git","svn_url":"https://github.com/lexa/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":11667,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"master","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"allow_auto_merge":false,"delete_branch_on_merge":false,"allow_update_branch":false,"use_squash_pr_title_as_default":false,"squash_merge_commit_message":"COMMIT_MESSAGES","squash_merge_commit_title":"COMMIT_OR_PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","parent":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2022-10-12T13:43:12Z","pushed_at":"2022-10-13T10:07:22Z","git_url":"git://github.com/PyGithub/PyGithub.git","ssh_url":"git@github.com:PyGithub/PyGithub.git","clone_url":"https://github.com/PyGithub/PyGithub.git","svn_url":"https://github.com/PyGithub/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":13604,"stargazers_count":5535,"watchers_count":5535,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1533,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":161,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["github","github-api","pygithub","python"],"visibility":"public","forks":1533,"open_issues":161,"watchers":5535,"default_branch":"master"},"source":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2022-10-12T13:43:12Z","pushed_at":"2022-10-13T10:07:22Z","git_url":"git://github.com/PyGithub/PyGithub.git","ssh_url":"git@github.com:PyGithub/PyGithub.git","clone_url":"https://github.com/PyGithub/PyGithub.git","svn_url":"https://github.com/PyGithub/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":13604,"stargazers_count":5535,"watchers_count":5535,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1533,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":161,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["github","github-api","pygithub","python"],"visibility":"public","forks":1533,"open_issues":161,"watchers":5535,"default_branch":"master"},"network_count":1533,"subscribers_count":0} + +https +GET +api.github.com +None +/repos/lexa/PyGithub/actions/artifacts/396724439 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 13 Oct 2022 11:21:25 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"eb922edbfb3be37adfad91d445b790d560458056f413c992245fab18f82ff90f"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-12-12 11:42:35 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4985'), ('X-RateLimit-Reset', '1665662666'), ('X-RateLimit-Used', '15'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D14E:9294:41910F2:427C643:6347F4B5')] +{"id":396724439,"node_id":"MDg6QXJ0aWZhY3QzOTY3MjQ0Mzk=","name":"test-artifact","size_in_bytes":0,"url":"https://api.github.com/repos/lexa/PyGithub/actions/artifacts/396724439","archive_download_url":"https://api.github.com/repos/lexa/PyGithub/actions/artifacts/396724439/zip","expired":false,"created_at":"2022-10-13T10:44:34Z","updated_at":"2022-10-13T10:44:36Z","expires_at":"2023-01-11T10:44:23Z","workflow_run":{"id":3241693286,"repository_id":542181388,"head_repository_id":542181388,"head_branch":"generate-artifact","head_sha":"64ac5680db075fc4cb6404fa49ccbd349a5c2d02"}} + +https +DELETE +api.github.com +None +/repos/lexa/PyGithub/actions/artifacts/396724439 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Thu, 13 Oct 2022 11:21:26 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-12-12 11:42:35 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4984'), ('X-RateLimit-Reset', '1665662666'), ('X-RateLimit-Used', '16'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'D15A:2275:3BBD835:3CA61EF:6347F4B5')] + + +https +GET +api.github.com +None +/repos/lexa/PyGithub/actions/artifacts/396724439 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +404 +[('Server', 'GitHub.com'), ('Date', 'Thu, 13 Oct 2022 11:21:26 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-12-12 11:42:35 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4983'), ('X-RateLimit-Reset', '1665662666'), ('X-RateLimit-Used', '17'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D168:1AFB:3CAF4A2:3D97D08:6347F4B6')] +{"message":"Not Found","documentation_url":"https://docs.github.com/rest/reference/actions#get-an-artifact"} + diff --git a/tests/ReplayData/Artifact.testGetArtifactsFromRepo.txt b/tests/ReplayData/Artifact.testGetArtifactsFromRepo.txt new file mode 100644 index 0000000000..5b88f34ca5 --- /dev/null +++ b/tests/ReplayData/Artifact.testGetArtifactsFromRepo.txt @@ -0,0 +1,11 @@ +https +GET +api.github.com +None +/repos/github/vscode-codeql/actions/artifacts +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Sep 2022 11:31:32 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"fc70d5ff8044f680191934066321f0416508888f32bbc22bd5d35732150314db"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '49'), ('X-RateLimit-Reset', '1664368108'), ('X-RateLimit-Used', '11'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'AB0C:45A2:1FA6467:2021BC5:63343094')] +{"total_count":4665,"artifacts":[{"id":379052698,"node_id":"MDg6QXJ0aWZhY3QzNzkwNTI2OTg=","name":"vscode-codeql-extension","size_in_bytes":16531611,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/379052698","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/379052698/zip","expired":false,"created_at":"2022-09-28T11:03:05Z","updated_at":"2022-09-28T11:03:07Z","expires_at":"2022-12-27T10:50:40Z","workflow_run":{"id":3142894849,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"elenatanasoiu/monitor-variant-analysis","head_sha":"e4de8c6b9b9eeb1b3db3be2f6938f0b54ebefb45"}},{"id":379039916,"node_id":"MDg6QXJ0aWZhY3QzNzkwMzk5MTY=","name":"vscode-codeql-extension","size_in_bytes":16531613,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/379039916","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/379039916/zip","expired":false,"created_at":"2022-09-28T10:50:45Z","updated_at":"2022-09-28T10:50:46Z","expires_at":"2022-12-27T10:36:55Z","workflow_run":{"id":3142811811,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"elenatanasoiu/monitor-variant-analysis","head_sha":"e4de8c6b9b9eeb1b3db3be2f6938f0b54ebefb45"}},{"id":379034077,"node_id":"MDg6QXJ0aWZhY3QzNzkwMzQwNzc=","name":"vscode-codeql-extension","size_in_bytes":16531613,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/379034077","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/379034077/zip","expired":false,"created_at":"2022-09-28T10:44:50Z","updated_at":"2022-09-28T10:44:51Z","expires_at":"2022-12-27T10:32:15Z","workflow_run":{"id":3142785077,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"elenatanasoiu/monitor-variant-analysis","head_sha":"74d1747f0648d732d27ca691ac8fdb2bc31393a9"}},{"id":378970214,"node_id":"MDg6QXJ0aWZhY3QzNzg5NzAyMTQ=","name":"vscode-codeql-extension","size_in_bytes":16528288,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378970214","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378970214/zip","expired":false,"created_at":"2022-09-28T09:47:51Z","updated_at":"2022-09-28T09:47:52Z","expires_at":"2022-12-27T09:36:05Z","workflow_run":{"id":3142419796,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/refactor-raw-results-table","head_sha":"e3e2fcc3498ab7d945a9e58f7c1458171ab0a5a7"}},{"id":378965760,"node_id":"MDg6QXJ0aWZhY3QzNzg5NjU3NjA=","name":"vscode-codeql-extension","size_in_bytes":16531377,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378965760","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378965760/zip","expired":false,"created_at":"2022-09-28T09:44:05Z","updated_at":"2022-09-28T09:44:07Z","expires_at":"2022-12-27T09:36:35Z","workflow_run":{"id":3142423725,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"elenatanasoiu/monitor-variant-analysis","head_sha":"c96a388ca2247e91234ed80b5741ad051f7080be"}},{"id":378928202,"node_id":"MDg6QXJ0aWZhY3QzNzg5MjgyMDI=","name":"vscode-codeql-extension","size_in_bytes":16531345,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378928202","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378928202/zip","expired":false,"created_at":"2022-09-28T09:12:15Z","updated_at":"2022-09-28T09:12:17Z","expires_at":"2022-12-27T09:04:05Z","workflow_run":{"id":3142191438,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"elenatanasoiu/monitor-variant-analysis","head_sha":"1d6563a2d365e0b437c15c98d2d031b7a9895a1a"}},{"id":377794425,"node_id":"MDg6QXJ0aWZhY3QzNzc3OTQ0MjU=","name":"vscode-codeql-extension","size_in_bytes":16534523,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377794425","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377794425/zip","expired":false,"created_at":"2022-09-27T13:36:06Z","updated_at":"2022-09-27T13:36:07Z","expires_at":"2022-12-26T13:24:50Z","workflow_run":{"id":3135951730,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/scanned-repos-tab","head_sha":"f8cc3aec3201310fa0d0d7e4b68353ac21532d04"}},{"id":377794243,"node_id":"MDg6QXJ0aWZhY3QzNzc3OTQyNDM=","name":"vscode-codeql-extension","size_in_bytes":16528691,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377794243","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377794243/zip","expired":false,"created_at":"2022-09-27T13:35:54Z","updated_at":"2022-09-27T13:35:55Z","expires_at":"2022-12-26T13:23:38Z","workflow_run":{"id":3135944649,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"110d930b68ced05bf4d1cdc210a0aa4553eb1d8f"}},{"id":377768671,"node_id":"MDg6QXJ0aWZhY3QzNzc3Njg2NzE=","name":"vscode-codeql-extension","size_in_bytes":16534523,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377768671","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377768671/zip","expired":false,"created_at":"2022-09-27T13:16:02Z","updated_at":"2022-09-27T13:16:03Z","expires_at":"2022-12-26T13:04:14Z","workflow_run":{"id":3135820032,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/scanned-repos-tab","head_sha":"f8cc3aec3201310fa0d0d7e4b68353ac21532d04"}},{"id":377703600,"node_id":"MDg6QXJ0aWZhY3QzNzc3MDM2MDA=","name":"vscode-codeql-extension","size_in_bytes":16528687,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377703600","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377703600/zip","expired":false,"created_at":"2022-09-27T12:21:39Z","updated_at":"2022-09-27T12:21:41Z","expires_at":"2022-12-26T12:06:29Z","workflow_run":{"id":3135445831,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/outcome-panel","head_sha":"f408418f23713f44a42d88911d4ceb88ad9f8abb"}},{"id":377541670,"node_id":"MDg6QXJ0aWZhY3QzNzc1NDE2NzA=","name":"vscode-codeql-extension","size_in_bytes":16524162,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377541670","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377541670/zip","expired":false,"created_at":"2022-09-27T09:52:29Z","updated_at":"2022-09-27T09:52:30Z","expires_at":"2022-12-26T09:39:31Z","workflow_run":{"id":3134528732,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"0b638b6ae16284b25749e4a9039519f083e61110"}},{"id":377522495,"node_id":"MDg6QXJ0aWZhY3QzNzc1MjI0OTU=","name":"vscode-codeql-extension","size_in_bytes":16524160,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377522495","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377522495/zip","expired":false,"created_at":"2022-09-27T09:34:10Z","updated_at":"2022-09-27T09:34:11Z","expires_at":"2022-12-26T09:21:11Z","workflow_run":{"id":3134413579,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"robertbrignull/submit-variant-analysis","head_sha":"ce7c7119c75e1b566393b2383f02b15eaa41c10f"}},{"id":376974726,"node_id":"MDg6QXJ0aWZhY3QzNzY5NzQ3MjY=","name":"vscode-codeql-extension","size_in_bytes":16528812,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376974726","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376974726/zip","expired":false,"created_at":"2022-09-26T22:18:01Z","updated_at":"2022-09-26T22:18:03Z","expires_at":"2022-12-25T22:08:56Z","workflow_run":{"id":3114754624,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"aeisenberg/new-qs","head_sha":"46ce536b8ebc9eea9ad147ac7036afa2c07bdb02"}},{"id":376774851,"node_id":"MDg6QXJ0aWZhY3QzNzY3NzQ4NTE=","name":"vscode-codeql-extension","size_in_bytes":16522621,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376774851","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376774851/zip","expired":false,"created_at":"2022-09-26T19:01:27Z","updated_at":"2022-09-26T19:01:28Z","expires_at":"2022-12-25T13:03:21Z","workflow_run":{"id":3127948741,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"0a5c272b1727c81be9d0d2f5cb6bd9137669b224"}},{"id":376495451,"node_id":"MDg6QXJ0aWZhY3QzNzY0OTU0NTE=","name":"vscode-codeql-extension","size_in_bytes":16524028,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376495451","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376495451/zip","expired":false,"created_at":"2022-09-26T15:07:10Z","updated_at":"2022-09-26T15:07:11Z","expires_at":"2022-12-25T14:52:55Z","workflow_run":{"id":3128619297,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"robertbrignull/submit-variant-analysis","head_sha":"5dce5e83b057305ad99304b553d97c2badf78865"}},{"id":376469189,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxODk=","name":"result-index","size_in_bytes":2970,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469189","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469189/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:57Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469187,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxODc=","name":"63537249","size_in_bytes":203508,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469187","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469187/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:00Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469186,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxODY=","name":"3955647","size_in_bytes":136661,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469186","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469186/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:27Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469184,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxODQ=","name":"24560307","size_in_bytes":4584337,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469184","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469184/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:14Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469182,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxODI=","name":"24195339","size_in_bytes":6442460,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469182","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469182/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:15Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469180,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxODA=","name":"237159","size_in_bytes":77295,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469180","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469180/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:47:56Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469177,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxNzc=","name":"2126244","size_in_bytes":68695,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469177","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469177/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:00Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469175,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxNzU=","name":"167174","size_in_bytes":107629,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469175","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469175/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:06Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469173,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxNzM=","name":"15062869","size_in_bytes":554768,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469173","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469173/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:47:59Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469171,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxNzE=","name":"11730342","size_in_bytes":157074,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469171","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469171/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:03Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469168,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxNjg=","name":"10270250","size_in_bytes":1048754,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469168","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469168/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:21Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376456189,"node_id":"MDg6QXJ0aWZhY3QzNzY0NTYxODk=","name":"result-index","size_in_bytes":2970,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456189","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456189/zip","expired":false,"created_at":"2022-09-26T14:40:30Z","updated_at":"2022-09-26T14:40:32Z","expires_at":"2022-12-25T14:40:26Z","workflow_run":{"id":3128646251,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376456188,"node_id":"MDg6QXJ0aWZhY3QzNzY0NTYxODg=","name":"63537249","size_in_bytes":203508,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456188","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456188/zip","expired":false,"created_at":"2022-09-26T14:40:30Z","updated_at":"2022-09-26T14:40:32Z","expires_at":"2022-12-25T14:39:40Z","workflow_run":{"id":3128646251,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376456186,"node_id":"MDg6QXJ0aWZhY3QzNzY0NTYxODY=","name":"3955647","size_in_bytes":136661,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456186","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456186/zip","expired":false,"created_at":"2022-09-26T14:40:30Z","updated_at":"2022-09-26T14:40:32Z","expires_at":"2022-12-25T14:39:41Z","workflow_run":{"id":3128646251,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376456184,"node_id":"MDg6QXJ0aWZhY3QzNzY0NTYxODQ=","name":"24560307","size_in_bytes":4584337,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456184","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456184/zip","expired":false,"created_at":"2022-09-26T14:40:30Z","updated_at":"2022-09-26T14:40:32Z","expires_at":"2022-12-25T14:39:46Z","workflow_run":{"id":3128646251,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}}]} + diff --git a/tests/ReplayData/Artifact.testGetArtifactsFromWorkflow.txt b/tests/ReplayData/Artifact.testGetArtifactsFromWorkflow.txt new file mode 100644 index 0000000000..d1999243b9 --- /dev/null +++ b/tests/ReplayData/Artifact.testGetArtifactsFromWorkflow.txt @@ -0,0 +1,22 @@ +https +GET +api.github.com +None +/repos/github/vscode-codeql/actions/runs/160995070 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Sep 2022 11:31:33 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"4e62f3e45aa64c41f5d8dda4bf9c8e155c592b4f9d70cedf888671f278775a36"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '47'), ('X-RateLimit-Reset', '1664368108'), ('X-RateLimit-Used', '13'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'AB22:78D3:20371B2:20B2648:63343095')] +{"id":160995070,"name":"Release","node_id":"MDExOldvcmtmbG93UnVuMTYwOTk1MDcw","head_branch":"v1.3.1","head_sha":"c4353981fa5a3565d075d187276eebd92b2a20fc","path":".github/workflows/release.yml","display_title":"Release","run_number":47,"event":"push","status":"completed","conclusion":"success","workflow_id":247289,"check_suite_id":887193234,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU4ODcxOTMyMzQ=","url":"https://api.github.com/repos/github/vscode-codeql/actions/runs/160995070","html_url":"https://github.com/github/vscode-codeql/actions/runs/160995070","pull_requests":[],"created_at":"2020-07-07T18:34:48Z","updated_at":"2020-07-07T18:36:58Z","actor":{"login":"jcreedcmu","id":1500822,"node_id":"MDQ6VXNlcjE1MDA4MjI=","avatar_url":"https://avatars.githubusercontent.com/u/1500822?v=4","gravatar_id":"","url":"https://api.github.com/users/jcreedcmu","html_url":"https://github.com/jcreedcmu","followers_url":"https://api.github.com/users/jcreedcmu/followers","following_url":"https://api.github.com/users/jcreedcmu/following{/other_user}","gists_url":"https://api.github.com/users/jcreedcmu/gists{/gist_id}","starred_url":"https://api.github.com/users/jcreedcmu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcreedcmu/subscriptions","organizations_url":"https://api.github.com/users/jcreedcmu/orgs","repos_url":"https://api.github.com/users/jcreedcmu/repos","events_url":"https://api.github.com/users/jcreedcmu/events{/privacy}","received_events_url":"https://api.github.com/users/jcreedcmu/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2020-07-07T18:34:48Z","jobs_url":"https://api.github.com/repos/github/vscode-codeql/actions/runs/160995070/jobs","logs_url":"https://api.github.com/repos/github/vscode-codeql/actions/runs/160995070/logs","check_suite_url":"https://api.github.com/repos/github/vscode-codeql/check-suites/887193234","artifacts_url":"https://api.github.com/repos/github/vscode-codeql/actions/runs/160995070/artifacts","cancel_url":"https://api.github.com/repos/github/vscode-codeql/actions/runs/160995070/cancel","rerun_url":"https://api.github.com/repos/github/vscode-codeql/actions/runs/160995070/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/github/vscode-codeql/actions/workflows/247289","head_commit":{"id":"c4353981fa5a3565d075d187276eebd92b2a20fc","tree_id":"b5561db1b83aa7f5bd0e5126b375caaf79cc16fb","message":"update CHANGELOG for release","timestamp":"2020-07-07T18:28:53Z","author":{"name":"Jason Reed","email":"jcreedcmu@github.com"},"committer":{"name":"Jason Reed","email":"jcreedcmu@github.com"}},"repository":{"id":211169016,"node_id":"MDEwOlJlcG9zaXRvcnkyMTExNjkwMTY=","name":"vscode-codeql","full_name":"github/vscode-codeql","private":false,"owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars.githubusercontent.com/u/9919?v=4","gravatar_id":"","url":"https://api.github.com/users/github","html_url":"https://github.com/github","followers_url":"https://api.github.com/users/github/followers","following_url":"https://api.github.com/users/github/following{/other_user}","gists_url":"https://api.github.com/users/github/gists{/gist_id}","starred_url":"https://api.github.com/users/github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github/subscriptions","organizations_url":"https://api.github.com/users/github/orgs","repos_url":"https://api.github.com/users/github/repos","events_url":"https://api.github.com/users/github/events{/privacy}","received_events_url":"https://api.github.com/users/github/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/github/vscode-codeql","description":"An extension for Visual Studio Code that adds rich language support for CodeQL","fork":false,"url":"https://api.github.com/repos/github/vscode-codeql","forks_url":"https://api.github.com/repos/github/vscode-codeql/forks","keys_url":"https://api.github.com/repos/github/vscode-codeql/keys{/key_id}","collaborators_url":"https://api.github.com/repos/github/vscode-codeql/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/github/vscode-codeql/teams","hooks_url":"https://api.github.com/repos/github/vscode-codeql/hooks","issue_events_url":"https://api.github.com/repos/github/vscode-codeql/issues/events{/number}","events_url":"https://api.github.com/repos/github/vscode-codeql/events","assignees_url":"https://api.github.com/repos/github/vscode-codeql/assignees{/user}","branches_url":"https://api.github.com/repos/github/vscode-codeql/branches{/branch}","tags_url":"https://api.github.com/repos/github/vscode-codeql/tags","blobs_url":"https://api.github.com/repos/github/vscode-codeql/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/github/vscode-codeql/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/github/vscode-codeql/git/refs{/sha}","trees_url":"https://api.github.com/repos/github/vscode-codeql/git/trees{/sha}","statuses_url":"https://api.github.com/repos/github/vscode-codeql/statuses/{sha}","languages_url":"https://api.github.com/repos/github/vscode-codeql/languages","stargazers_url":"https://api.github.com/repos/github/vscode-codeql/stargazers","contributors_url":"https://api.github.com/repos/github/vscode-codeql/contributors","subscribers_url":"https://api.github.com/repos/github/vscode-codeql/subscribers","subscription_url":"https://api.github.com/repos/github/vscode-codeql/subscription","commits_url":"https://api.github.com/repos/github/vscode-codeql/commits{/sha}","git_commits_url":"https://api.github.com/repos/github/vscode-codeql/git/commits{/sha}","comments_url":"https://api.github.com/repos/github/vscode-codeql/comments{/number}","issue_comment_url":"https://api.github.com/repos/github/vscode-codeql/issues/comments{/number}","contents_url":"https://api.github.com/repos/github/vscode-codeql/contents/{+path}","compare_url":"https://api.github.com/repos/github/vscode-codeql/compare/{base}...{head}","merges_url":"https://api.github.com/repos/github/vscode-codeql/merges","archive_url":"https://api.github.com/repos/github/vscode-codeql/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/github/vscode-codeql/downloads","issues_url":"https://api.github.com/repos/github/vscode-codeql/issues{/number}","pulls_url":"https://api.github.com/repos/github/vscode-codeql/pulls{/number}","milestones_url":"https://api.github.com/repos/github/vscode-codeql/milestones{/number}","notifications_url":"https://api.github.com/repos/github/vscode-codeql/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/github/vscode-codeql/labels{/name}","releases_url":"https://api.github.com/repos/github/vscode-codeql/releases{/id}","deployments_url":"https://api.github.com/repos/github/vscode-codeql/deployments"},"head_repository":{"id":211169016,"node_id":"MDEwOlJlcG9zaXRvcnkyMTExNjkwMTY=","name":"vscode-codeql","full_name":"github/vscode-codeql","private":false,"owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars.githubusercontent.com/u/9919?v=4","gravatar_id":"","url":"https://api.github.com/users/github","html_url":"https://github.com/github","followers_url":"https://api.github.com/users/github/followers","following_url":"https://api.github.com/users/github/following{/other_user}","gists_url":"https://api.github.com/users/github/gists{/gist_id}","starred_url":"https://api.github.com/users/github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github/subscriptions","organizations_url":"https://api.github.com/users/github/orgs","repos_url":"https://api.github.com/users/github/repos","events_url":"https://api.github.com/users/github/events{/privacy}","received_events_url":"https://api.github.com/users/github/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/github/vscode-codeql","description":"An extension for Visual Studio Code that adds rich language support for CodeQL","fork":false,"url":"https://api.github.com/repos/github/vscode-codeql","forks_url":"https://api.github.com/repos/github/vscode-codeql/forks","keys_url":"https://api.github.com/repos/github/vscode-codeql/keys{/key_id}","collaborators_url":"https://api.github.com/repos/github/vscode-codeql/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/github/vscode-codeql/teams","hooks_url":"https://api.github.com/repos/github/vscode-codeql/hooks","issue_events_url":"https://api.github.com/repos/github/vscode-codeql/issues/events{/number}","events_url":"https://api.github.com/repos/github/vscode-codeql/events","assignees_url":"https://api.github.com/repos/github/vscode-codeql/assignees{/user}","branches_url":"https://api.github.com/repos/github/vscode-codeql/branches{/branch}","tags_url":"https://api.github.com/repos/github/vscode-codeql/tags","blobs_url":"https://api.github.com/repos/github/vscode-codeql/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/github/vscode-codeql/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/github/vscode-codeql/git/refs{/sha}","trees_url":"https://api.github.com/repos/github/vscode-codeql/git/trees{/sha}","statuses_url":"https://api.github.com/repos/github/vscode-codeql/statuses/{sha}","languages_url":"https://api.github.com/repos/github/vscode-codeql/languages","stargazers_url":"https://api.github.com/repos/github/vscode-codeql/stargazers","contributors_url":"https://api.github.com/repos/github/vscode-codeql/contributors","subscribers_url":"https://api.github.com/repos/github/vscode-codeql/subscribers","subscription_url":"https://api.github.com/repos/github/vscode-codeql/subscription","commits_url":"https://api.github.com/repos/github/vscode-codeql/commits{/sha}","git_commits_url":"https://api.github.com/repos/github/vscode-codeql/git/commits{/sha}","comments_url":"https://api.github.com/repos/github/vscode-codeql/comments{/number}","issue_comment_url":"https://api.github.com/repos/github/vscode-codeql/issues/comments{/number}","contents_url":"https://api.github.com/repos/github/vscode-codeql/contents/{+path}","compare_url":"https://api.github.com/repos/github/vscode-codeql/compare/{base}...{head}","merges_url":"https://api.github.com/repos/github/vscode-codeql/merges","archive_url":"https://api.github.com/repos/github/vscode-codeql/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/github/vscode-codeql/downloads","issues_url":"https://api.github.com/repos/github/vscode-codeql/issues{/number}","pulls_url":"https://api.github.com/repos/github/vscode-codeql/pulls{/number}","milestones_url":"https://api.github.com/repos/github/vscode-codeql/milestones{/number}","notifications_url":"https://api.github.com/repos/github/vscode-codeql/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/github/vscode-codeql/labels{/name}","releases_url":"https://api.github.com/repos/github/vscode-codeql/releases{/id}","deployments_url":"https://api.github.com/repos/github/vscode-codeql/deployments"}} + +https +GET +api.github.com +None +/repos/github/vscode-codeql/actions/runs/160995070/artifacts +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Sep 2022 11:31:33 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"384dd95df518dd09f3403cdb0efea6f07b615808530fa59263a9f3f6a39e0436"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '46'), ('X-RateLimit-Reset', '1664368108'), ('X-RateLimit-Used', '14'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'AB2A:11933:1E407FD:1EBB285:63343095')] +{"total_count":1,"artifacts":[{"id":10495898,"node_id":"MDg6QXJ0aWZhY3QxMDQ5NTg5OA==","name":"vscode-codeql-extension","size_in_bytes":5555905,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/10495898","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/10495898/zip","expired":true,"created_at":"2020-07-07T18:36:58Z","updated_at":"2020-07-07T18:36:58Z","expires_at":"2020-10-05T18:36:58Z","workflow_run":{"id":160995070,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"v1.3.1","head_sha":"c4353981fa5a3565d075d187276eebd92b2a20fc"}}]} + diff --git a/tests/ReplayData/Artifact.testGetNonexistentArtifact.txt b/tests/ReplayData/Artifact.testGetNonexistentArtifact.txt new file mode 100644 index 0000000000..ad6e2bd6ec --- /dev/null +++ b/tests/ReplayData/Artifact.testGetNonexistentArtifact.txt @@ -0,0 +1,22 @@ +https +GET +api.github.com +None +/repos/lexa/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 13 Oct 2022 11:04:26 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"fa17a5276e7acf7935e265c35562e198168eba7e364cec522ed3c943db34b9ab"'), ('Last-Modified', 'Tue, 27 Sep 2022 16:35:24 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2022-12-12 11:42:35 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1665662666'), ('X-RateLimit-Used', '2'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'BDAE:668A:3A452DF:3B2C773:6347F0BA')] +{"id":542181388,"node_id":"R_kgDOIFEIDA","name":"PyGithub","full_name":"lexa/PyGithub","private":false,"owner":{"login":"lexa","id":80391,"node_id":"MDQ6VXNlcjgwMzkx","avatar_url":"https://avatars.githubusercontent.com/u/80391?v=4","gravatar_id":"","url":"https://api.github.com/users/lexa","html_url":"https://github.com/lexa","followers_url":"https://api.github.com/users/lexa/followers","following_url":"https://api.github.com/users/lexa/following{/other_user}","gists_url":"https://api.github.com/users/lexa/gists{/gist_id}","starred_url":"https://api.github.com/users/lexa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lexa/subscriptions","organizations_url":"https://api.github.com/users/lexa/orgs","repos_url":"https://api.github.com/users/lexa/repos","events_url":"https://api.github.com/users/lexa/events{/privacy}","received_events_url":"https://api.github.com/users/lexa/received_events","type":"User","site_admin":false},"html_url":"https://github.com/lexa/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/lexa/PyGithub","forks_url":"https://api.github.com/repos/lexa/PyGithub/forks","keys_url":"https://api.github.com/repos/lexa/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lexa/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lexa/PyGithub/teams","hooks_url":"https://api.github.com/repos/lexa/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/lexa/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/lexa/PyGithub/events","assignees_url":"https://api.github.com/repos/lexa/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/lexa/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/lexa/PyGithub/tags","blobs_url":"https://api.github.com/repos/lexa/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lexa/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lexa/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/lexa/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lexa/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/lexa/PyGithub/languages","stargazers_url":"https://api.github.com/repos/lexa/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/lexa/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/lexa/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/lexa/PyGithub/subscription","commits_url":"https://api.github.com/repos/lexa/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/lexa/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/lexa/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/lexa/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/lexa/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/lexa/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lexa/PyGithub/merges","archive_url":"https://api.github.com/repos/lexa/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lexa/PyGithub/downloads","issues_url":"https://api.github.com/repos/lexa/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/lexa/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/lexa/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/lexa/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lexa/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/lexa/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/lexa/PyGithub/deployments","created_at":"2022-09-27T16:22:55Z","updated_at":"2022-09-27T16:35:24Z","pushed_at":"2022-10-13T10:44:09Z","git_url":"git://github.com/lexa/PyGithub.git","ssh_url":"git@github.com:lexa/PyGithub.git","clone_url":"https://github.com/lexa/PyGithub.git","svn_url":"https://github.com/lexa/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":11667,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"master","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"allow_auto_merge":false,"delete_branch_on_merge":false,"allow_update_branch":false,"use_squash_pr_title_as_default":false,"squash_merge_commit_message":"COMMIT_MESSAGES","squash_merge_commit_title":"COMMIT_OR_PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","parent":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2022-10-12T13:43:12Z","pushed_at":"2022-10-13T10:07:22Z","git_url":"git://github.com/PyGithub/PyGithub.git","ssh_url":"git@github.com:PyGithub/PyGithub.git","clone_url":"https://github.com/PyGithub/PyGithub.git","svn_url":"https://github.com/PyGithub/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":13604,"stargazers_count":5535,"watchers_count":5535,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1533,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":161,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["github","github-api","pygithub","python"],"visibility":"public","forks":1533,"open_issues":161,"watchers":5535,"default_branch":"master"},"source":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2022-10-12T13:43:12Z","pushed_at":"2022-10-13T10:07:22Z","git_url":"git://github.com/PyGithub/PyGithub.git","ssh_url":"git@github.com:PyGithub/PyGithub.git","clone_url":"https://github.com/PyGithub/PyGithub.git","svn_url":"https://github.com/PyGithub/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":13604,"stargazers_count":5535,"watchers_count":5535,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1533,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":161,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["github","github-api","pygithub","python"],"visibility":"public","forks":1533,"open_issues":161,"watchers":5535,"default_branch":"master"},"network_count":1533,"subscribers_count":0} + +https +GET +api.github.com +None +/repos/lexa/PyGithub/actions/artifacts/396724437 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +404 +[('Server', 'GitHub.com'), ('Date', 'Thu, 13 Oct 2022 11:04:27 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-12-12 11:42:35 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4997'), ('X-RateLimit-Reset', '1665662666'), ('X-RateLimit-Used', '3'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'BDBA:9294:4077852:415F362:6347F0BB')] +{"message":"Not Found","documentation_url":"https://docs.github.com/rest/reference/actions#get-an-artifact"} + diff --git a/tests/ReplayData/Artifact.testGetSingleArtifactFromRepo.txt b/tests/ReplayData/Artifact.testGetSingleArtifactFromRepo.txt new file mode 100644 index 0000000000..89eaf932ee --- /dev/null +++ b/tests/ReplayData/Artifact.testGetSingleArtifactFromRepo.txt @@ -0,0 +1,11 @@ +https +GET +api.github.com +None +/repos/github/vscode-codeql/actions/artifacts/378970214 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Sep 2022 11:31:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"1ce0fc2843af81fc42d4196f2c6f764261d3f2fb3ad2e8252e12328e3d172e83"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '44'), ('X-RateLimit-Reset', '1664368108'), ('X-RateLimit-Used', '16'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'AB42:A24F:196DD8:19DBE1:63343096')] +{"id":378970214,"node_id":"MDg6QXJ0aWZhY3QzNzg5NzAyMTQ=","name":"vscode-codeql-extension","size_in_bytes":16528288,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378970214","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378970214/zip","expired":false,"created_at":"2022-09-28T09:47:51Z","updated_at":"2022-09-28T09:47:52Z","expires_at":"2022-12-27T09:36:05Z","workflow_run":{"id":3142419796,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/refactor-raw-results-table","head_sha":"e3e2fcc3498ab7d945a9e58f7c1458171ab0a5a7"}} +