diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml deleted file mode 100644 index a8a2fb9ff0..0000000000 --- a/.github/release-drafter.yml +++ /dev/null @@ -1,45 +0,0 @@ -name-template: 'v$RESOLVED_VERSION' -tag-template: 'v$RESOLVED_VERSION' -categories: - - title: 'Features' - labels: - - 'feature' - - 'enhancement' - - title: 'Bug Fixes' - labels: - - 'fix' - - 'bugfix' - - 'bug' - - title: 'Maintenance' - label: 'chore' -autolabeler: - - label: 'chore' - files: - - '*.md' - branch: - - '/docs{0,1}\/.+/' - - label: 'bug' - branch: - - '/fix\/.+/' - title: - - '/fix/i' - - label: 'enhancement' - branch: - - '/feature\/.+/' -change-template: '- $TITLE @$AUTHOR (#$NUMBER)' -change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks. -version-resolver: - major: - labels: - - 'major' - minor: - labels: - - 'minor' - patch: - labels: - - 'patch' - default: minor -template: | - ## Changes - - $CHANGES diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 0000000000..1533f64566 --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,19 @@ +changelog: + exclude: + labels: [] + authors: [] + categories: + - title: Breaking Changes + labels: ['breaking'] + - title: New Features + labels: ['feature'] + - title: Improvement + labels: ['improvement'] + - title: Bug Fixes + labels: ['bugfix'] + - title: Dependencies + labels: ['dependencies'] + - title: Maintenance + labels: ['ci', 'documentation', 'maintenance'] + - title: Others + labels: ['*'] diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 107837f47c..5672e6c186 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,6 +39,12 @@ jobs: pip install tox tox-gh-actions - name: Run tests run: tox + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v4 + with: + name: Test Results (Python ${{ matrix.python-version }} on ${{ matrix.os-label }}) + path: pytest.xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 @@ -59,11 +65,12 @@ jobs: run: false shell: bash - draft: + event_file: + name: "Event File" runs-on: ubuntu-latest - needs: test_success - if: github.ref == 'refs/heads/main' steps: - - uses: release-drafter/release-drafter@v5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Upload + uses: actions/upload-artifact@v4 + with: + name: Event File + path: ${{ github.event_path }} diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index 2807796473..f7b9b03f07 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -19,7 +19,7 @@ jobs: name: package path: dist - name: Install twine - run: pip install -q twine + run: pip install -U "twine>=6.1.0" "packaging>=24.2" - name: Publish 📦 to PyPI # only run this for tags if: startsWith(github.event.ref, 'refs/tags/') diff --git a/.github/workflows/test-results.yml b/.github/workflows/test-results.yml new file mode 100644 index 0000000000..0700c25319 --- /dev/null +++ b/.github/workflows/test-results.yml @@ -0,0 +1,33 @@ +name: Test Results + +on: + workflow_run: + workflows: ["CI"] + types: + - completed +permissions: {} + +jobs: + test-results: + name: Test Results + if: github.event.workflow_run.conclusion != 'skipped' + runs-on: ubuntu-latest + permissions: + checks: write + pull-requests: write + + steps: + - name: Download and Extract Artifacts + uses: dawidd6/action-download-artifact@e7466d1a7587ed14867642c2ca74b5bcc1e19a2d + with: + run_id: ${{ github.event.workflow_run.id }} + path: artifacts + + - name: Publish Test Results + id: test-results + uses: EnricoMi/publish-unit-test-result-action@v2 + with: + commit: ${{ github.event.workflow_run.head_sha }} + event_file: artifacts/Event File/event.json + event_name: ${{ github.event.workflow_run.event }} + files: "artifacts/**/*.xml" diff --git a/doc/changes.rst b/doc/changes.rst index 8b6c6dd086..561fc33952 100644 --- a/doc/changes.rst +++ b/doc/changes.rst @@ -4,6 +4,176 @@ Change log Stable versions ~~~~~~~~~~~~~~~ +Version 2.6.1 (February 21, 2025) +--------------------------------- + +Bug Fixes +^^^^^^^^^ +* Fix broken pickle support for ``Auth`` classes (`#3211 `_) (`f975552a `_) +* Remove schema from ``Deployment``, remove ``message`` attribute (`#3223 `_) (`d12e7d4c `_) +* Fix incorrect deprecated import (`#3225 `_) (`93297440 `_) +* Add ``CodeSecurityConfigRepository`` returned by ``get_repos_for_code_security_config`` (`#3219 `_) (`f997a2f6 `_) +* Make ``GitTag.verification`` return ``GitCommitVerification`` (`#3226 `_) (`048a1a38 `_) + +Maintenance +^^^^^^^^^^^ +* Mention removal of ``AppAuth.private_key`` in changelog (`#3212 `_) (`f5dc1c76 `_) + +Version 2.6.0 (February 15, 2025) +--------------------------------- + +Breaking Changes +^^^^^^^^^^^^^^^^ + +* Rework ``Views`` and ``Clones`` (`#3168 `_) (`f7d52249 `_): + + View and clones traffic information returned by ``Repository.get_views_traffic`` and ``Repository.get_clones_traffic`` + now return proper PyGithub objects, instead of a ``dict``, with all information that used to be provided by the ``dict``: + +Code like + +.. code-block:: python + + repo.get_views_traffic().["views"].timestamp + repo.get_clones_traffic().["clones"].timestamp + +should be replaced with + +.. code-block:: python + + repo.get_views_traffic().views.timestamp + repo.get_clones_traffic().clones.timestamp + +* Add ``GitCommitVerification`` class (`#3028 `_) (`822e6d71 `_): + + Changes the return value of ``GitTag.verification`` and ``GitCommit.verification`` from ``dict`` to ``GitCommitVerification``. + + Code like + + .. code-block:: python + + tag.verification["reason"] + commit.verification["reason"] + + should be replaced with + + .. code-block:: python + + tag.verification.reason + commit.verification.reason + +* Property ``AppAuth.private_key`` has been removed (`#3065 `_) (`36697b22 `_) + +* Fix typos (`#3086 `_) (`a50ae51b `_): + + Property ``OrganizationCustomProperty.respository_id`` renamed to ``OrganizationCustomProperty.repository_id``. + +New Features +^^^^^^^^^^^^ +* Add capability for global laziness (`#2746 `_) (`f23da453 `_) +* Add Support for GitHub Copilot Seat Management in Organizations (`#3082 `_) (`b5f8f078 `_) +* Get branches where commit is head (`#3083 `_) (`3d84a47a `_) +* Support downloading a Release Asset (`#3060 `_) (`67cfdb21 `_) +* Add ``Repository.merge_upstream`` method (`#3175 `_) (`2f95352e `_) +* Support updating pull request draft status (`#3104 `_) (`5ec7b775 `_) +* Add transfer ownership method to Repository (`#3091 `_) (`b3ccd105 `_) +* Add enable and disable a Workflow (`#3088 `_) (`7f7d2282 `_) +* Add support for managing Code Security Configurations (`#3095 `_) (`ee5d1da3 `_) +* Allow for private_key / sign function in AppAuth (`#3065 `_) (`36697b22 `_) +* Add ``GitCommitVerification`` class (`#3028 `_) (`822e6d71 `_) + +Improvements +^^^^^^^^^^^^ +* Update RateLimit object with all the new categories GitHub added. (`#3096 `_) (`152429d9 `_) +* Add support for make-latest to create_git_release and create_git_tag_and_release (`#3067 `_) (`8ed5635f `_) +* Add branch protection support for ``required_status_checks.checks`` object (`#2884 `_) (`764540d3 `_) +* Use id and tree_id from simple-commit to populate GitCommit.sha and GitCommit.tree (`#3167 `_) (`04887640 `_) +* Use message of response in GithubException (`#3185 `_) (`bd35f7dd `_) +* Sync Advisory classes with API spec (`#3193 `_) (`d9d93c03 `_) +* Sync Branch class with API spec (`#3109 `_) (`5570eba1 `_) +* Sync BranchProtection class with API spec (`#3110 `_) (`936b3ef5 `_) +* Sync CheckRunAnnotation class with API spec (`#3112 `_) (`29eb0f58 `_) +* Sync CheckRun class with API spec (`#3111 `_) (`3837c7df `_) +* Sync CheckSuite class with API spec (`#3113 `_) (`fa75d667 `_) +* Sync Commit class with API spec (`#3116 `_) (`b2748ed9 `_) +* Sync CommitComment class with API spec (`#3117 `_) (`51945360 `_) +* Sync CommitStatus class with API spec (`#3118 `_) (`9a455056 `_) +* Sync ContentFile class with API spec (`#3119 `_) (`a9aa872f `_) +* Sync DependabotAlert class with API spec (`#3120 `_) (`79b4fc7c `_) +* Sync Deployment class with API spec (`#3121 `_) (`c2d3b5e2 `_) +* Sync DeploymentStatus class with API spec (`#3122 `_) (`b3a06f07 `_) +* Sync Gist class with API spec (`#3123 `_) (`6764017b `_) +* Sync GistComment class with API spec (`#3124 `_) (`eb6019a4 `_) +* Sync GitBlob class with API spec (`#3125 `_) (`876ff10d `_) +* Sync GitCommit class with API spec (`#3126 `_) (`6276e20f `_) +* Sync GithubApp class with API spec (`#3127 `_) (`5327617e `_) +* Sync GitRef class with API spec (`#3128 `_) (`a69f1d6f `_) +* Sync GitReleaseAsset class with API spec (`#3130 `_) (`c5ab18f1 `_) +* Sync GitRelease class with API spec (`#3129 `_) (`ebf3fe8e `_) +* Sync GitTag class with API spec (`#3131 `_) (`58f26d85 `_) +* Sync GitTree class with API spec (`#3132 `_) (`a38cb5ad `_) +* Sync Hook class with API spec (`#3133 `_) (`2e477f8c `_) +* Sync HookDelivery class with API spec (`#3134 `_) (`15d57595 `_) +* Sync InstallationAuthorization class with API spec (`#3136 `_) (`649de20b `_) +* Sync Installation class with API spec (`#3135 `_) (`3e4185d8 `_) +* Sync Invitation class with API spec (`#3139 `_) (`0df2e394 `_) +* Sync Issue class with API spec (`#3140 `_) (`769c6967 `_) +* Sync IssueComment class with API spec (`#3141 `_) (`bb3353b4 `_) +* Sync IssueEvent class with API spec (`#3142 `_) (`be44bb58 `_) +* Sync IssuePullRequest class with API spec (`#3143 `_) (`1836b073 `_) +* Sync Label class with API spec (`#3144 `_) (`4535b9e1 `_) +* Sync License class with API spec (`#3145 `_) (`dda13366 `_) +* Sync Membership class with API spec (`#3146 `_) (`bc643cc8 `_) +* Sync Migration class with API spec (`#3147 `_) (`dabc1fb2 `_) +* Sync Milestone class with API spec (`#3148 `_) (`12aee396 `_) +* Sync NamedUser class with API spec (`#3149 `_) (`b481fab0 `_) +* Sync Organization class with API spec (`#3150 `_) (`5b36bc40 `_) +* Sync OrganizationCustomProperty class with API spec (`#3151 `_) (`519b61b0 `_) +* Sync Project class with API spec (`#3194 `_) (`6ed83964 `_) +* Sync PublicKey class with API spec (`#3152 `_) (`26c284bc `_) +* Sync PullRequest class with API spec (`#3153 `_) (`563bdbb4 `_) +* Sync PullRequestComment class with API spec (`#3154 `_) (`e262c2ee `_) +* Sync RateLimit class with API spec (`#3155 `_) (`db1e8797 `_) +* Sync Repository class with API spec (`#3156 `_) (`f03b3163 `_) +* Sync RepositoryKey class with API spec (`#3157 `_) (`365f9899 `_) +* Sync SecurityAndAnalysis class with API spec (`#3158 `_) (`65546abd `_) +* Sync SelfHostedActionsRunner class with API spec (`#3159 `_) (`ea4a8d1d `_) +* Sync SourceImport class with API spec (`#3160 `_) (`4d989733 `_) +* Sync Tag class with API spec (`#3161 `_) (`a0a25bce `_) +* Sync Team class with API spec (`#3162 `_) (`a1e68550 `_) +* Sync Topic class with API spec (`#3163 `_) (`67eced78 `_) +* Sync UserKey class with API spec (`#3164 `_) (`9d04305a `_) +* Sync Workflow class with API spec (`#3165 `_) (`b656a311 `_) +* Sync WorkflowRun class with API spec (`#3166 `_) (`468fa1b3 `_) + +Bug Fixes +^^^^^^^^^ +* Patch httpretty socket for latest urllib3 release (`#3102 `_) (`81f8f05b `_) +* Fix API break when contents not found (`#3181 `_) (`d90323fa `_) +* Change ``start_side`` argument of ``PullRequest.create_review_comment`` from ``int`` to ``str`` (`#3170 `_) (`f814de7d `_) +* Create Review Request - transform string params to a list (`#3099 `_) (`8aef11c0 `_) +* Fix ``Repository.get_contents`` redirection (`#3183 `_) (`193f6991 `_) + +Others +^^^^^^ +* Fix typos (`#3086 `_) (`a50ae51b `_) +* Make ``conclusion`` nullable in ``WorkflowJob.py`` (`#3171 `_) (`8d8eb06d `_) +* Rename ``Github.get_organization`` argument ``login`` to ``org`` (`#3187 `_) (`9e3cf209 `_) +* Make ``NotSet`` an ``Attribute[Any]`` (`#3057 `_) + +Maintenance +^^^^^^^^^^^ +* Sort attributes and properties in GitHub classes (`#3105 `_) (`f3986b57 `_) +* Preparations for maintaining Github classes by code (`#3106 `_) (`842a1b02 `_) +* Annotate Github classes with API schemas (`#3107 `_) (`d092f478 `_) +* Make Pickle test use recorded data (`#3137 `_) (`1990eb92 `_) +* Add tests for file and stream downloads (`#3182 `_) (`d483fe25 `_) +* Use ``responses`` instead of ``httpretty`` in tests (`#3087 `_) (`9b293d44 `_) +* [CI] Publish test results (`#3195 `_) +* Link Commit to correct upstream documentation (`#2936 `_) (`4d307a7c `_) +* Replace release drafter with Github release note generation (`#3196 `_) (`6f9a2983 `_) +* Add maintenance label to release.yml (`#3197 `_) (`cab8d078 `_) + Version 2.5.0 (November 06, 2024) --------------------------------- @@ -19,33 +189,33 @@ Breaking Changes New features ^^^^^^^^^^^^ -* Rework GraphQL mutations (#3046) (27222251) -* Make pagination work with GraphQL response data (#3047) (cd30e379) -* Add `RepositoryDiscussion` powered by GraphQL API (#3048) (29359f3c) -* Add `Repository.get_discussion()` to get a single Discussion (#3072) (44120b1e) +* Rework GraphQL mutations (`#3046 `_) (`27222251 `_) +* Make pagination work with GraphQL response data (`#3047 `_) (`cd30e379 `_) +* Add `RepositoryDiscussion` powered by GraphQL API (`#3048 `_) (`29359f3c `_) +* Add `Repository.get_discussion()` to get a single Discussion (`#3072 `_) (`44120b1e `_) Improvements ^^^^^^^^^^^^ -* Adds List organization memberships for the authenticated user (#3040) (cf443955) -* Add `actor` property to WorkflowRun (#2764) (612ba68e) -* Make requester a public attribute (#3056) (c44ec523) +* Adds List organization memberships for the authenticated user (`#3040 `_) (`cf443955 `_) +* Add `actor` property to WorkflowRun (`#2764 `_) (`612ba68e `_) +* Make requester a public attribute (`#3056 `_) (`c44ec523 `_) Bug Fixes ^^^^^^^^^ -* Fix requesting urls containing parameters with parameters dict (#2929) (e1d67ada) -* PullRequest.delete_branch: fix the remaining pull requests check (#3063) (72fa6278) +* Fix requesting urls containing parameters with parameters dict (`#2929 `_) (`e1d67ada `_) +* PullRequest.delete_branch: fix the remaining pull requests check (`#3063 `_) (`72fa6278 `_) Maintenance ^^^^^^^^^^^ -* Remove stale bot (510c1402) -* Upgrade Github actions (#3075) (323e2828) -* Add top issues dashboard action (#3049) (c91f26a7) -* Make tests pass some more years (#3045) (352c55aa) -* Run top issues workflow only in PyGithub repo (0d395d4e) -* Replace pre-commit Github action in order to pin pre-commit version (#3059) (1a05b43d) +* Remove stale bot (`510c1402 `_) +* Upgrade Github actions (`#3075 `_) (`323e2828 `_) +* Add top issues dashboard action (`#3049 `_) (`c91f26a7 `_) +* Make tests pass some more years (`#3045 `_) (`352c55aa `_) +* Run top issues workflow only in PyGithub repo (`0d395d4e `_) +* Replace pre-commit Github action in order to pin pre-commit version (`#3059 `_) (`1a05b43d `_) Version 2.4.0 (August 26, 2024) ------------------------------- @@ -74,38 +244,38 @@ does not support the ``len()`` method. Use the ``totalCount`` property instead: New features ^^^^^^^^^^^^ -* Allow custom authentication (#2987) (32b826fd) +* Allow custom authentication (`#2987 `_) (`32b826fd `_) Improvements ^^^^^^^^^^^^ -* Add `has_discussions` to `AuthenticatedUser` and `Repository` classes (#3020) (75224167) -* Update more `SecurityAndAnalysis` attributes (#3025) (fa168279) -* Implement support for re-running only failed workflow jobs. (#2983) (23e87563) -* Add possibility to mark a thread/notification as done (#2985) (5ba24379) -* Add "pull_request_review_id" to PullRequestComment object (#3000) (6a59cf82) -* Add minimize and unminimize functions for IssueComment class (#3005) (09c4f58e) -* Support Organization/Repository custom properties (#2968) (c5e6b702) -* Add `dict` type to `add_attribute` script (#2977) (2a04f9cc) -* Allow for deleting and restoring branch associated with PR (#1784) (4ba1e412) -* Add "archived_at" to Organization object. (#2974) (cc766a6f) -* Adds Security & Analysis To Repository (#2960) (f22af54d) -* Add added_by and last_used attributes to RepositoryKey (#2952) (5dffa64d) -* Add `make_latest` to `GitRelease.update_release` (#2888) (60136105) -* Make Commit.files return PaginatedList (#2939) (fa885f00) +* Add `has_discussions` to `AuthenticatedUser` and `Repository` classes (`#3020 `_) (`75224167 `_) +* Update more `SecurityAndAnalysis` attributes (`#3025 `_) (`fa168279 `_) +* Implement support for re-running only failed workflow jobs. (`#2983 `_) (`23e87563 `_) +* Add possibility to mark a thread/notification as done (`#2985 `_) (`5ba24379 `_) +* Add "pull_request_review_id" to PullRequestComment object (`#3000 `_) (`6a59cf82 `_) +* Add minimize and unminimize functions for IssueComment class (`#3005 `_) (`09c4f58e `_) +* Support Organization/Repository custom properties (`#2968 `_) (`c5e6b702 `_) +* Add `dict` type to `add_attribute` script (`#2977 `_) (`2a04f9cc `_) +* Allow for deleting and restoring branch associated with PR (`#1784 `_) (`4ba1e412 `_) +* Add "archived_at" to Organization object. (`#2974 `_) (`cc766a6f `_) +* Adds Security & Analysis To Repository (`#2960 `_) (`f22af54d `_) +* Add added_by and last_used attributes to RepositoryKey (`#2952 `_) (`5dffa64d `_) +* Add `make_latest` to `GitRelease.update_release` (`#2888 `_) (`60136105 `_) +* Make Commit.files return PaginatedList (`#2939 `_) (`fa885f00 `_) Bug Fixes ^^^^^^^^^ -* Fix GraphQL Queries with Variables (#3002) (4324a3d9) +* Fix GraphQL Queries with Variables (`#3002 `_) (`4324a3d9 `_) Maintenance ^^^^^^^^^^^ * Remove support for Python 3.7 (#2975, #3008) (d0e05072, 6d60b754) -* docs: add missing code-block (#2982) (c93e73e2) -* Update README.md (#2961) (5d9f90d2) -* CI: Fix test success job (#3010) (61d37dce) +* docs: add missing code-block (`#2982 `_) (`c93e73e2 `_) +* Update README.md (`#2961 `_) (`5d9f90d2 `_) +* CI: Fix test success job (`#3010 `_) (`61d37dce `_) Version 2.3.0 (March 21, 2024) ------------------------------ @@ -113,30 +283,30 @@ Version 2.3.0 (March 21, 2024) New features ^^^^^^^^^^^^ -* Support OAuth for enterprise (#2780) (e4106e00) -* Support creation of Dependabot Organization and Repository Secrets (#2874) (0784f835) +* Support OAuth for enterprise (`#2780 `_) (`e4106e00 `_) +* Support creation of Dependabot Organization and Repository Secrets (`#2874 `_) (`0784f835 `_) Improvements ^^^^^^^^^^^^ -* Create release with optional name and message when generate_release_notes is true (#2868) (d65fc30d) -* Add missing attributes to WorkflowJob (#2921) (9e092458) -* Add `created` and `check_suite_id` filter for Repository WorkflowRuns (#2891) (c788985c) -* Assert requester argument type in Auth (#2912) (0b8435fc) +* Create release with optional name and message when generate_release_notes is true (`#2868 `_) (`d65fc30d `_) +* Add missing attributes to WorkflowJob (`#2921 `_) (`9e092458 `_) +* Add `created` and `check_suite_id` filter for Repository WorkflowRuns (`#2891 `_) (`c788985c `_) +* Assert requester argument type in Auth (`#2912 `_) (`0b8435fc `_) Bug Fixes ^^^^^^^^^ -* Revert having allowed values for add_to_collaborators (#2905) (b542438e) +* Revert having allowed values for add_to_collaborators (`#2905 `_) (`b542438e `_) Maintenance ^^^^^^^^^^^ -* Fix imports in authentication docs (#2923) (e3d36535) -* CI: add docformatter to precommit (#2614) (96ad19ae) -* Add .swp files to gitignore (#2903) (af529abe) -* Fix instructions building docs in CONTRIBUTING.md (#2900) (cd8e528d) -* Explicitly name the modules built in pyproject.toml (#2894) (4d461734) +* Fix imports in authentication docs (`#2923 `_) (`e3d36535 `_) +* CI: add docformatter to precommit (`#2614 `_) (`96ad19ae `_) +* Add .swp files to gitignore (`#2903 `_) (`af529abe `_) +* Fix instructions building docs in CONTRIBUTING.md (`#2900 `_) (`cd8e528d `_) +* Explicitly name the modules built in pyproject.toml (`#2894 `_) (`4d461734 `_) Version 2.2.0 (January 28, 2024) -------------------------------- @@ -170,48 +340,48 @@ New features Improvements ^^^^^^^^^^^^ -* Add parent_team_id, maintainers and notification_setting for creating and updating teams. (#2863) (49d07d16) -* Add support for issue reactions summary (#2866) (cc4c5269) -* Support for DependabotAlert APIs (#2879) (14af7051) -* Derive GraphQL URL from base_url (#2880) (d0caa3c3) -* Make ``Repository.compare().commits`` return paginated list (#2882) (2d284d1e) -* Add missing branch protection fields (#2873) (e47c153b) -* Add ``include_all_branches`` to ``create_repo_from_template`` of ``AuthenticatedUser`` and ``Organization`` (#2871) (34c4642e) -* Add and update organisation dependabot secrets (#2316) (603896f4) -* Add missing params to ``Organization.create_repo`` (#2700) (9c61a2a4) -* Update allowed values for ``Repository`` collaborator permissions (#1996) (b5b66da8) -* Support editing PullRequestReview (#2851) (b1c4c561) -* Update attributes after calling ``PullRequestReview.dismiss`` (#2854) (6f3d714c) -* Add ``request_cve`` on ``RepositoryAdvisories`` (#2855) (41b617b7) -* Filter collaborators of a repository by permissions (#2792) (702c127a) -* Set pull request to auto merge via GraphQL API (#2816) (232df79a) -* Support Environment Variables and Secrets (#2848) (7df97398) -* Update workflow.get_runs & pullrequest.add_to_assignees function signature (#2799) (26eedbb0) -* Add ``GithubObject.last_modified_datetime`` to have ``last_modified`` as a ``datetime`` (#2772) (e7ce8189) -* Add support for global advisories and unify some shared logic with repository advisories (#2702) (c8b4fcbe) -* Add internal as valid Repository visibility value (#2806) (d4a5a40f) -* Add support for issue comments reactions summary (#2813) (67397491) +* Add parent_team_id, maintainers and notification_setting for creating and updating teams. (`#2863 `_) (`49d07d16 `_) +* Add support for issue reactions summary (`#2866 `_) (`cc4c5269 `_) +* Support for DependabotAlert APIs (`#2879 `_) (`14af7051 `_) +* Derive GraphQL URL from base_url (`#2880 `_) (`d0caa3c3 `_) +* Make ``Repository.compare().commits`` return paginated list (`#2882 `_) (`2d284d1e `_) +* Add missing branch protection fields (`#2873 `_) (`e47c153b `_) +* Add ``include_all_branches`` to ``create_repo_from_template`` of ``AuthenticatedUser`` and ``Organization`` (`#2871 `_) (`34c4642e `_) +* Add and update organisation dependabot secrets (`#2316 `_) (`603896f4 `_) +* Add missing params to ``Organization.create_repo`` (`#2700 `_) (`9c61a2a4 `_) +* Update allowed values for ``Repository`` collaborator permissions (`#1996 `_) (`b5b66da8 `_) +* Support editing PullRequestReview (`#2851 `_) (`b1c4c561 `_) +* Update attributes after calling ``PullRequestReview.dismiss`` (`#2854 `_) (`6f3d714c `_) +* Add ``request_cve`` on ``RepositoryAdvisories`` (`#2855 `_) (`41b617b7 `_) +* Filter collaborators of a repository by permissions (`#2792 `_) (`702c127a `_) +* Set pull request to auto merge via GraphQL API (`#2816 `_) (`232df79a `_) +* Support Environment Variables and Secrets (`#2848 `_) (`7df97398 `_) +* Update workflow.get_runs & pullrequest.add_to_assignees function signature (`#2799 `_) (`26eedbb0 `_) +* Add ``GithubObject.last_modified_datetime`` to have ``last_modified`` as a ``datetime`` (`#2772 `_) (`e7ce8189 `_) +* Add support for global advisories and unify some shared logic with repository advisories (`#2702 `_) (`c8b4fcbe `_) +* Add internal as valid Repository visibility value (`#2806 `_) (`d4a5a40f `_) +* Add support for issue comments reactions summary (`#2813 `_) (`67397491 `_) Bug Fixes ^^^^^^^^^ -* Add a bunch of missing urllib.parse.quote calls (#1976) (13194be2) -* Fix Variable and Secret URL (#2835) (aa763431) +* Add a bunch of missing urllib.parse.quote calls (`#1976 `_) (`13194be2 `_) +* Fix Variable and Secret URL (`#2835 `_) (`aa763431 `_) Maintenance ^^^^^^^^^^^ -* Update the class name for NetrcAuth in the examples (#2860) (2f44b2e8) -* Move build to PEP517 (#2800) (c589bf9e) -* Use new type assert functions in ``Repository`` (#2798) (2783e671) -* PyTest: Move config to pyproject.toml (#2859) (61fb728b) -* codespell: ignore-words-list (#2858) (dcf6d8a1) -* Improve fix-headers.py script (#2728) (a48c37fa) -* Remove dependency on python-dateutil (#2804) (ab131a2f) -* CI: update precommit & apply (#2600) (d92cfba2) -* Fix parameter order according to Version 2.1.0 (#2786) (dc37d5c1) -* Add missing GitHub classes to docs (#2783) (9af9b6e5) -* Fix mypy error with urllib3>=2.0.0a1 by ignoring (#2779) (64b1cdea) +* Update the class name for NetrcAuth in the examples (`#2860 `_) (`2f44b2e8 `_) +* Move build to PEP517 (`#2800 `_) (`c589bf9e `_) +* Use new type assert functions in ``Repository`` (`#2798 `_) (`2783e671 `_) +* PyTest: Move config to pyproject.toml (`#2859 `_) (`61fb728b `_) +* codespell: ignore-words-list (`#2858 `_) (`dcf6d8a1 `_) +* Improve fix-headers.py script (`#2728 `_) (`a48c37fa `_) +* Remove dependency on python-dateutil (`#2804 `_) (`ab131a2f `_) +* CI: update precommit & apply (`#2600 `_) (`d92cfba2 `_) +* Fix parameter order according to Version 2.1.0 (`#2786 `_) (`dc37d5c1 `_) +* Add missing GitHub classes to docs (`#2783 `_) (`9af9b6e5 `_) +* Fix mypy error with urllib3>=2.0.0a1 by ignoring (`#2779 `_) (`64b1cdea `_) Version 2.1.1 (September 29, 2023) ----------------------------------- @@ -219,12 +389,12 @@ Version 2.1.1 (September 29, 2023) Bug Fixes ^^^^^^^^^ -* Require urllib 1.26.0 or greater (#2774) (001c0852) +* Require urllib 1.26.0 or greater (`#2774 `_) (`001c0852 `_) Maintenance ^^^^^^^^^^^ -* Fix pypi-release workflow, allow for manual run (#2771) (035c88f1) +* Fix pypi-release workflow, allow for manual run (`#2771 `_) (`035c88f1 `_) Version 2.1.0 (September 29, 2023) ----------------------------------- @@ -307,71 +477,71 @@ Please update your usage of ``Repository.create_pull`` accordingly. New features ^^^^^^^^^^^^ -* Throttle requests to mitigate RateLimitExceededExceptions (#2145) (99155806) -* Retry retryable 403 (rate limit) (#2387) (0bb72ca0) -* Close connections after use (#2724) (73236e23) +* Throttle requests to mitigate RateLimitExceededExceptions (`#2145 `_) (`99155806 `_) +* Retry retryable 403 (rate limit) (`#2387 `_) (`0bb72ca0 `_) +* Close connections after use (`#2724 `_) (`73236e23 `_) Improvements ^^^^^^^^^^^^ -* Make datetime objects timezone-aware (#2565) (0177f7c5) -* Make ``Branch.edit_*`` functions return objects (#2748) (8dee53a8) -* Add ``license`` attribute to ``Repository`` (#2721) (26d353e7) -* Add missing attributes to ``Repository`` (#2742) (65cfeb1b) -* Add ``is_alphanumeric`` attribute to ``Autolink`` and ``Repository.create_autolink`` (#2630) (b6a28a26) -* Suppress ``requests`` fallback to netrc, provide ``github.Auth.NetrcAuth`` (#2739) (ac36f6a9) -* Pass Requester arguments to ``AppInstallationAuth.__integration`` (#2695) (8bf542ae) -* Adding feature for enterprise consumed license (#2626) (a7bfdf2d) -* Search Workflows by Name (#2711) (eadc241e) -* Add ``Secret`` and ``Variable`` classes (#2623) (bcca758d) -* Add Autolink API link (#2632) (aedfa0b9) -* Add ``required_linear_history`` attribute to ``BranchProtection`` (#2643) (7a80fad9) -* Add retry issue to ``GithubException``, don't log it (#2611) (de80ff4b) -* Add ``message`` property to ``GithubException`` (#2591) (f087cad3) -* Add support for repo and org level actions variables (#2580) (91b3f40f) -* Add missing arguments to ``Workflow.get_runs()`` (#2346) (766df993) -* Add ``github.Rate.used`` field (#2531) (c4c2e527) +* Make datetime objects timezone-aware (`#2565 `_) (`0177f7c5 `_) +* Make ``Branch.edit_*`` functions return objects (`#2748 `_) (`8dee53a8 `_) +* Add ``license`` attribute to ``Repository`` (`#2721 `_) (`26d353e7 `_) +* Add missing attributes to ``Repository`` (`#2742 `_) (`65cfeb1b `_) +* Add ``is_alphanumeric`` attribute to ``Autolink`` and ``Repository.create_autolink`` (`#2630 `_) (`b6a28a26 `_) +* Suppress ``requests`` fallback to netrc, provide ``github.Auth.NetrcAuth`` (`#2739 `_) (`ac36f6a9 `_) +* Pass Requester arguments to ``AppInstallationAuth.__integration`` (`#2695 `_) (`8bf542ae `_) +* Adding feature for enterprise consumed license (`#2626 `_) (`a7bfdf2d `_) +* Search Workflows by Name (`#2711 `_) (`eadc241e `_) +* Add ``Secret`` and ``Variable`` classes (`#2623 `_) (`bcca758d `_) +* Add Autolink API link (`#2632 `_) (`aedfa0b9 `_) +* Add ``required_linear_history`` attribute to ``BranchProtection`` (`#2643 `_) (`7a80fad9 `_) +* Add retry issue to ``GithubException``, don't log it (`#2611 `_) (`de80ff4b `_) +* Add ``message`` property to ``GithubException`` (`#2591 `_) (`f087cad3 `_) +* Add support for repo and org level actions variables (`#2580 `_) (`91b3f40f `_) +* Add missing arguments to ``Workflow.get_runs()`` (`#2346 `_) (`766df993 `_) +* Add ``github.Rate.used`` field (`#2531 `_) (`c4c2e527 `_) Bug Fixes ^^^^^^^^^ -* Fix ``Branch.bypass_pull_request_allowances`` failing with "nil is not an object" (#2535) (c5542a6a) -* Fix ``required_conversation_resolution`` assertion (#2715) (54f22267) -* Fix assertion creating pull request review comment (#2641) (2fa568b6) -* Safely coerce ``responseHeaders`` to ``int`` (#2697) (adbfce92) -* Fix assertion for ``subject_type`` in creating pull request review comment (#2642) (4933459e) -* Use timezone-aware reset datetime in ``GithubRetry.py`` (#2610) (950a6949) -* Fix ``Branch.bypass_pull_request_allowances`` failing with "nil is not an object" (#2535) (c5542a6a) +* Fix ``Branch.bypass_pull_request_allowances`` failing with "nil is not an object" (`#2535 `_) (`c5542a6a `_) +* Fix ``required_conversation_resolution`` assertion (`#2715 `_) (`54f22267 `_) +* Fix assertion creating pull request review comment (`#2641 `_) (`2fa568b6 `_) +* Safely coerce ``responseHeaders`` to ``int`` (`#2697 `_) (`adbfce92 `_) +* Fix assertion for ``subject_type`` in creating pull request review comment (`#2642 `_) (`4933459e `_) +* Use timezone-aware reset datetime in ``GithubRetry.py`` (`#2610 `_) (`950a6949 `_) +* Fix ``Branch.bypass_pull_request_allowances`` failing with "nil is not an object" (`#2535 `_) (`c5542a6a `_) Maintenance ^^^^^^^^^^^ -* Epic mass-merge ``.pyi`` type stubs back to ``.py`` sources (#2636) -* Move to main default branch (#2566) (e66c163a) -* Force Unix EOL (#2573) (094538e1) -* Close replay test data file silently when test is failing already (#2747) (6d871d56) -* CI: Make CI support merge queue (#2644) (a91debf1) -* CI: Run CI on release branches (#2708) (9a88b6b1) -* CI: remove conflict label workflow (#2669) (95d8b83c) -* Fix pip install command in README.md (#2731) (2cc1ba2c) -* Update ``add_attribute.py`` to latest conding style (#2631) (e735972e) -* CI: Improve ruff DX (#2667) (48d2009c) -* CI: Increase wait and retries of labels action (#2670) (ff0f31c2) -* Replace ``flake8`` with ``ruff`` (#2617) (42c3b47c) -* CI: update labels action name and version (#2654) (c5c83eb5) -* CI: label PRs that have conflicts (#2622) (1d637e4b) -* Unify requirements files location & source in setup.py (#2598) (2edc0f8f) -* Enable mypy ``disallow_untyped_defs`` (#2609) (294c0cc9) -* Enable mypy ``check_untyped_defs`` (#2607) (8816889a) -* Set line length to 120 characters (#2599) (13e178a3) -* CI: Build and check package before release (#2593) (3c880e76) -* Use ``typing_extensions`` for ``TypedDict`` (#2592) (5fcb0c7d) -* CI: Update action actions/setup-python (#2382) (2e5cd31e) -* Add more methods and attributes to Repository.pyi (#2581) (72840de4) -* CI: Make pytest color logs (#2597) (73241102) -* precommit: move ``flake8`` as last (#2595) (11bb6bd7) -* Test on Windows and macOS, don't fail fast (#2590) (5c600894) -* Remove symlinks from test data (#2588) (8d3b9057) +* Epic mass-merge ``.pyi`` type stubs back to ``.py`` sources (`#2636 `_) +* Move to main default branch (`#2566 `_) (`e66c163a `_) +* Force Unix EOL (`#2573 `_) (`094538e1 `_) +* Close replay test data file silently when test is failing already (`#2747 `_) (`6d871d56 `_) +* CI: Make CI support merge queue (`#2644 `_) (`a91debf1 `_) +* CI: Run CI on release branches (`#2708 `_) (`9a88b6b1 `_) +* CI: remove conflict label workflow (`#2669 `_) (`95d8b83c `_) +* Fix pip install command in README.md (`#2731 `_) (`2cc1ba2c `_) +* Update ``add_attribute.py`` to latest conding style (`#2631 `_) (`e735972e `_) +* CI: Improve ruff DX (`#2667 `_) (`48d2009c `_) +* CI: Increase wait and retries of labels action (`#2670 `_) (`ff0f31c2 `_) +* Replace ``flake8`` with ``ruff`` (`#2617 `_) (`42c3b47c `_) +* CI: update labels action name and version (`#2654 `_) (`c5c83eb5 `_) +* CI: label PRs that have conflicts (`#2622 `_) (`1d637e4b `_) +* Unify requirements files location & source in setup.py (`#2598 `_) (`2edc0f8f `_) +* Enable mypy ``disallow_untyped_defs`` (`#2609 `_) (`294c0cc9 `_) +* Enable mypy ``check_untyped_defs`` (`#2607 `_) (`8816889a `_) +* Set line length to 120 characters (`#2599 `_) (`13e178a3 `_) +* CI: Build and check package before release (`#2593 `_) (`3c880e76 `_) +* Use ``typing_extensions`` for ``TypedDict`` (`#2592 `_) (`5fcb0c7d `_) +* CI: Update action actions/setup-python (`#2382 `_) (`2e5cd31e `_) +* Add more methods and attributes to Repository.pyi (`#2581 `_) (`72840de4 `_) +* CI: Make pytest color logs (`#2597 `_) (`73241102 `_) +* precommit: move ``flake8`` as last (`#2595 `_) (`11bb6bd7 `_) +* Test on Windows and macOS, don't fail fast (`#2590 `_) (`5c600894 `_) +* Remove symlinks from test data (`#2588 `_) (`8d3b9057 `_) Version 1.59.1 (July 03, 2023) ----------------------------------- @@ -379,7 +549,7 @@ Version 1.59.1 (July 03, 2023) Bug Fixes ^^^^^^^^^ -* Safely coerce responseHeaders to int (#2697) (adbfce92) +* Safely coerce responseHeaders to int (`#2697 `_) (`adbfce92 `_) Version 1.59.0 (June 22, 2023) ----------------------------------- @@ -423,64 +593,64 @@ Deprecation Bug Fixes ^^^^^^^^^ -* Test and fix UTC issue with AppInstallationAuth (#2561) (ff3b80f8) -* Make Requester.__createException robust against missing message and body (#2159) (7be3f763) -* Fix auth issues with `Installation.get_repos` (#2547) (64075120) -* Fix broken urls in docstrings (#2393) (f82ad61c) -* Raise error on unsupported redirects, log supported redirects (#2524) (17cd0b79) -* Fix GithubIntegration that uses expiring jwt (#2460) (5011548c) -* Add expiration argument back to GithubIntegration.create_jwt (#2439) (822fc05c) -* Add crypto extras to pyjwt, which pulls in cryptogaphy package (#2443) (554b2b28) -* Remove RLock from Requester (#2446) (45f3d723) -* Move CI to Python 3.11 release and 3.12 dev (#2434) (e414c322) -* Pass Requester base URL to integration (#2420) (bdceae2f) +* Test and fix UTC issue with AppInstallationAuth (`#2561 `_) (`ff3b80f8 `_) +* Make Requester.__createException robust against missing message and body (`#2159 `_) (`7be3f763 `_) +* Fix auth issues with `Installation.get_repos` (`#2547 `_) (`64075120 `_) +* Fix broken urls in docstrings (`#2393 `_) (`f82ad61c `_) +* Raise error on unsupported redirects, log supported redirects (`#2524 `_) (`17cd0b79 `_) +* Fix GithubIntegration that uses expiring jwt (`#2460 `_) (`5011548c `_) +* Add expiration argument back to GithubIntegration.create_jwt (`#2439 `_) (`822fc05c `_) +* Add crypto extras to pyjwt, which pulls in cryptogaphy package (`#2443 `_) (`554b2b28 `_) +* Remove RLock from Requester (`#2446 `_) (`45f3d723 `_) +* Move CI to Python 3.11 release and 3.12 dev (`#2434 `_) (`e414c322 `_) +* Pass Requester base URL to integration (`#2420 `_) (`bdceae2f `_) Improvements ^^^^^^^^^^^^ -* Add Webhook Deliveries (#2508) (517ad336) -* Add support for workflow jobs and steps (#1951) (804c3107) -* Add support for get_app() with App authentication (#2549) (6d4b6d14) -* Allow multiline comments in PullRequest (#2540) (6a21761e) -* Implement `AppUserAuth` for Github App user tokens (#2546) (f291a368) -* Add support for environments (#2223) (0384e2fd) -* Add support for new RepositoryAdvisories API :tada: (#2483) (daf62bd4) -* Make `MainClass.get_app` return completed `GithubApp` when slug is given (#2543) (84912a67) -* Add authentication classes, move auth logic there (#2528) (fc2d0e15) -* Add sort order and direction for getting comments (#2544) (a8e7c423) -* Add `name` filter to `Repository.get_artifacts()` (#2459) (9f52e948) -* Add `name`, `display_title` and `path` attributes to `WorkflowRun` (#2397) (10816389) -* Add new `create_fork` arguments (#2493) (b94a83cb) -* add `ref` to Deployment (#2489) (e8075c41) -* Add query `check_suite_id` integer to `Workflow.get_runs` (#2466) (a4854519) -* Add `generate_release_notes` parameter to `create_git_release` and `create_git_tag_and_release` (#2417) (49b3ae16) -* Add example for Pull Request comments to documentation (#2390) (c2f12bdc) -* Add allow_auto_merge support to Repository (#2477) (8c4b9465) -* Add `artifact_id` argument to `Repository.get_artifact()` (#2458) (4fa0a5f3) -* Add missing attributes to Branch (#2512) (e296dbdb) -* Add allow_update_branch option to Organization (#2465) (bab4180f) -* Add support for Issue.state_reason #2370 (#2392) (5aa544a1) -* Add parameters to Repository.get_workflow_runs (#2408) (4198dbfb) +* Add Webhook Deliveries (`#2508 `_) (`517ad336 `_) +* Add support for workflow jobs and steps (`#1951 `_) (`804c3107 `_) +* Add support for get_app() with App authentication (`#2549 `_) (`6d4b6d14 `_) +* Allow multiline comments in PullRequest (`#2540 `_) (`6a21761e `_) +* Implement `AppUserAuth` for Github App user tokens (`#2546 `_) (`f291a368 `_) +* Add support for environments (`#2223 `_) (`0384e2fd `_) +* Add support for new RepositoryAdvisories API :tada: (`#2483 `_) (`daf62bd4 `_) +* Make `MainClass.get_app` return completed `GithubApp` when slug is given (`#2543 `_) (`84912a67 `_) +* Add authentication classes, move auth logic there (`#2528 `_) (`fc2d0e15 `_) +* Add sort order and direction for getting comments (`#2544 `_) (`a8e7c423 `_) +* Add `name` filter to `Repository.get_artifacts()` (`#2459 `_) (`9f52e948 `_) +* Add `name`, `display_title` and `path` attributes to `WorkflowRun` (`#2397 `_) (`10816389 `_) +* Add new `create_fork` arguments (`#2493 `_) (`b94a83cb `_) +* add `ref` to Deployment (`#2489 `_) (`e8075c41 `_) +* Add query `check_suite_id` integer to `Workflow.get_runs` (`#2466 `_) (`a4854519 `_) +* Add `generate_release_notes` parameter to `create_git_release` and `create_git_tag_and_release` (`#2417 `_) (`49b3ae16 `_) +* Add example for Pull Request comments to documentation (`#2390 `_) (`c2f12bdc `_) +* Add allow_auto_merge support to Repository (`#2477 `_) (`8c4b9465 `_) +* Add `artifact_id` argument to `Repository.get_artifact()` (`#2458 `_) (`4fa0a5f3 `_) +* Add missing attributes to Branch (`#2512 `_) (`e296dbdb `_) +* Add allow_update_branch option to Organization (`#2465 `_) (`bab4180f `_) +* Add support for Issue.state_reason #2370 (`#2392 `_) (`5aa544a1 `_) +* Add parameters to Repository.get_workflow_runs (`#2408 `_) (`4198dbfb `_) Maintenance ^^^^^^^^^^^ -* Add type stub for MainClass.get_project_column (#2502) (d514222c) -* Sync GithubIntegration __init__ arguments with github.Github (#2556) (ea45237d) -* Update MAINTAINERS (#2545) (f4e9dcb3) -* Link to stable docs, update introduction in package used by pypi, move auth arg front (#2557) (006766f9) -* Merge PaginatedList.pyi back to source (#2555) (cb50dec5) -* Merge GithubObject.pyi/Requester.pyi stubs back to source (#2463) (b6258f4b) -* [CI] Moving linting into separate workflow (#2522) (52fc1077) -* Merging 1.58.x patch release notes into master (#2525) (217d4241) -* Merge AppAuthentication.pyi to source (#2519) (8e8cfb30) -* Merge GithubException.pyi stubs back to source (#2464) (03a2f696) -* Add missing fields from `GithubCredentials.py` to CONTRIBUTING.md (#2482) (297317ba) -* Update docstring and typing for allow_forking and allow_update_branch (Repository) (#2529) (600217f0) -* Bump actions/checkout from 2 to 3.1.0 (#2327) (300c5015) -* RTD: install current project (def5223c) -* Add current dir sys.path as well (9c96faa7) -* Use use_scm_version to get current version from git tag (#2429) (3ea91a3a) +* Add type stub for MainClass.get_project_column (`#2502 `_) (`d514222c `_) +* Sync GithubIntegration __init__ arguments with github.Github (`#2556 `_) (`ea45237d `_) +* Update MAINTAINERS (`#2545 `_) (`f4e9dcb3 `_) +* Link to stable docs, update introduction in package used by pypi, move auth arg front (`#2557 `_) (`006766f9 `_) +* Merge PaginatedList.pyi back to source (`#2555 `_) (`cb50dec5 `_) +* Merge GithubObject.pyi/Requester.pyi stubs back to source (`#2463 `_) (`b6258f4b `_) +* [CI] Moving linting into separate workflow (`#2522 `_) (`52fc1077 `_) +* Merging 1.58.x patch release notes into master (`#2525 `_) (`217d4241 `_) +* Merge AppAuthentication.pyi to source (`#2519 `_) (`8e8cfb30 `_) +* Merge GithubException.pyi stubs back to source (`#2464 `_) (`03a2f696 `_) +* Add missing fields from `GithubCredentials.py` to CONTRIBUTING.md (`#2482 `_) (`297317ba `_) +* Update docstring and typing for allow_forking and allow_update_branch (Repository) (`#2529 `_) (`600217f0 `_) +* Bump actions/checkout from 2 to 3.1.0 (`#2327 `_) (`300c5015 `_) +* RTD: install current project (`def5223c `_) +* Add current dir sys.path as well (`9c96faa7 `_) +* Use use_scm_version to get current version from git tag (`#2429 `_) (`3ea91a3a `_) Version 1.58.2 (May 09, 2023) ----------------------------------- @@ -488,7 +658,7 @@ Version 1.58.2 (May 09, 2023) Bug Fixes ^^^^^^^^^ -* Fix GithubIntegration that uses expiring jwt (#2460) (5011548c) +* Fix GithubIntegration that uses expiring jwt (`#2460 `_) (`5011548c `_) Version 1.58.1 (March 18, 2023) ----------------------------------- @@ -496,14 +666,14 @@ Version 1.58.1 (March 18, 2023) Bug Fixes ^^^^^^^^^ -* Add expiration argument back to GithubIntegration.create_jwt (#2439) (822fc05c) -* Add crypto extras to pyjwt, which pulls in cryptogaphy package (#2443) (554b2b28) -* Remove RLock from Requester (#2446) (45f3d723) -* Move CI to Python 3.11 release and 3.12 dev (#2434) (e414c322) -* pass requester base URL to integration (#2420) (bdceae2f) -* RTD: install current project (def5223c) -* Add current dir sys.path as well (9c96faa7) -* Use use_scm_version to get current version from git tag (#2429) (3ea91a3a) +* Add expiration argument back to GithubIntegration.create_jwt (`#2439 `_) (`822fc05c `_) +* Add crypto extras to pyjwt, which pulls in cryptogaphy package (`#2443 `_) (`554b2b28 `_) +* Remove RLock from Requester (`#2446 `_) (`45f3d723 `_) +* Move CI to Python 3.11 release and 3.12 dev (`#2434 `_) (`e414c322 `_) +* pass requester base URL to integration (`#2420 `_) (`bdceae2f `_) +* RTD: install current project (`def5223c `_) +* Add current dir sys.path as well (`9c96faa7 `_) +* Use use_scm_version to get current version from git tag (`#2429 `_) (`3ea91a3a `_) Version 1.58.0 (February 19, 2023) ----------------------------------- @@ -511,11 +681,11 @@ Version 1.58.0 (February 19, 2023) Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^ -* Add unarchiving support @Tsuesun (#2391) -* Support full GitHub app authentication @dblanchette (#1986) -* Continue the PR #1899 @Felixoid (#2386) -* feat: add allow\_forking to Repository @IbrahimAH (#2380) -* Add code scanning alerts @eric-nieuwland (#2227) +* Add unarchiving support @Tsuesun (`#2391 `_) +* Support full GitHub app authentication @dblanchette (`#1986 `_) +* Continue the PR #1899 @Felixoid (`#2386 `_) +* feat: add allow\_forking to Repository @IbrahimAH (`#2380 `_) +* Add code scanning alerts @eric-nieuwland (`#2227 `_) Version 1.57 (November 05, 2022) ----------------------------------- @@ -523,17 +693,17 @@ Version 1.57 (November 05, 2022) Breaking Changes ^^^^^^^^^^^^^^^^ -* Add support for Python 3.11, drop support for Python 3.6 (#2332) (1e2f10dc) +* Add support for Python 3.11, drop support for Python 3.6 (`#2332 `_) (`1e2f10dc `_) Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^ -* Speed up get requested reviewers and teams for pr (#2349) (6725eceb) -* [WorkflowRun] - Add missing attributes (`run_started_at` & `run_attempt`), remove deprecated `unicode` type (#2273) (3a6235b5) -* Add support for repository autolink references (#2016) (0fadd6be) -* Add retry and pool_size to typing (#2151) (784a3efd) -* Fix/types for repo topic team (#2341) (db9337a4) -* Add class Artifact (#2313) (#2319) (437ff845) +* Speed up get requested reviewers and teams for pr (`#2349 `_) (`6725eceb `_) +* [WorkflowRun] - Add missing attributes (`run_started_at` & `run_attempt`), remove deprecated `unicode` type (`#2273 `_) (`3a6235b5 `_) +* Add support for repository autolink references (`#2016 `_) (`0fadd6be `_) +* Add retry and pool_size to typing (`#2151 `_) (`784a3efd `_) +* Fix/types for repo topic team (`#2341 `_) (`db9337a4 `_) +* Add class Artifact (`#2313 `_) (#2319) (`437ff845 `_) Version 1.56 (October 13, 2022) ----------------------------------- @@ -546,27 +716,27 @@ This is the last release that will support Python 3.6. Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^ -* Create repo from template (#2090) (b50283a7) -* Improve signature of Repository.create_repo (#2118) (001970d4) -* Add support for 'visibility' attribute preview for Repositories (#1872) (8d1397af) -* Add Repository.rename_branch method (#2089) (6452ddfe) -* Add function to delete pending reviews on a pull request (#1897) (c8a945bb) -* Cover all code paths in search_commits (#2087) (f1faf941) -* Correctly deal when PaginatedList's data is a dict (#2084) (93b92cd2) -* Add two_factor_authentication in AuthenticatedUser. (#1972) (4f00cbf2) -* Add ProjectCard.edit() to the type stub (#2080) (d417e4c4) -* Add method to delete Workflow runs (#2078) (b1c8eec5) -* Implement organization.cancel_invitation() (#2072) (53fb4988) -* Feat: Add `html_url` property in Team Class. (#1983) (6570892a) -* Add support for Python 3.10 (#2073) (aa694f8e) -* Add github actions secrets to org (#2006) (bc5e5950) -* Correct replay for Organization.create_project() test (#2075) (fcc12368) -* Fix install command example (#2043) (99e00a28) -* Fix: #1671 Convert Python Bool to API Parameter for Authenticated User Notifications (#2001) (1da600a3) -* Do not transform requestHeaders when logging (#1965) (1265747e) -* Add type to OrderedDict (#1954) (ed7d0fe9) -* Add Commit.get_pulls() to pyi (#1958) (b4664705) -* Adding headers in GithubException is a breaking change (#1931) (d1644e33) +* Create repo from template (`#2090 `_) (`b50283a7 `_) +* Improve signature of Repository.create_repo (`#2118 `_) (`001970d4 `_) +* Add support for 'visibility' attribute preview for Repositories (`#1872 `_) (`8d1397af `_) +* Add Repository.rename_branch method (`#2089 `_) (`6452ddfe `_) +* Add function to delete pending reviews on a pull request (`#1897 `_) (`c8a945bb `_) +* Cover all code paths in search_commits (`#2087 `_) (`f1faf941 `_) +* Correctly deal when PaginatedList's data is a dict (`#2084 `_) (`93b92cd2 `_) +* Add two_factor_authentication in AuthenticatedUser. (`#1972 `_) (`4f00cbf2 `_) +* Add ProjectCard.edit() to the type stub (`#2080 `_) (`d417e4c4 `_) +* Add method to delete Workflow runs (`#2078 `_) (`b1c8eec5 `_) +* Implement organization.cancel_invitation() (`#2072 `_) (`53fb4988 `_) +* Feat: Add `html_url` property in Team Class. (`#1983 `_) (`6570892a `_) +* Add support for Python 3.10 (`#2073 `_) (`aa694f8e `_) +* Add github actions secrets to org (`#2006 `_) (`bc5e5950 `_) +* Correct replay for Organization.create_project() test (`#2075 `_) (`fcc12368 `_) +* Fix install command example (`#2043 `_) (`99e00a28 `_) +* Fix: #1671 Convert Python Bool to API Parameter for Authenticated User Notifications (`#2001 `_) (`1da600a3 `_) +* Do not transform requestHeaders when logging (`#1965 `_) (`1265747e `_) +* Add type to OrderedDict (`#1954 `_) (`ed7d0fe9 `_) +* Add Commit.get_pulls() to pyi (`#1958 `_) (`b4664705 `_) +* Adding headers in GithubException is a breaking change (`#1931 `_) (`d1644e33 `_) Version 1.55 (April 26, 2021) ----------------------------------- @@ -574,50 +744,50 @@ Version 1.55 (April 26, 2021) Breaking Changes ^^^^^^^^^^^^^^^^ -* Remove client_id/client_secret authentication (#1888) (901af8c8) -* Adjust to Github API changes regarding emails (#1890) (2c77cfad) +* Remove client_id/client_secret authentication (`#1888 `_) (`901af8c8 `_) +* Adjust to Github API changes regarding emails (`#1890 `_) (`2c77cfad `_) - This impacts what AuthenticatedUser.get_emails() returns -* PublicKey.key_id could be int on Github Enterprise (#1894) (ad124ef4) -* Export headers in GithubException (#1887) (ddd437a7) +* PublicKey.key_id could be int on Github Enterprise (`#1894 `_) (`ad124ef4 `_) +* Export headers in GithubException (`#1887 `_) (`ddd437a7 `_) Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^ -* Do not import from unpackaged paths in typing (#1926) (27ba7838) -* Implement hash for CompletableGithubObject (#1922) (4faff23c) -* Use property decorator to improve typing compatibility (#1925) (e4168109) -* Fix :rtype: directive (#1927) (54b6a97b) -* Update most URLs to docs.github.com (#1896) (babcbcd0) -* Tighten asserts for new Permission tests (#1893) (5aab6f5d) -* Adding attributes "maintain" and "triage" to class "Permissions" (#1810) (76879613) -* Add default arguments to Workflow method type annotations (#1857) (7d6bac9e) -* Re-raise the exception when failing to parse JSON (#1892) (916da53b) -* Allow adding attributes at the end of the list (#1807) (0245b758) -* Updating links to Github documentation for deploy keys (#1850) (c27fb919) -* Update PyJWT Version to 2.0+ (#1891) (a68577b7) -* Use right variable in both get_check_runs() (#1889) (3003e065) -* fix bad assertions in github.Project.edit (#1817) (6bae9e5c) -* Test repr() for PublicKey (#1879) (e0acd8f4) -* Add support for deleting repository secrets (#1868) (696793de) -* Switch repository secrets to using f-strings (#1867) (aa240304) -* Manually fixing paths for codecov.io to cover all project files (#1813) (b2232c89) -* Add missing links to project metadata (#1789) (64f532ae) -* No longer show username and password examples (#1866) (55d98373) -* Adding github actions secrets (#1681) (c90c050e) -* fix get_user_issues (#1842) (7db1b0c9) -* Switch all string addition to using f-strings (#1774) (290b6272) -* Enabling connection pool_size definition (a77d4f48) -* Always define the session adapter (aaec0a0f) +* Do not import from unpackaged paths in typing (`#1926 `_) (`27ba7838 `_) +* Implement hash for CompletableGithubObject (`#1922 `_) (`4faff23c `_) +* Use property decorator to improve typing compatibility (`#1925 `_) (`e4168109 `_) +* Fix :rtype: directive (`#1927 `_) (`54b6a97b `_) +* Update most URLs to docs.github.com (`#1896 `_) (`babcbcd0 `_) +* Tighten asserts for new Permission tests (`#1893 `_) (`5aab6f5d `_) +* Adding attributes "maintain" and "triage" to class "Permissions" (`#1810 `_) (`76879613 `_) +* Add default arguments to Workflow method type annotations (`#1857 `_) (`7d6bac9e `_) +* Re-raise the exception when failing to parse JSON (`#1892 `_) (`916da53b `_) +* Allow adding attributes at the end of the list (`#1807 `_) (`0245b758 `_) +* Updating links to Github documentation for deploy keys (`#1850 `_) (`c27fb919 `_) +* Update PyJWT Version to 2.0+ (`#1891 `_) (`a68577b7 `_) +* Use right variable in both get_check_runs() (`#1889 `_) (`3003e065 `_) +* fix bad assertions in github.Project.edit (`#1817 `_) (`6bae9e5c `_) +* Test repr() for PublicKey (`#1879 `_) (`e0acd8f4 `_) +* Add support for deleting repository secrets (`#1868 `_) (`696793de `_) +* Switch repository secrets to using f-strings (`#1867 `_) (`aa240304 `_) +* Manually fixing paths for codecov.io to cover all project files (`#1813 `_) (`b2232c89 `_) +* Add missing links to project metadata (`#1789 `_) (`64f532ae `_) +* No longer show username and password examples (`#1866 `_) (`55d98373 `_) +* Adding github actions secrets (`#1681 `_) (`c90c050e `_) +* fix get_user_issues (`#1842 `_) (`7db1b0c9 `_) +* Switch all string addition to using f-strings (`#1774 `_) (`290b6272 `_) +* Enabling connection pool_size definition (`a77d4f48 `_) +* Always define the session adapter (`aaec0a0f `_) Version 1.54.1 (December 24, 2020) ----------------------------------- -* Pin pyjwt version (#1797) (31a1c007) -* Add pyupgrade to pre-commit configuration (#1783) (e113e37d) -* Fix #1731: Incorrect annotation (82c349ce) -* Drop support for Python 3.5 (#1770) (63e4fae9) -* Revert "Pin requests to <2.25 as well (#1757)" (#1763) (a806b523) -* Fix stubs file for Repository (fab682a5) +* Pin pyjwt version (`#1797 `_) (`31a1c007 `_) +* Add pyupgrade to pre-commit configuration (`#1783 `_) (`e113e37d `_) +* Fix #1731: Incorrect annotation (`82c349ce `_) +* Drop support for Python 3.5 (`#1770 `_) (`63e4fae9 `_) +* Revert "Pin requests to <2.25 as well (`#1757 `_)" (#1763) (`a806b523 `_) +* Fix stubs file for Repository (`fab682a5 `_) Version 1.54 (November 30, 2020) ----------------------------------- @@ -636,102 +806,102 @@ Repository.create_deployment()'s payload parameter is now a dictionary. Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^ -* Add support for Check Suites (#1764) (6d501b28) -* Add missing preview features of Deployment and Deployment Statuses API (#1674) (197e0653) -* Correct typing for Commit.get_comments() (#1765) (fcdd9eae) -* Pin requests to <2.25 as well (#1757) (d159425f) -* Add Support for Check Runs (#1727) (c77c0676) -* Added a method for getting a user by their id (#1691) (4cfc9912) -* Fix #1742 - incorrect typehint for `Installation.id` (#1743) (546f6495) -* Add WorkflowRun.workflow_id (#1737) (78a29a7c) -* Add support for Python 3.9 (#1735) (1bb18ab5) -* Added support for the Self-Hosted actions runners API (#1684) (24251f4b) -* Fix Branch protection status in the examples (#1729) (88800844) -* Filter the DeprecationWarning in Team tests (#1728) (23f47539) -* Added get_installations() to Organizations (#1695) (b42fb244) -* Fix #1507: Add new Teams: Add or update team repository endpoint (#1509) (1c55be51) -* Added support for `Repository.get_workflow_runs` parameters (#1682) (c23564dd) -* feat(pullrequest): add the rebaseable attribute (#1690) (ee4c7a7e) -* Add support for deleting reactions (#1708) (f7d203c0) -* Correct type hint for InputGitTreeElement.sha (08b72b48) -* Ignore new black formatting commit for git blame (#1680) (7ec4f155) -* Format with new black (#1679) (07e29fe0) -* Add get_timeline() to Issue's type stubs (#1663) (6bc9ecc8) +* Add support for Check Suites (`#1764 `_) (`6d501b28 `_) +* Add missing preview features of Deployment and Deployment Statuses API (`#1674 `_) (`197e0653 `_) +* Correct typing for Commit.get_comments() (`#1765 `_) (`fcdd9eae `_) +* Pin requests to <2.25 as well (`#1757 `_) (`d159425f `_) +* Add Support for Check Runs (`#1727 `_) (`c77c0676 `_) +* Added a method for getting a user by their id (`#1691 `_) (`4cfc9912 `_) +* Fix #1742 - incorrect typehint for `Installation.id` (`#1743 `_) (`546f6495 `_) +* Add WorkflowRun.workflow_id (`#1737 `_) (`78a29a7c `_) +* Add support for Python 3.9 (`#1735 `_) (`1bb18ab5 `_) +* Added support for the Self-Hosted actions runners API (`#1684 `_) (`24251f4b `_) +* Fix Branch protection status in the examples (`#1729 `_) (`88800844 `_) +* Filter the DeprecationWarning in Team tests (`#1728 `_) (`23f47539 `_) +* Added get_installations() to Organizations (`#1695 `_) (`b42fb244 `_) +* Fix #1507: Add new Teams: Add or update team repository endpoint (`#1509 `_) (`1c55be51 `_) +* Added support for `Repository.get_workflow_runs` parameters (`#1682 `_) (`c23564dd `_) +* feat(pullrequest): add the rebaseable attribute (`#1690 `_) (`ee4c7a7e `_) +* Add support for deleting reactions (`#1708 `_) (`f7d203c0 `_) +* Correct type hint for InputGitTreeElement.sha (`08b72b48 `_) +* Ignore new black formatting commit for git blame (`#1680 `_) (`7ec4f155 `_) +* Format with new black (`#1679 `_) (`07e29fe0 `_) +* Add get_timeline() to Issue's type stubs (`#1663 `_) (`6bc9ecc8 `_) Version 1.53 (August 18, 2020) ----------------------------------- -* Test Organization.get_hook() (#1660) (2646a98c) -* Add method get_team_membership for user to Team (#1658) (749e8d35) -* Add typing files for OAuth classes (#1656) (429fcc73) -* Fix Repository.create_repository_dispatch type signature (#1643) (f891bd61) -* PaginatedList's totalCount is 0 if no last page (#1641) (69b37b4a) -* Add initial support for Github Apps. (#1631) (260558c1) -* Correct ``**kwargs`` typing for ``search_*`` (#1636) (165d995d) -* Add delete_branch_on_merge arg to Repository.edit type stub (#1639) (15b5ae0c) -* Fix type stub for MainClass.get_user (#1637) (8912be64) -* Add type stub for Repository.create_fork (#1638) (de386dfb) -* Correct Repository.create_pull typing harder (#1635) (5ad091d0) +* Test Organization.get_hook() (`#1660 `_) (`2646a98c `_) +* Add method get_team_membership for user to Team (`#1658 `_) (`749e8d35 `_) +* Add typing files for OAuth classes (`#1656 `_) (`429fcc73 `_) +* Fix Repository.create_repository_dispatch type signature (`#1643 `_) (`f891bd61 `_) +* PaginatedList's totalCount is 0 if no last page (`#1641 `_) (`69b37b4a `_) +* Add initial support for Github Apps. (`#1631 `_) (`260558c1 `_) +* Correct ``**kwargs`` typing for ``search_*`` (`#1636 `_) (`165d995d `_) +* Add delete_branch_on_merge arg to Repository.edit type stub (`#1639 `_) (`15b5ae0c `_) +* Fix type stub for MainClass.get_user (`#1637 `_) (`8912be64 `_) +* Add type stub for Repository.create_fork (`#1638 `_) (`de386dfb `_) +* Correct Repository.create_pull typing harder (`#1635 `_) (`5ad091d0 `_) Version 1.52 (August 03, 2020) ----------------------------------- -* upload_asset with data in memory (#1601) (a7786393) -* Make Issue.closed_by nullable (#1629) (06dae387) -* Add support for workflow dispatch event (#1625) (16850ef1) -* Do not check reaction_type before sending (#1592) (136a3e80) -* Various Github Action improvement (#1610) (416f2d0f) -* more flexible header splitting (#1616) (85e71361) -* Create Dependabot config file (#1607) (e272f117) -* Add support for deployment statuses (#1588) (048c8a1d) -* Adds the 'twitter_username' attribute to NamedUser. (#1585) (079f75a7) -* Create WorkflowRun.timing namedtuple from the dict (#1587) (1879518e) -* Add missing properties to PullRequest.pyi (#1577) (c84fad81) -* Add support for Workflow Runs (#1583) (4fb1d23f) -* More precise typing for Repository.create_pull (#1581) (4ed7aaf8) -* Update sphinx-rtd-theme requirement from <0.5 to <0.6 (#1563) (f9e4feeb) -* More precise typing for MainClass.get_user() (#1575) (3668f866) -* Small documentation correction in Repository.py (#1565) (f0f6ec83) +* upload_asset with data in memory (`#1601 `_) (`a7786393 `_) +* Make Issue.closed_by nullable (`#1629 `_) (`06dae387 `_) +* Add support for workflow dispatch event (`#1625 `_) (`16850ef1 `_) +* Do not check reaction_type before sending (`#1592 `_) (`136a3e80 `_) +* Various Github Action improvement (`#1610 `_) (`416f2d0f `_) +* more flexible header splitting (`#1616 `_) (`85e71361 `_) +* Create Dependabot config file (`#1607 `_) (`e272f117 `_) +* Add support for deployment statuses (`#1588 `_) (`048c8a1d `_) +* Adds the 'twitter_username' attribute to NamedUser. (`#1585 `_) (`079f75a7 `_) +* Create WorkflowRun.timing namedtuple from the dict (`#1587 `_) (`1879518e `_) +* Add missing properties to PullRequest.pyi (`#1577 `_) (`c84fad81 `_) +* Add support for Workflow Runs (`#1583 `_) (`4fb1d23f `_) +* More precise typing for Repository.create_pull (`#1581 `_) (`4ed7aaf8 `_) +* Update sphinx-rtd-theme requirement from <0.5 to <0.6 (`#1563 `_) (`f9e4feeb `_) +* More precise typing for MainClass.get_user() (`#1575 `_) (`3668f866 `_) +* Small documentation correction in Repository.py (`#1565 `_) (`f0f6ec83 `_) * Remove "api_preview" parameter from type stubs and docstrings - (#1559) (cc1b884c) -* Upgrade actions/setup-python to v2 (#1555) (6f1640d2) -* Clean up tests for GitReleaseAsset (#1546) (925764ad) -* Repository.update_file() content also accepts bytes (#1543) (9fb8588b) -* Fix Repository.get_issues stub (#1540) (b40b75f8) -* Check all arguments of NamedUser.get_repos() (#1532) (69bfc325) -* Correct Workflow typing (#1533) (f41c046f) -* Remove RateLimit.rate (#1529) (7abf6004) -* PullRequestReview is not a completable object (#1528) (19fc43ab) -* Test more attributes (#1526) (52ec366b) -* Remove pointless setters in GitReleaseAsset (#1527) (1dd1cf9c) -* Drop some unimplemented methods in GitRef (#1525) (d4b61311) -* Remove unneeded duplicate string checks in Branch (#1524) (61b61092) -* Turn on coverage reporting for codecov (#1522) (e79b9013) -* Drastically increase coverage by checking repr() (#1521) (291c4630) + (`#1559 `_) (`cc1b884c `_) +* Upgrade actions/setup-python to v2 (`#1555 `_) (`6f1640d2 `_) +* Clean up tests for GitReleaseAsset (`#1546 `_) (`925764ad `_) +* Repository.update_file() content also accepts bytes (`#1543 `_) (`9fb8588b `_) +* Fix Repository.get_issues stub (`#1540 `_) (`b40b75f8 `_) +* Check all arguments of NamedUser.get_repos() (`#1532 `_) (`69bfc325 `_) +* Correct Workflow typing (`#1533 `_) (`f41c046f `_) +* Remove RateLimit.rate (`#1529 `_) (`7abf6004 `_) +* PullRequestReview is not a completable object (`#1528 `_) (`19fc43ab `_) +* Test more attributes (`#1526 `_) (`52ec366b `_) +* Remove pointless setters in GitReleaseAsset (`#1527 `_) (`1dd1cf9c `_) +* Drop some unimplemented methods in GitRef (`#1525 `_) (`d4b61311 `_) +* Remove unneeded duplicate string checks in Branch (`#1524 `_) (`61b61092 `_) +* Turn on coverage reporting for codecov (`#1522 `_) (`e79b9013 `_) +* Drastically increase coverage by checking repr() (`#1521 `_) (`291c4630 `_) * Fixed formatting of docstrings for `Repository.create_git_tag_and_release()` - and `StatsPunchCard`. (#1520) (ce400bc7) -* Remove Repository.topics (#1505) (53d58d2b) -* Small improvements to typing (#1517) (7b20b13d) -* Correct Repository.get_workflows() (#1518) (8727003f) -* docs(repository): correct releases link (#1514) (f7cc534d) -* correct Repository.stargazers_count return type to int (#1513) (b5737d41) -* Fix two RST warnings in Webhook.rst (#1512) (5a8bc203) -* Filter FutureWarning for 2 test cases (#1510) (09a1d9e4) -* Raise a FutureWarning on use of client_{id,secret} (#1506) (2475fa66) -* Improve type signature for create_from_raw_data (#1503) (c7b5eff0) -* feat(column): move, edit and delete project columns (#1497) (a32a8965) -* Add support for Workflows (#1496) (a1ed7c0e) -* Add create_repository_dispatch to typing files (#1502) (ba9d59c2) -* Add OAuth support for GitHub applications (4b437110) -* Create AccessToken entity (4a6468aa) -* Extend installation attributes (61808da1) + and `StatsPunchCard`. (`#1520 `_) (`ce400bc7 `_) +* Remove Repository.topics (`#1505 `_) (`53d58d2b `_) +* Small improvements to typing (`#1517 `_) (`7b20b13d `_) +* Correct Repository.get_workflows() (`#1518 `_) (`8727003f `_) +* docs(repository): correct releases link (`#1514 `_) (`f7cc534d `_) +* correct Repository.stargazers_count return type to int (`#1513 `_) (`b5737d41 `_) +* Fix two RST warnings in Webhook.rst (`#1512 `_) (`5a8bc203 `_) +* Filter FutureWarning for 2 test cases (`#1510 `_) (`09a1d9e4 `_) +* Raise a FutureWarning on use of client_{id,secret} (`#1506 `_) (`2475fa66 `_) +* Improve type signature for create_from_raw_data (`#1503 `_) (`c7b5eff0 `_) +* feat(column): move, edit and delete project columns (`#1497 `_) (`a32a8965 `_) +* Add support for Workflows (`#1496 `_) (`a1ed7c0e `_) +* Add create_repository_dispatch to typing files (`#1502 `_) (`ba9d59c2 `_) +* Add OAuth support for GitHub applications (`4b437110 `_) +* Create AccessToken entity (`4a6468aa `_) +* Extend installation attributes (`61808da1 `_) Version 1.51 (May 03, 2020) ----------------------------------- -* Type stubs are now packaged with the build (#1489) (6eba4506) -* Travis CI is now dropped in favor of Github workflow (#1488) (d6e77ba1) -* Get the project column by id (#1466) (63855409) +* Type stubs are now packaged with the build (`#1489 `_) (`6eba4506 `_) +* Travis CI is now dropped in favor of Github workflow (`#1488 `_) (`d6e77ba1 `_) +* Get the project column by id (`#1466 `_) (`63855409 `_) Version 1.50 (April 26, 2020) ----------------------------------- @@ -739,27 +909,27 @@ Version 1.50 (April 26, 2020) New features ^^^^^^^^^^^^ -* PyGithub now supports type checking thanks to (#1231) (91433fe9) -* Slack is now the main channel of communication rather than Gitter (6a6e7c26) -* Ability to retrieve public events (#1481) (5cf9950b) -* Add and handle the maintainer_can_modify attribute in PullRequest (#1465) (e0997b43) -* List matching references (#1471) (d3bc6a5c) -* Add create_repository_dispatch (#1449) (edcbdfda) -* Add some Organization and Repository attributes. (#1468) (3ab97d61) -* Add create project method (801ea385) +* PyGithub now supports type checking thanks to (`#1231 `_) (`91433fe9 `_) +* Slack is now the main channel of communication rather than Gitter (`6a6e7c26 `_) +* Ability to retrieve public events (`#1481 `_) (`5cf9950b `_) +* Add and handle the maintainer_can_modify attribute in PullRequest (`#1465 `_) (`e0997b43 `_) +* List matching references (`#1471 `_) (`d3bc6a5c `_) +* Add create_repository_dispatch (`#1449 `_) (`edcbdfda `_) +* Add some Organization and Repository attributes. (`#1468 `_) (`3ab97d61 `_) +* Add create project method (`801ea385 `_) Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^ -* Drop use of shadow-cat for draft PRs (#1469) (84bb69ab) -* AuthenticatedUser.get_organization_membership() should be str (#1473) (38b34db5) -* Drop documentation for len() of PaginatedList (#1470) (70462598) -* Fix param name of projectcard's move function (#1451) (bafc4efc) -* Correct typos found with codespell (#1467) (83bef0f7) -* Export IncompletableObject in the github namespace (#1450) (0ebdbb26) -* Add GitHub Action workflow for checks (#1464) (f1401c15) -* Drop unneeded ignore rule for flake8 (#1454) (b4ca9177) -* Use pytest to parametrize tests (#1438) (d2e9bd69) +* Drop use of shadow-cat for draft PRs (`#1469 `_) (`84bb69ab `_) +* AuthenticatedUser.get_organization_membership() should be str (`#1473 `_) (`38b34db5 `_) +* Drop documentation for len() of PaginatedList (`#1470 `_) (`70462598 `_) +* Fix param name of projectcard's move function (`#1451 `_) (`bafc4efc `_) +* Correct typos found with codespell (`#1467 `_) (`83bef0f7 `_) +* Export IncompletableObject in the github namespace (`#1450 `_) (`0ebdbb26 `_) +* Add GitHub Action workflow for checks (`#1464 `_) (`f1401c15 `_) +* Drop unneeded ignore rule for flake8 (`#1454 `_) (`b4ca9177 `_) +* Use pytest to parametrize tests (`#1438 `_) (`d2e9bd69 `_) Version 1.47 (March 15, 2020) ----------------------------------- @@ -767,30 +937,30 @@ Version 1.47 (March 15, 2020) Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^ -* Add support to edit and delete a project (#1434) (f11f7395) -* Add method for fetching pull requests associated with a commit (#1433) (0c55381b) -* Add "get_repo_permission" to Team class (#1416) (219bde53) -* Add list projects support, update tests (#1431) (e44d11d5) -* Don't transform completely in PullRequest.*assignees (#1428) (b1c35499) -* Add create_project support, add tests (#1429) (bf62f752) -* Add draft attribute, update test (bd285248) -* Docstring for Repository.create_git_tag_and_release (#1425) (bfeacded) -* Create a tox docs environment (#1426) (b30c09aa) -* Add Deployments API (#1424) (3d93ee1c) -* Add support for editing project cards (#1418) (425280ce) -* Add draft flag parameter, update tests (bd0211eb) -* Switch to using pytest (#1423) (c822dd1c) -* Fix GitMembership with a hammer (#1420) (f2939eb7) -* Add support to reply to a Pull request comment (#1374) (1c82573d) -* PullRequest.update_branch(): allow expected_head_sha to be empty (#1412) (806130e9) -* Implement ProjectCard.delete() (#1417) (aeb27b78) -* Add pre-commit plugin for black/isort/flake8 (#1398) (08b1c474) -* Add tox (#1388) (125536fe) -* Open file in text mode in scripts/add_attribute.py (#1396) (0396a493) -* Silence most ResourceWarnings (#1393) (dd31a706) -* Assert more attributes in Membership (#1391) (d6dee016) -* Assert on changed Repository attributes (#1390) (6e3ceb19) -* Add reset to the repr for Rate (#1389) (0829af81) +* Add support to edit and delete a project (`#1434 `_) (`f11f7395 `_) +* Add method for fetching pull requests associated with a commit (`#1433 `_) (`0c55381b `_) +* Add "get_repo_permission" to Team class (`#1416 `_) (`219bde53 `_) +* Add list projects support, update tests (`#1431 `_) (`e44d11d5 `_) +* Don't transform completely in PullRequest.*assignees (`#1428 `_) (`b1c35499 `_) +* Add create_project support, add tests (`#1429 `_) (`bf62f752 `_) +* Add draft attribute, update test (`bd285248 `_) +* Docstring for Repository.create_git_tag_and_release (`#1425 `_) (`bfeacded `_) +* Create a tox docs environment (`#1426 `_) (`b30c09aa `_) +* Add Deployments API (`#1424 `_) (`3d93ee1c `_) +* Add support for editing project cards (`#1418 `_) (`425280ce `_) +* Add draft flag parameter, update tests (`bd0211eb `_) +* Switch to using pytest (`#1423 `_) (`c822dd1c `_) +* Fix GitMembership with a hammer (`#1420 `_) (`f2939eb7 `_) +* Add support to reply to a Pull request comment (`#1374 `_) (`1c82573d `_) +* PullRequest.update_branch(): allow expected_head_sha to be empty (`#1412 `_) (`806130e9 `_) +* Implement ProjectCard.delete() (`#1417 `_) (`aeb27b78 `_) +* Add pre-commit plugin for black/isort/flake8 (`#1398 `_) (`08b1c474 `_) +* Add tox (`#1388 `_) (`125536fe `_) +* Open file in text mode in scripts/add_attribute.py (`#1396 `_) (`0396a493 `_) +* Silence most ResourceWarnings (`#1393 `_) (`dd31a706 `_) +* Assert more attributes in Membership (`#1391 `_) (`d6dee016 `_) +* Assert on changed Repository attributes (`#1390 `_) (`6e3ceb19 `_) +* Add reset to the repr for Rate (`#1389 `_) (`0829af81 `_) Version 1.46 (February 11, 2020) ----------------------------------- @@ -802,19 +972,19 @@ Python 2 support has been removed. If you still require Python 2, use 1.45. Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^ -* Add repo edit support for delete_branch_on_merge (#1381) (9564cd4d) -* Fix mistake in Repository.create_fork() (#1383) (ad040baf) -* Correct two attributes in Invitation (#1382) (882fe087) -* Search repo issues by string label (#1379) (4ae1a1e5) -* Correct Repository.create_git_tag_and_release() (#1362) (ead565ad) -* exposed seats and filled_seats for Github Organization Plan (#1360) (06a300ae) -* Repository.create_project() body is optional (#1359) (0e09983d) -* Implement move action for ProjectCard (#1356) (b11add41) -* Tidy up ProjectCard.get_content() (#1355) (dd80a6c0) -* Added nested teams and parent (#1348) (eacabb2f) -* Correct parameter for Label.edit (#1350) (16e5f989) -* doc: example of Pull Request creation (#1344) (d5ad09ae) -* Fix PyPI wheel deployment (#1330) (4561930b) +* Add repo edit support for delete_branch_on_merge (`#1381 `_) (`9564cd4d `_) +* Fix mistake in Repository.create_fork() (`#1383 `_) (`ad040baf `_) +* Correct two attributes in Invitation (`#1382 `_) (`882fe087 `_) +* Search repo issues by string label (`#1379 `_) (`4ae1a1e5 `_) +* Correct Repository.create_git_tag_and_release() (`#1362 `_) (`ead565ad `_) +* exposed seats and filled_seats for Github Organization Plan (`#1360 `_) (`06a300ae `_) +* Repository.create_project() body is optional (`#1359 `_) (`0e09983d `_) +* Implement move action for ProjectCard (`#1356 `_) (`b11add41 `_) +* Tidy up ProjectCard.get_content() (`#1355 `_) (`dd80a6c0 `_) +* Added nested teams and parent (`#1348 `_) (`eacabb2f `_) +* Correct parameter for Label.edit (`#1350 `_) (`16e5f989 `_) +* doc: example of Pull Request creation (`#1344 `_) (`d5ad09ae `_) +* Fix PyPI wheel deployment (`#1330 `_) (`4561930b `_) Version 1.45 (December 29, 2019) ----------------------------------- @@ -836,39 +1006,39 @@ Breaking Changes Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^ -* Allow sha=None for InputGitTreeElement (#1327) (60464f65) -* Support github timeline events. (#1302) (732fd26a) -* Update link to GitHub Enterprise in README (#1324) (e1537f79) -* Cleanup travis config (#1322) (8189a538) -* Add support for update branch (#1317) (baddb719) -* Refactor Logging tests (#1315) (b0ef1909) -* Fix rtd build (b797cac0) -* Add .git-blame-ignore-revs (573c674b) -* Apply black to whole codebase (#1303) (6ceb9e9a) -* Fix class used returning pull request comments (#1307) (f8e33620) -* Support for create_fork (#1306) (2ad51f35) -* Use Repository.get_contents() in tests (#1301) (e40768e0) -* Allow GithubObject.update() to be passed headers (#1300) (989b635e) -* Correct URL for assignees on PRs (#1296) (3170cafc) -* Use inclusive ordered comparison for 'parameterized' requirement (#1281) (fb19d2f2) -* Deprecate Repository.get_dir_contents() (#1285) (21e89ff1) -* Apply some polish to manage.sh (#1284) (3a723252) +* Allow sha=None for InputGitTreeElement (`#1327 `_) (`60464f65 `_) +* Support github timeline events. (`#1302 `_) (`732fd26a `_) +* Update link to GitHub Enterprise in README (`#1324 `_) (`e1537f79 `_) +* Cleanup travis config (`#1322 `_) (`8189a538 `_) +* Add support for update branch (`#1317 `_) (`baddb719 `_) +* Refactor Logging tests (`#1315 `_) (`b0ef1909 `_) +* Fix rtd build (`b797cac0 `_) +* Add .git-blame-ignore-revs (`573c674b `_) +* Apply black to whole codebase (`#1303 `_) (`6ceb9e9a `_) +* Fix class used returning pull request comments (`#1307 `_) (`f8e33620 `_) +* Support for create_fork (`#1306 `_) (`2ad51f35 `_) +* Use Repository.get_contents() in tests (`#1301 `_) (`e40768e0 `_) +* Allow GithubObject.update() to be passed headers (`#1300 `_) (`989b635e `_) +* Correct URL for assignees on PRs (`#1296 `_) (`3170cafc `_) +* Use inclusive ordered comparison for 'parameterized' requirement (`#1281 `_) (`fb19d2f2 `_) +* Deprecate Repository.get_dir_contents() (`#1285 `_) (`21e89ff1 `_) +* Apply some polish to manage.sh (`#1284 `_) (`3a723252 `_) Version 1.44.1 (November 07, 2019) ----------------------------------- -* Add Python 3.8 to classifiers list (#1280) (fec6034a) -* Expand Topic class and add test coverage (#1252) (ac682742) -* Add support for team discussions (#1246) (#1249) (ec3c8d7b) -* Correct API for NamedUser.get_organization_membership (#1277) (077c80ba) -* Correct header check for 2FA required (#1274) (6ad592b1) -* Use replay framework for Issue142 test (#1271) (4d258d93) -* Sync httpretty version requirement with setup.py (#1265) (99d38468) -* Handle unicode strings when recording responses (#1253) (#1254) (faa1bbd6) -* Add assignee removal/addition support to PRs (#1241) (a163ba15) -* Check if the version is empty in manage.sh (#1268) (db294837) -* Encode content for {create,update}_file (#1267) (bc225f9d) -* Update changes.rst (#1263) (d7947d82) +* Add Python 3.8 to classifiers list (`#1280 `_) (`fec6034a `_) +* Expand Topic class and add test coverage (`#1252 `_) (`ac682742 `_) +* Add support for team discussions (`#1246 `_) (#1249) (`ec3c8d7b `_) +* Correct API for NamedUser.get_organization_membership (`#1277 `_) (`077c80ba `_) +* Correct header check for 2FA required (`#1274 `_) (`6ad592b1 `_) +* Use replay framework for Issue142 test (`#1271 `_) (`4d258d93 `_) +* Sync httpretty version requirement with setup.py (`#1265 `_) (`99d38468 `_) +* Handle unicode strings when recording responses (`#1253 `_) (#1254) (`faa1bbd6 `_) +* Add assignee removal/addition support to PRs (`#1241 `_) (`a163ba15 `_) +* Check if the version is empty in manage.sh (`#1268 `_) (`db294837 `_) +* Encode content for {create,update}_file (`#1267 `_) (`bc225f9d `_) +* Update changes.rst (`#1263 `_) (`d7947d82 `_) Version 1.44 (October 19, 2019) ----------------------------------- @@ -882,33 +1052,33 @@ New features Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^ -* Stop ignoring unused imports and remove them (#1250) (a0765083) -* Bump httpretty to be a greater or equal to (#1262) (27092fb0) -* Add close all issues example (#1256) (13e2c7c7) -* Add six to install_requires (#1245) (a840a906) -* Implemented user organization membership. Added test case. (#1237) (e50420f7) -* Create DEPLOY.md (c9ed82b2) -* Support non-default URLs in GithubIntegration (#1229) (e33858a3) -* Cleanup try/except import in PaginatedList (#1228) (89c967bb) -* Add an IncompletableObject exception (#1227) (f91cbac2) -* Fix redundant int checks (#1226) (850da5af) -* Jump from notifications to related PRs/issues. (#1168) (020fbebc) -* Code review bodies are optional in some cases. (#1169) (b84d9b19) -* Update changes.rst (#1223) (2df7269a) -* Do not auto-close issues with high priority tag (ab27ba4d) -* Fix bug in repository create new file example PyGithub#1210 (#1211) (74cd6856) -* Remove more Python version specific code (#1193) (a0f01cf9) -* Drop use of assertEquals (#1194) (7bac694a) -* Fix PR review creation. (#1184) (e90cdab0) -* Add support to vulnerability alert and automated security fixes APIs (#1195) (8abd50e2) -* Delete Legacy submodule (#1192) (7ddb657d) -* Remove some uses of atLeastPython3 (#1191) (cca8e3a5) -* Run flake8 in Travis (#1163) (f93207b4) -* Fix directories for coverage in Travis (#1190) (657f87b5) -* Switch to using six (#1189) (dc2f2ad8) -* Update Repository.update_file() docstring (#1186) (f1ae7200) -* Correct return type of MainClass.get_organizations (#1179) (6e79d270) -* Add cryptography to test-requirements.txt (#1165) (9b1c1e09) +* Stop ignoring unused imports and remove them (`#1250 `_) (`a0765083 `_) +* Bump httpretty to be a greater or equal to (`#1262 `_) (`27092fb0 `_) +* Add close all issues example (`#1256 `_) (`13e2c7c7 `_) +* Add six to install_requires (`#1245 `_) (`a840a906 `_) +* Implemented user organization membership. Added test case. (`#1237 `_) (`e50420f7 `_) +* Create DEPLOY.md (`c9ed82b2 `_) +* Support non-default URLs in GithubIntegration (`#1229 `_) (`e33858a3 `_) +* Cleanup try/except import in PaginatedList (`#1228 `_) (`89c967bb `_) +* Add an IncompletableObject exception (`#1227 `_) (`f91cbac2 `_) +* Fix redundant int checks (`#1226 `_) (`850da5af `_) +* Jump from notifications to related PRs/issues. (`#1168 `_) (`020fbebc `_) +* Code review bodies are optional in some cases. (`#1169 `_) (`b84d9b19 `_) +* Update changes.rst (`#1223 `_) (`2df7269a `_) +* Do not auto-close issues with high priority tag (`ab27ba4d `_) +* Fix bug in repository create new file example PyGithub#1210 (`#1211 `_) (`74cd6856 `_) +* Remove more Python version specific code (`#1193 `_) (`a0f01cf9 `_) +* Drop use of assertEquals (`#1194 `_) (`7bac694a `_) +* Fix PR review creation. (`#1184 `_) (`e90cdab0 `_) +* Add support to vulnerability alert and automated security fixes APIs (`#1195 `_) (`8abd50e2 `_) +* Delete Legacy submodule (`#1192 `_) (`7ddb657d `_) +* Remove some uses of atLeastPython3 (`#1191 `_) (`cca8e3a5 `_) +* Run flake8 in Travis (`#1163 `_) (`f93207b4 `_) +* Fix directories for coverage in Travis (`#1190 `_) (`657f87b5 `_) +* Switch to using six (`#1189 `_) (`dc2f2ad8 `_) +* Update Repository.update_file() docstring (`#1186 `_) (`f1ae7200 `_) +* Correct return type of MainClass.get_organizations (`#1179 `_) (`6e79d270 `_) +* Add cryptography to test-requirements.txt (`#1165 `_) (`9b1c1e09 `_) Version 1.43.8 (July 20, 2019) ----------------------------------- @@ -916,25 +1086,25 @@ Version 1.43.8 (July 20, 2019) New features ^^^^^^^^^^^^ -* Add two factor attributes on organizations (#1132) (a0731685) -* Add Repository methods for pending invitations (#1159) (57af1e05) -* Adds `get_issue_events` to `PullRequest` object (#1154) (acd515aa) -* Add invitee and inviter to Invitation (#1156) (0f2beaca) -* Adding support for pending team invitations (#993) (edab176b) -* Add support for custom base_url in GithubIntegration class (#1093) (6cd0d644) -* GithubIntegration: enable getting installation (#1135) (18187045) -* Add sorting capability to Organization.get_repos() (#1139) (ef6f009d) -* Add new Organization.get_team_by_slug method (#1144) (4349bca1) -* Add description field when creating a new team (#1125) (4a37860b) -* Handle a path of / in Repository.get_contents() (#1070) (102c8208) -* Add issue lock/unlock (#1107) (ec7bbcf5) +* Add two factor attributes on organizations (`#1132 `_) (`a0731685 `_) +* Add Repository methods for pending invitations (`#1159 `_) (`57af1e05 `_) +* Adds `get_issue_events` to `PullRequest` object (`#1154 `_) (`acd515aa `_) +* Add invitee and inviter to Invitation (`#1156 `_) (`0f2beaca `_) +* Adding support for pending team invitations (`#993 `_) (`edab176b `_) +* Add support for custom base_url in GithubIntegration class (`#1093 `_) (`6cd0d644 `_) +* GithubIntegration: enable getting installation (`#1135 `_) (`18187045 `_) +* Add sorting capability to Organization.get_repos() (`#1139 `_) (`ef6f009d `_) +* Add new Organization.get_team_by_slug method (`#1144 `_) (`4349bca1 `_) +* Add description field when creating a new team (`#1125 `_) (`4a37860b `_) +* Handle a path of / in Repository.get_contents() (`#1070 `_) (`102c8208 `_) +* Add issue lock/unlock (`#1107 `_) (`ec7bbcf5 `_) Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^ -* Fix bug in recursive repository contents example (#1166) (8b6b4505) -* Allow name to be specified for upload_asset (#1151) (8d2a6b53) -* Fixes #1106 for GitHub Enterprise API (#1110) (54065792) +* Fix bug in recursive repository contents example (`#1166 `_) (`8b6b4505 `_) +* Allow name to be specified for upload_asset (`#1151 `_) (`8d2a6b53 `_) +* Fixes #1106 for GitHub Enterprise API (`#1110 `_) (`54065792 `_) Deprecation ^^^^^^^^^^^ @@ -944,8 +1114,8 @@ Deprecation Version 1.43.7 (April 16, 2019) ----------------------------------- -* Exclude tests from PyPI distribution (#1031) (78d283b9) -* Add codecov badge (#1090) (4c0b54c0) +* Exclude tests from PyPI distribution (`#1031 `_) (`78d283b9 `_) +* Add codecov badge (`#1090 `_) (`4c0b54c0 `_) Version 1.43.6 (April 05, 2019) ----------------------------------- @@ -953,31 +1123,31 @@ Version 1.43.6 (April 05, 2019) New features ^^^^^^^^^^^^ -* Add support for Python 3.7 (#1028) (6faa00ac) -* Adding HTTP retry functionality via urllib3 (#1002) (5ae7af55) -* Add new dismiss() method on PullRequestReview (#1053) (8ef71b1b) -* Add since and before to `get_notifications` (#1074) (7ee6c417) -* Add url parameter to include anonymous contributors in `get_contributors` (#1075) (293846be) -* Provide option to extend expiration of jwt token (#1068) (86a9d8e9) +* Add support for Python 3.7 (`#1028 `_) (`6faa00ac `_) +* Adding HTTP retry functionality via urllib3 (`#1002 `_) (`5ae7af55 `_) +* Add new dismiss() method on PullRequestReview (`#1053 `_) (`8ef71b1b `_) +* Add since and before to `get_notifications` (`#1074 `_) (`7ee6c417 `_) +* Add url parameter to include anonymous contributors in `get_contributors` (`#1075 `_) (`293846be `_) +* Provide option to extend expiration of jwt token (`#1068 `_) (`86a9d8e9 `_) Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^ -* Fix the default parameter for `PullRequest.create_review` (#1058) (118def30) -* Fix `get_access_token` (#1042) (6a89eb64) -* Fix `Organization.add_to_members` role passing (#1039) (480f91cf) +* Fix the default parameter for `PullRequest.create_review` (`#1058 `_) (`118def30 `_) +* Fix `get_access_token` (`#1042 `_) (`6a89eb64 `_) +* Fix `Organization.add_to_members` role passing (`#1039 `_) (`480f91cf `_) Deprecation ^^^^^^^^^^^ -* Remove Status API (6efd6318) +* Remove Status API (`6efd6318 `_) Version 1.43.5 (January 29, 2019) ----------------------------------- -* Add project column create card (#1003) (5f5c2764) -* Fix request got an unexpected keyword argument body (#1012) (ff789dcc) -* Add missing import to PullRequest (#1007) (b5122768) +* Add project column create card (`#1003 `_) (`5f5c2764 `_) +* Fix request got an unexpected keyword argument body (`#1012 `_) (`ff789dcc `_) +* Add missing import to PullRequest (`#1007 `_) (`b5122768 `_) Version 1.43.4 (December 21, 2018) ----------------------------------- @@ -985,15 +1155,15 @@ Version 1.43.4 (December 21, 2018) New features ^^^^^^^^^^^^ -* Add Migration API (#899) (b4d895ed) -* Add Traffic API (#977) (a433a2fe) -* New in Project API: create repository project, create project column (#995) (1c0fd97d) +* Add Migration API (`#899 `_) (`b4d895ed `_) +* Add Traffic API (`#977 `_) (`a433a2fe `_) +* New in Project API: create repository project, create project column (`#995 `_) (`1c0fd97d `_) Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^ -* Change type of GitRelease.author to NamedUser (#969) (aca50a75) -* Use total_count from data in PaginatedList (#963) (ec177610) +* Change type of GitRelease.author to NamedUser (`#969 `_) (`aca50a75 `_) +* Use total_count from data in PaginatedList (`#963 `_) (`ec177610 `_) Version 1.43.3 (October 31, 2018) ----------------------------------- @@ -1001,38 +1171,38 @@ Version 1.43.3 (October 31, 2018) New features ^^^^^^^^^^^^ -* Add support for JWT authentication (#948) (8ccf9a94) -* Added support for required signatures on protected branches (#939) (8ee75a28) -* Ability to filter repository collaborators (#938) (5687226b) -* Mark notification as read (#932) (0a10d7cd) -* Add highlight search to ``search_code`` function (#925) (1fa25670) -* Adding ``suspended_at`` property to NamedUSer (#922) (c13b43ea) -* Add since parameter for Gists (#914) (e18b1078) +* Add support for JWT authentication (`#948 `_) (`8ccf9a94 `_) +* Added support for required signatures on protected branches (`#939 `_) (`8ee75a28 `_) +* Ability to filter repository collaborators (`#938 `_) (`5687226b `_) +* Mark notification as read (`#932 `_) (`0a10d7cd `_) +* Add highlight search to ``search_code`` function (`#925 `_) (`1fa25670 `_) +* Adding ``suspended_at`` property to NamedUSer (`#922 `_) (`c13b43ea `_) +* Add since parameter for Gists (`#914 `_) (`e18b1078 `_) Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^ -* Fix missing parameters when reversing ``PaginatedList`` (#946) (60a684c5) -* Fix unable to trigger ``RateLimitExceededException``. (#943) (972446d5) -* Fix inconsistent behavior of trailing slash usage in file path (#931) (ee9f098d) -* Fix handling of 301 redirects (#916) (6833245d) -* Fix missing attributes of ``get_repos`` for authenticated users (#915) (c411196f) -* Fix ``Repository.edit`` (#904) (7286eec0) -* Improve ``__repr__`` method of Milestone class (#921) (562908cb) -* Fix rate limit documentation change (#902) (974d1ec5) -* Fix comments not posted in create_review() (#909) (a18eeb3a) +* Fix missing parameters when reversing ``PaginatedList`` (`#946 `_) (`60a684c5 `_) +* Fix unable to trigger ``RateLimitExceededException``. (`#943 `_) (`972446d5 `_) +* Fix inconsistent behavior of trailing slash usage in file path (`#931 `_) (`ee9f098d `_) +* Fix handling of 301 redirects (`#916 `_) (`6833245d `_) +* Fix missing attributes of ``get_repos`` for authenticated users (`#915 `_) (`c411196f `_) +* Fix ``Repository.edit`` (`#904 `_) (`7286eec0 `_) +* Improve ``__repr__`` method of Milestone class (`#921 `_) (`562908cb `_) +* Fix rate limit documentation change (`#902 `_) (`974d1ec5 `_) +* Fix comments not posted in create_review() (`#909 `_) (`a18eeb3a `_) Version 1.43.2 (September 12, 2018) ----------------------------------- -* Restore ``RateLimit.rate`` attribute, raise deprecation warning instead (d92389be) +* Restore ``RateLimit.rate`` attribute, raise deprecation warning instead (`d92389be `_) Version 1.43.1 (September 11, 2018) ----------------------------------- New feature: -* Add support for Projects (#854) (faca4ce1) +* Add support for Projects (`#854 `_) (`faca4ce1 `_) Version 1.43 (September 08, 2018) ----------------------------------- @@ -1041,22 +1211,22 @@ Version 1.43 (September 08, 2018) Bug Fixes ^^^^^^^^^ -* ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5) -* Fixed ``Gistfile.content`` (#486) (e1df09f7) -* Restored NamedUser.contributions attribute (#865) (b91dee8d) +* ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (`#858 `_) (`43d325a5 `_) +* Fixed ``Gistfile.content`` (`#486 `_) (`e1df09f7 `_) +* Restored NamedUser.contributions attribute (`#865 `_) (`b91dee8d `_) New features ^^^^^^^^^^^^ -* Add support for repository topics (#832) (c6802b51) -* Add support for required approving review count (#888) (ef16702) +* Add support for repository topics (`#832 `_) (`c6802b51 `_) +* Add support for required approving review count (`#888 `_) (ef16702) * Add ``Organization.invite_user`` (880)(eb80564) * Add support for search/graphql rate limit (fd8a036) + Deprecated ``RateLimit.rate`` + Add `RateLimit.core `__, `RateLimit.search `__ and `RateLimit.graphql `__ -* Add Support search by topics (#893) (3ce0418) -* Branch Protection API overhaul (#790) (171cc567) +* Add Support search by topics (`#893 `_) (3ce0418) +* Branch Protection API overhaul (`#790 `_) (`171cc567 `_) + (**breaking**) Removed Repository.protect_branch + Add `BranchProtection `__ @@ -1067,19 +1237,19 @@ New features Improvements ^^^^^^^^^^^^ -* Add missing arguments to ``Repository.edit`` (#844) (29d23151) -* Add missing attributes to Repository (#842) (2b352fb3) -* Adding archival support for ``Repository.edit`` (#843) (1a90f5db) -* Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (#834) (790f7dae) -* Allow editing of Team descriptions (#839) (c0021747) -* Add description to Organizations (#838) (1d918809) -* Add missing attributes for IssueEvent (#857) (7ac2a2a) -* Change ``MainClass.get_repo`` default laziness (#882) (6732517) +* Add missing arguments to ``Repository.edit`` (`#844 `_) (`29d23151 `_) +* Add missing attributes to Repository (`#842 `_) (`2b352fb3 `_) +* Adding archival support for ``Repository.edit`` (`#843 `_) (`1a90f5db `_) +* Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (`#834 `_) (`790f7dae `_) +* Allow editing of Team descriptions (`#839 `_) (`c0021747 `_) +* Add description to Organizations (`#838 `_) (`1d918809 `_) +* Add missing attributes for IssueEvent (`#857 `_) (7ac2a2a) +* Change ``MainClass.get_repo`` default laziness (`#882 `_) (6732517) Deprecation ^^^^^^^^^^^ -* Removed Repository.get_protected_branch (#871) (49db6f8) +* Removed Repository.get_protected_branch (`#871 `_) (49db6f8) Version 1.42 (August 19, 2018) @@ -1090,14 +1260,14 @@ Version 1.42 (August 19, 2018) Bug Fixes ^^^^^^^^^ -* ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5) -* Fixed ``Gistfile.content`` (#486) (e1df09f7) -* Restored NamedUser.contributions attribute (#865) (b91dee8d) +* ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (`#858 `_) (`43d325a5 `_) +* Fixed ``Gistfile.content`` (`#486 `_) (`e1df09f7 `_) +* Restored NamedUser.contributions attribute (`#865 `_) (`b91dee8d `_) New features -* Add support for repository topics (#832) (c6802b51) -* Branch Protection API overhaul (#790) (171cc567) +* Add support for repository topics (`#832 `_) (`c6802b51 `_) +* Branch Protection API overhaul (`#790 `_) (`171cc567 `_) + (**breaking**) Removed Repository.protect_branch + Add `BranchProtection `__ @@ -1107,12 +1277,12 @@ New features Improvements -* Add missing arguments to ``Repository.edit`` (#844) (29d23151) -* Add missing properties to Repository (#842) (2b352fb3) -* Adding archival support for ``Repository.edit`` (#843) (1a90f5db) -* Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (#834) (790f7dae) -* Allow editing of Team descriptions (#839) (c0021747) -* Add description to Organizations (#838) (1d918809) +* Add missing arguments to ``Repository.edit`` (`#844 `_) (`29d23151 `_) +* Add missing properties to Repository (`#842 `_) (`2b352fb3 `_) +* Adding archival support for ``Repository.edit`` (`#843 `_) (`1a90f5db `_) +* Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (`#834 `_) (`790f7dae `_) +* Allow editing of Team descriptions (`#839 `_) (`c0021747 `_) +* Add description to Organizations (`#838 `_) (`1d918809 `_) Version 1.41 (August 19, 2018) ----------------------------------- @@ -1120,14 +1290,14 @@ Version 1.41 (August 19, 2018) Bug Fixes ^^^^^^^^^ -* ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5) -* Fixed ``Gistfile.content`` (#486) (e1df09f7) -* Restored NamedUser.contributions attribute (#865) (b91dee8d) +* ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (`#858 `_) (`43d325a5 `_) +* Fixed ``Gistfile.content`` (`#486 `_) (`e1df09f7 `_) +* Restored NamedUser.contributions attribute (`#865 `_) (`b91dee8d `_) New features -* Add support for repository topics (#832) (c6802b51) -* Branch Protection API overhaul (#790) (171cc567) +* Add support for repository topics (`#832 `_) (`c6802b51 `_) +* Branch Protection API overhaul (`#790 `_) (`171cc567 `_) + (**breaking**) Removed Repository.protect_branch + Add `BranchProtection `__ @@ -1137,119 +1307,119 @@ New features Improvements -* Add missing arguments to ``Repository.edit`` (#844) (29d23151) -* Add missing properties to Repository (#842) (2b352fb3) -* Adding archival support for ``Repository.edit`` (#843) (1a90f5db) -* Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (#834) (790f7dae) -* Allow editing of Team descriptions (#839) (c0021747) -* Add description to Organizations (#838) (1d918809) +* Add missing arguments to ``Repository.edit`` (`#844 `_) (`29d23151 `_) +* Add missing properties to Repository (`#842 `_) (`2b352fb3 `_) +* Adding archival support for ``Repository.edit`` (`#843 `_) (`1a90f5db `_) +* Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (`#834 `_) (`790f7dae `_) +* Allow editing of Team descriptions (`#839 `_) (`c0021747 `_) +* Add description to Organizations (`#838 `_) (`1d918809 `_) Version 1.40 (June 26, 2018) ----------------------------------- -* Major enhancement: use requests for HTTP instead of httplib (#664) (9aed19dd) -* Test Framework improvement (#795) (faa8f205) -* Handle HTTP 202 HEAD & GET with a retry (#791) (3aead158) -* Fix github API requests after asset upload (#771) (8bdac23c) -* Add remove_membership() method to Teams class (#807) (817f2230) -* Add check-in to projects using PyGithub (#814) (05f49a59) -* Include target_commitish in GitRelease (#788) (ba5bf2d7) -* Fix asset upload timeout, increase default timeout from 10s to 15s (#793) (140c6480) -* Fix Team.description (#797) (0e8ae376) -* Fix Content-Length invalid headers exception (#787) (23395f5f) -* Remove NamedUser.contributions (#774) (a519e467) -* Add ability to skip SSL cert verification for Github Enterprise (#758) (85a9124b) -* Correct Repository.get_git_tree recursive use (#767) (bd0cf309) -* Re-work PullRequest reviewer request (#765) (e2e29918) -* Add support for team privacy (#763) (1f23c06a) -* Add support for organization outside collaborators (#533) (c4446996) -* PullRequest labels should use Issues URL (#754) (678b6b20) -* Support labels for PullRequests (#752) (a308dc92) -* Add get_organizations() (#748) (1e0150b5) +* Major enhancement: use requests for HTTP instead of httplib (`#664 `_) (`9aed19dd `_) +* Test Framework improvement (`#795 `_) (`faa8f205 `_) +* Handle HTTP 202 HEAD & GET with a retry (`#791 `_) (`3aead158 `_) +* Fix github API requests after asset upload (`#771 `_) (`8bdac23c `_) +* Add remove_membership() method to Teams class (`#807 `_) (`817f2230 `_) +* Add check-in to projects using PyGithub (`#814 `_) (`05f49a59 `_) +* Include target_commitish in GitRelease (`#788 `_) (`ba5bf2d7 `_) +* Fix asset upload timeout, increase default timeout from 10s to 15s (`#793 `_) (`140c6480 `_) +* Fix Team.description (`#797 `_) (`0e8ae376 `_) +* Fix Content-Length invalid headers exception (`#787 `_) (`23395f5f `_) +* Remove NamedUser.contributions (`#774 `_) (`a519e467 `_) +* Add ability to skip SSL cert verification for Github Enterprise (`#758 `_) (`85a9124b `_) +* Correct Repository.get_git_tree recursive use (`#767 `_) (`bd0cf309 `_) +* Re-work PullRequest reviewer request (`#765 `_) (`e2e29918 `_) +* Add support for team privacy (`#763 `_) (`1f23c06a `_) +* Add support for organization outside collaborators (`#533 `_) (`c4446996 `_) +* PullRequest labels should use Issues URL (`#754 `_) (`678b6b20 `_) +* Support labels for PullRequests (`#752 `_) (`a308dc92 `_) +* Add get_organizations() (`#748 `_) (`1e0150b5 `_) Version 1.39 (April 10, 2018) ----------------------------------- -* Add documentation to github.Repository.Repository.create_git_release() (#747) (a769c2ff) -* Add add_to_members() and remove_from_membership() (#741) (4da483d1) -* Documentation: clarify semantics of get_comments (#743) (fec3c943) -* Add download_url to ContentFile, closes #575 (ca6fbc45) -* Add PullRequestComment.in_reply_to_id (#718) (eaa6a508) -* Add team privacy parameter to create team (#702) (5cb5ab71) -* Implement License API (#734) (b54ccc78) -* Fix delete method for RepositoryKey (911bf615) -* Remove edit for UserKey (722f2534) -* Labels API: support description (#738) (42e75938) -* Added Issue.as_pull_request() and PullReqest.as_issue() (#630) (6bf2acc7) -* Documentation: sort the Github Objects (#735) (1497e826) -* Add support for getting PR single review's comments. (#670) (612c3500) -* Update the RepositoryKey class (#530) (5e8c6832) -* Added since to PR review comments get (#577) (d8508285) -* Remove some duplicate attributes introduced in #522 (566b28d3) -* Added tarball_url, zipball_url, prerelease and draft property (#522) (c76e67b7) -* Source Import API (#673) (864c663a) +* Add documentation to github.Repository.Repository.create_git_release() (`#747 `_) (`a769c2ff `_) +* Add add_to_members() and remove_from_membership() (`#741 `_) (`4da483d1 `_) +* Documentation: clarify semantics of get_comments (`#743 `_) (`fec3c943 `_) +* Add download_url to ContentFile, closes #575 (`ca6fbc45 `_) +* Add PullRequestComment.in_reply_to_id (`#718 `_) (`eaa6a508 `_) +* Add team privacy parameter to create team (`#702 `_) (`5cb5ab71 `_) +* Implement License API (`#734 `_) (`b54ccc78 `_) +* Fix delete method for RepositoryKey (`911bf615 `_) +* Remove edit for UserKey (`722f2534 `_) +* Labels API: support description (`#738 `_) (`42e75938 `_) +* Added Issue.as_pull_request() and PullReqest.as_issue() (`#630 `_) (`6bf2acc7 `_) +* Documentation: sort the Github Objects (`#735 `_) (`1497e826 `_) +* Add support for getting PR single review's comments. (`#670 `_) (`612c3500 `_) +* Update the RepositoryKey class (`#530 `_) (`5e8c6832 `_) +* Added since to PR review comments get (`#577 `_) (`d8508285 `_) +* Remove some duplicate attributes introduced in #522 (`566b28d3 `_) +* Added tarball_url, zipball_url, prerelease and draft property (`#522 `_) (`c76e67b7 `_) +* Source Import API (`#673 `_) (`864c663a `_) Version 1.38 (March 21, 2018) ----------------------------------- * Updated readthedocs, PyPI to reflect latest version -* Added option to create review for Pull request (#662) (162f0397) -* Depreciate legacy search API (3cd176e3) -* Filter team members by role (#491) (10ee17a2) -* Add url attribute to PullRequestReview object (#731) (0fb176fd) -* Added target_commitish option to Repository.create_git_release() (#625) (0f0a7d4e) -* Fix broken Github reference link in class docstrings (a32a17bf) -* Add hook support for organizations (#729) (c7f6563c) -* Get organization from the team (#590) (d9c5a07f) -* Added search_commits (#727) (aa556f85) -* Collaborator site admin (#719) (f8b23505) -* Fix add_to_watched for AuthenticatedUser (#716) (6109eb3c) +* Added option to create review for Pull request (`#662 `_) (`162f0397 `_) +* Depreciate legacy search API (`3cd176e3 `_) +* Filter team members by role (`#491 `_) (`10ee17a2 `_) +* Add url attribute to PullRequestReview object (`#731 `_) (`0fb176fd `_) +* Added target_commitish option to Repository.create_git_release() (`#625 `_) (`0f0a7d4e `_) +* Fix broken Github reference link in class docstrings (`a32a17bf `_) +* Add hook support for organizations (`#729 `_) (`c7f6563c `_) +* Get organization from the team (`#590 `_) (`d9c5a07f `_) +* Added search_commits (`#727 `_) (`aa556f85 `_) +* Collaborator site admin (`#719 `_) (`f8b23505 `_) +* Fix add_to_watched for AuthenticatedUser (`#716 `_) (`6109eb3c `_) Version 1.37 (March 03, 2018) ----------------------------------- -* Add __eq__ and __hash__ to NamedUser (#706) (8a13b274) -* Add maintainer can modify flag to create pull request (#703) (0e5a1d1d) -* Fix typo in Design.md (#701) (98d32af4) -* Add role parameter to Team.add_membership method (#638) (01ab4cc6) -* Add add_membership testcase (#637) (5a1424bb) +* Add __eq__ and __hash__ to NamedUser (`#706 `_) (`8a13b274 `_) +* Add maintainer can modify flag to create pull request (`#703 `_) (`0e5a1d1d `_) +* Fix typo in Design.md (`#701 `_) (`98d32af4 `_) +* Add role parameter to Team.add_membership method (`#638 `_) (`01ab4cc6 `_) +* Add add_membership testcase (`#637 `_) (`5a1424bb `_) Version 1.36 (February 02, 2018) ----------------------------------- -* Fix changelog generation (5d911e22) -* Add collaborator permission support (#699) (167f85ef) -* Use datetime object in create_milestone (#698) (cef98416) -* Fix date format for milestone creation (#593) (e671fdd0) -* Remove the default "null" input send during GET request (#691) (cbfe8d0f) -* Updated PullRequest reviewer request according to API changes (#690) (5c9c2f75) -* make created_at/published_at attrs available for Release objects (#689) (2f9b1e01) -* Add committer/author to Repository.delete_file (#678) (3baa682c) -* Add method to get latest release of a repository (#609) (45d18436) -* Add permissions field to NamedUser (#676) (6cfe46b7) -* Fix all pep8 coding conventions (6bc804dc) -* Add new params for /users/:user/repos endpoint (89834a9b) -* Add support for changing PR head commit (#632) (3f77e537) -* Use print() syntax in README (#681) (c5988c39) -* Add PyPI badge and installation instructions to README (#682) (3726f686) -* Drop support for EOL Python 2.5-2.6 and 3.2-3.3 (#674) (6735be49) -* Add Reactions feature (#671) (ba50af53) -* Add ping_url and ping to Hook (#669) (6169d8ea) -* Add Repository.archived property (#657) (35333e03) -* Add unit test for tree attribute of GitCommit (#668) (e5bfdbeb) -* Add read_only attribute to Deploy Keys (#570) (dbc6f5ab) -* Doc create instance from token (#667) (c33a3883) -* Fix uploading binary files on Python 3 (#621) (317079ef) -* Decode jwt bytes object in Python 3 (#633) (84b43da7) -* Remove broken downloads badge (#644) (15cdc2f8) -* Added missing parameters for repo creation (#623) (5c41120a) -* Add ability to access github Release Asset API. (#525) (52449649) -* Add 'submitted at' to PullRequestReview (#565) (ebe7277a) -* Quote path for /contents API (#614) (554c1ab1) -* Add Python 3.6 (2533bed9) -* Add Python 3.6 (e78f0ece) -* Updated references in introduction.rst (d2c72bb3) -* fix failing tests on py26 (291f6dde) -* Import missing exception (67b078e9) +* Fix changelog generation (`5d911e22 `_) +* Add collaborator permission support (`#699 `_) (`167f85ef `_) +* Use datetime object in create_milestone (`#698 `_) (`cef98416 `_) +* Fix date format for milestone creation (`#593 `_) (`e671fdd0 `_) +* Remove the default "null" input send during GET request (`#691 `_) (`cbfe8d0f `_) +* Updated PullRequest reviewer request according to API changes (`#690 `_) (`5c9c2f75 `_) +* make created_at/published_at attrs available for Release objects (`#689 `_) (`2f9b1e01 `_) +* Add committer/author to Repository.delete_file (`#678 `_) (`3baa682c `_) +* Add method to get latest release of a repository (`#609 `_) (`45d18436 `_) +* Add permissions field to NamedUser (`#676 `_) (`6cfe46b7 `_) +* Fix all pep8 coding conventions (`6bc804dc `_) +* Add new params for /users/:user/repos endpoint (`89834a9b `_) +* Add support for changing PR head commit (`#632 `_) (`3f77e537 `_) +* Use print() syntax in README (`#681 `_) (`c5988c39 `_) +* Add PyPI badge and installation instructions to README (`#682 `_) (`3726f686 `_) +* Drop support for EOL Python 2.5-2.6 and 3.2-3.3 (`#674 `_) (`6735be49 `_) +* Add Reactions feature (`#671 `_) (`ba50af53 `_) +* Add ping_url and ping to Hook (`#669 `_) (`6169d8ea `_) +* Add Repository.archived property (`#657 `_) (`35333e03 `_) +* Add unit test for tree attribute of GitCommit (`#668 `_) (`e5bfdbeb `_) +* Add read_only attribute to Deploy Keys (`#570 `_) (`dbc6f5ab `_) +* Doc create instance from token (`#667 `_) (`c33a3883 `_) +* Fix uploading binary files on Python 3 (`#621 `_) (`317079ef `_) +* Decode jwt bytes object in Python 3 (`#633 `_) (`84b43da7 `_) +* Remove broken downloads badge (`#644 `_) (`15cdc2f8 `_) +* Added missing parameters for repo creation (`#623 `_) (`5c41120a `_) +* Add ability to access github Release Asset API. (`#525 `_) (`52449649 `_) +* Add 'submitted at' to PullRequestReview (`#565 `_) (`ebe7277a `_) +* Quote path for /contents API (`#614 `_) (`554c1ab1 `_) +* Add Python 3.6 (`2533bed9 `_) +* Add Python 3.6 (`e78f0ece `_) +* Updated references in introduction.rst (`d2c72bb3 `_) +* fix failing tests on py26 (`291f6dde `_) +* Import missing exception (`67b078e9 `_) Version 1.35 (July 10, 2017) ----------------------------------- @@ -1264,7 +1434,7 @@ Version 1.34 (abril 04, 2017) Version 1.32 (February 1, 2017) ----------------------------------- -* Support for Integrations installation endpoint (656e70e1) +* Support for Integrations installation endpoint (`656e70e1 `_) Version 1.31 (January 30, 2017) ----------------------------------- @@ -1322,10 +1492,10 @@ Version 1.27.1 (August 12, 2016) * adds missing testfile corrections (9134aa2) * fixed file API return values (0f29a53) * assert by str and unicode to make it more py3 friendly (7390827) -* Patch issue 358 status context (#428) (70e30c5) -* Adding "since" param to Issue.get_comments() (#426) (3c6f99f) -* update doc url everywhere (#420) (cb0cf0a) -* fix a couple typos to be clearer (#419) (23c0e75) +* Patch issue 358 status context (`#428 `_) (70e30c5) +* Adding "since" param to Issue.get_comments() (`#426 `_) (3c6f99f) +* update doc url everywhere (`#420 `_) (cb0cf0a) +* fix a couple typos to be clearer (`#419 `_) (23c0e75) * Document how one gets an AuthenticatedUser object (ba66862) * fix wrong expectance on requestJsonAndCheck() returning {} if no data (8985368) * Add previous_filename property to File (e1be1e6) diff --git a/github/AccessToken.py b/github/AccessToken.py index a7c21805a4..a127d77059 100644 --- a/github/AccessToken.py +++ b/github/AccessToken.py @@ -18,6 +18,7 @@ # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2023 Trim21 # # Copyright 2023 chantra # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -53,12 +54,12 @@ class AccessToken(NonCompletableGithubObject): _created: datetime def _initAttributes(self) -> None: - self._token: Attribute[str] = NotSet - self._type: Attribute[str] = NotSet - self._scope: Attribute[str] = NotSet self._expires_in: Attribute[int | None] = NotSet - self._refresh_token: Attribute[str] = NotSet self._refresh_expires_in: Attribute[int | None] = NotSet + self._refresh_token: Attribute[str] = NotSet + self._scope: Attribute[str] = NotSet + self._token: Attribute[str] = NotSet + self._type: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__( @@ -73,32 +74,21 @@ def __repr__(self) -> str: ) @property - def token(self) -> str: - """ - :type: string - """ - return self._token.value - - @property - def type(self) -> str: - """ - :type: string - """ - return self._type.value - - @property - def scope(self) -> str: + def created(self) -> datetime: """ - :type: string + :type: datetime """ - return self._scope.value + return self._created @property - def created(self) -> datetime: + def expires_at(self) -> datetime | None: """ - :type: datetime + :type: Optional[datetime] """ - return self._created + seconds = self.expires_in + if seconds is not None: + return self._created + timedelta(seconds=seconds) + return None @property def expires_in(self) -> int | None: @@ -108,15 +98,22 @@ def expires_in(self) -> int | None: return self._expires_in.value @property - def expires_at(self) -> datetime | None: + def refresh_expires_at(self) -> datetime | None: """ :type: Optional[datetime] """ - seconds = self.expires_in + seconds = self.refresh_expires_in if seconds is not None: return self._created + timedelta(seconds=seconds) return None + @property + def refresh_expires_in(self) -> int | None: + """ + :type: Optional[int] + """ + return self._refresh_expires_in.value + @property def refresh_token(self) -> str | None: """ @@ -125,33 +122,37 @@ def refresh_token(self) -> str | None: return self._refresh_token.value @property - def refresh_expires_in(self) -> int | None: + def scope(self) -> str: """ - :type: Optional[int] + :type: string """ - return self._refresh_expires_in.value + return self._scope.value @property - def refresh_expires_at(self) -> datetime | None: + def token(self) -> str: """ - :type: Optional[datetime] + :type: string """ - seconds = self.refresh_expires_in - if seconds is not None: - return self._created + timedelta(seconds=seconds) - return None + return self._token.value + + @property + def type(self) -> str: + """ + :type: string + """ + return self._type.value def _useAttributes(self, attributes: dict[str, Any]) -> None: self._created = datetime.now(timezone.utc) if "access_token" in attributes: # pragma no branch self._token = self._makeStringAttribute(attributes["access_token"]) - if "token_type" in attributes: # pragma no branch - self._type = self._makeStringAttribute(attributes["token_type"]) - if "scope" in attributes: # pragma no branch - self._scope = self._makeStringAttribute(attributes["scope"]) if "expires_in" in attributes: # pragma no branch self._expires_in = self._makeIntAttribute(attributes["expires_in"]) if "refresh_token" in attributes: # pragma no branch self._refresh_token = self._makeStringAttribute(attributes["refresh_token"]) if "refresh_token_expires_in" in attributes: # pragma no branch self._refresh_expires_in = self._makeIntAttribute(attributes["refresh_token_expires_in"]) + if "scope" in attributes: # pragma no branch + self._scope = self._makeStringAttribute(attributes["scope"]) + if "token_type" in attributes: # pragma no branch + self._type = self._makeStringAttribute(attributes["token_type"]) diff --git a/github/AdvisoryBase.py b/github/AdvisoryBase.py index 4994cea736..b9008cf0ea 100644 --- a/github/AdvisoryBase.py +++ b/github/AdvisoryBase.py @@ -4,6 +4,7 @@ # Copyright 2023 Joseph Henrich # # Copyright 2024 Enrico Minack # # Copyright 2024 Thomas Cooper # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -35,7 +36,7 @@ class AdvisoryBase(NonCompletableGithubObject): """ - This class represents a the shared attributes between GlobalAdvisory, RepositoryAdvisory and DependabotAdvisory + This class represents the shared attributes between GlobalAdvisory, RepositoryAdvisory and DependabotAdvisory https://docs.github.com/en/rest/security-advisories/global-advisories https://docs.github.com/en/rest/security-advisories/repository-advisories https://docs.github.com/en/rest/dependabot/alerts @@ -44,6 +45,7 @@ class AdvisoryBase(NonCompletableGithubObject): def _initAttributes(self) -> None: self._cve_id: Attribute[str] = NotSet self._cvss: Attribute[CVSS] = NotSet + self._cvss_severities: Attribute[dict[str, Any]] = NotSet self._cwes: Attribute[list[CWE]] = NotSet self._description: Attribute[str] = NotSet self._ghsa_id: Attribute[str] = NotSet @@ -67,6 +69,10 @@ def cve_id(self) -> str: def cvss(self) -> CVSS: return self._cvss.value + @property + def cvss_severities(self) -> dict[str, Any]: + return self._cvss_severities.value + @property def cwes(self) -> list[CWE]: return self._cwes.value @@ -116,6 +122,8 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._cve_id = self._makeStringAttribute(attributes["cve_id"]) if "cvss" in attributes: # pragma no branch self._cvss = self._makeClassAttribute(CVSS, attributes["cvss"]) + if "cvss_severities" in attributes: # pragma no branch + self._cvss_severities = self._makeDictAttribute(attributes["cvss_severities"]) if "cwes" in attributes: # pragma no branch self._cwes = self._makeListOfClassesAttribute(CWE, attributes["cwes"]) if "description" in attributes: # pragma no branch diff --git a/github/AdvisoryCredit.py b/github/AdvisoryCredit.py index d8e05707f0..9267772050 100644 --- a/github/AdvisoryCredit.py +++ b/github/AdvisoryCredit.py @@ -7,6 +7,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -55,8 +56,23 @@ class AdvisoryCredit(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/security-advisories/repository-advisories + The OpenAPI schema can be found at + - /components/schemas/repository-advisory/properties/credits/items + """ + def _initAttributes(self) -> None: + self._login: Attribute[str] = NotSet + self._type: Attribute[str] = NotSet + + def __repr__(self) -> str: + return self.get__repr__( + { + "login": self.login, + "type": self.type, + } + ) + @property def login(self) -> str: """ @@ -71,16 +87,6 @@ def type(self) -> str: """ return self._type.value - def _initAttributes(self) -> None: - self._login: Attribute[str] = NotSet - self._type: Attribute[str] = NotSet - - def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "login" in attributes: # pragma no branch - self._login = self._makeStringAttribute(attributes["login"]) - if "type" in attributes: # pragma no branch - self._type = self._makeStringAttribute(attributes["type"]) - @staticmethod def _validate_credit(credit: Credit) -> None: assert isinstance(credit, (dict, AdvisoryCredit)), credit @@ -112,3 +118,9 @@ def _to_github_dict(credit: Credit) -> SimpleCredit: "login": credit.login, "type": credit.type, } + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "login" in attributes: # pragma no branch + self._login = self._makeStringAttribute(attributes["login"]) + if "type" in attributes: # pragma no branch + self._type = self._makeStringAttribute(attributes["type"]) diff --git a/github/AdvisoryCreditDetailed.py b/github/AdvisoryCreditDetailed.py index 10c5314def..d156843b60 100644 --- a/github/AdvisoryCreditDetailed.py +++ b/github/AdvisoryCreditDetailed.py @@ -20,6 +20,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -54,8 +55,25 @@ class AdvisoryCreditDetailed(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/security-advisories/repository-advisories + The OpenAPI schema can be found at + - /components/schemas/global-advisory/properties/credits/items + - /components/schemas/repository-advisory-credit + """ + def _initAttributes(self) -> None: + self._state: Attribute[str] = NotSet + self._type: Attribute[str] = NotSet + self._user: Attribute[github.NamedUser.NamedUser] = NotSet + + def __repr__(self) -> str: + return self.get__repr__( + { + "user": self.user, + "type": self.type, + } + ) + @property def state(self) -> str: """ @@ -77,11 +95,6 @@ def user(self) -> github.NamedUser.NamedUser: """ return self._user.value - def _initAttributes(self) -> None: - self._state: Attribute[str] = NotSet - self._type: Attribute[str] = NotSet - self._user: Attribute[github.NamedUser.NamedUser] = NotSet - def _useAttributes(self, attributes: dict[str, Any]) -> None: if "state" in attributes: # pragma no branch self._state = self._makeStringAttribute(attributes["state"]) diff --git a/github/AdvisoryVulnerability.py b/github/AdvisoryVulnerability.py index 8fa5e48933..c64d29c5af 100644 --- a/github/AdvisoryVulnerability.py +++ b/github/AdvisoryVulnerability.py @@ -7,6 +7,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -69,8 +70,26 @@ class AdvisoryVulnerability(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/security-advisories/repository-advisories + The OpenAPI schema can be found at + - /components/schemas/repository-advisory-vulnerability + - /components/schemas/vulnerability + """ + def _initAttributes(self) -> None: + self._first_patched_version: Attribute[str] = NotSet + self._package: Attribute[AdvisoryVulnerabilityPackage] = NotSet + self._patched_versions: Attribute[str] = NotSet + self._vulnerable_functions: Attribute[list[str]] = NotSet + self._vulnerable_version_range: Attribute[str] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"package": self.package}) + + @property + def first_patched_version(self) -> str: + return self._first_patched_version.value + @property def package( self, @@ -101,25 +120,6 @@ def vulnerable_version_range(self) -> str | None: """ return self._vulnerable_version_range.value - def _initAttributes(self) -> None: - self._package: Attribute[AdvisoryVulnerabilityPackage] = NotSet - self._patched_versions: Attribute[str] = NotSet - self._vulnerable_functions: Attribute[list[str]] = NotSet - self._vulnerable_version_range: Attribute[str] = NotSet - - def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "package" in attributes: # pragma no branch - self._package = self._makeClassAttribute( - github.AdvisoryVulnerabilityPackage.AdvisoryVulnerabilityPackage, - attributes["package"], - ) - if "patched_versions" in attributes: # pragma no branch - self._patched_versions = self._makeStringAttribute(attributes["patched_versions"]) - if "vulnerable_functions" in attributes: # pragma no branch - self._vulnerable_functions = self._makeListOfStringsAttribute(attributes["vulnerable_functions"]) - if "vulnerable_version_range" in attributes: # pragma no branch - self._vulnerable_version_range = self._makeStringAttribute(attributes["vulnerable_version_range"]) - @classmethod def _validate_vulnerability(cls, vulnerability: AdvisoryVulnerabilityInput) -> None: assert isinstance(vulnerability, (dict, cls)), vulnerability @@ -173,3 +173,18 @@ def _to_github_dict( "vulnerable_functions": vulnerability.vulnerable_functions, "vulnerable_version_range": vulnerability.vulnerable_version_range, } + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "first_patched_version" in attributes: # pragma no branch + self._first_patched_version = self._makeStringAttribute(attributes["first_patched_version"]) + if "package" in attributes: # pragma no branch + self._package = self._makeClassAttribute( + github.AdvisoryVulnerabilityPackage.AdvisoryVulnerabilityPackage, + attributes["package"], + ) + if "patched_versions" in attributes: # pragma no branch + self._patched_versions = self._makeStringAttribute(attributes["patched_versions"]) + if "vulnerable_functions" in attributes: # pragma no branch + self._vulnerable_functions = self._makeListOfStringsAttribute(attributes["vulnerable_functions"]) + if "vulnerable_version_range" in attributes: # pragma no branch + self._vulnerable_version_range = self._makeStringAttribute(attributes["vulnerable_version_range"]) diff --git a/github/AdvisoryVulnerabilityPackage.py b/github/AdvisoryVulnerabilityPackage.py index ba52a94c7c..07c85b6701 100644 --- a/github/AdvisoryVulnerabilityPackage.py +++ b/github/AdvisoryVulnerabilityPackage.py @@ -22,6 +22,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Thomas Cooper # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -55,12 +56,20 @@ class AdvisoryVulnerabilityPackage(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/security-advisories/repository-advisories + The OpenAPI schema can be found at + - /components/schemas/dependabot-alert-package + - /components/schemas/repository-advisory-vulnerability/properties/package + - /components/schemas/vulnerability/properties/package + """ def _initAttributes(self) -> None: self._ecosystem: Attribute[str] = NotSet self._name: Attribute[str | None] = NotSet + def __repr__(self) -> str: + return self.get__repr__({"name": self.name}) + @property def ecosystem(self) -> str: """ diff --git a/github/ApplicationOAuth.py b/github/ApplicationOAuth.py index ca31ddb330..5143aa6217 100644 --- a/github/ApplicationOAuth.py +++ b/github/ApplicationOAuth.py @@ -8,6 +8,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -62,11 +63,10 @@ def __init__( requester: Requester, headers: dict[str, Any], attributes: Any, - completed: bool, ) -> None: # this object requires a request without authentication requester = requester.withAuth(auth=None) - super().__init__(requester, headers, attributes, completed) + super().__init__(requester, headers, attributes) def __repr__(self) -> str: return self.get__repr__({"client_id": self._client_id.value}) @@ -79,12 +79,6 @@ def client_id(self) -> str: def client_secret(self) -> str: return self._client_secret.value - def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "client_id" in attributes: # pragma no branch - self._client_id = self._makeStringAttribute(attributes["client_id"]) - if "client_secret" in attributes: # pragma no branch - self._client_secret = self._makeStringAttribute(attributes["client_secret"]) - def get_oauth_url(self, path: str) -> str: if not path.startswith("/"): path = f"/{path}" @@ -146,7 +140,6 @@ def get_access_token(self, code: str, state: str | None = None) -> AccessToken: requester=self._requester, headers=headers, attributes=data, - completed=False, ) def get_app_user_auth(self, token: AccessToken) -> AppUserAuth: @@ -187,7 +180,6 @@ def refresh_access_token(self, refresh_token: str) -> AccessToken: requester=self._requester, headers=headers, attributes=data, - completed=False, ) @staticmethod @@ -198,3 +190,9 @@ def _checkError(headers: dict[str, Any], data: Any) -> tuple[dict[str, Any], Any raise GithubException(200, data, headers) return headers, data + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "client_id" in attributes: # pragma no branch + self._client_id = self._makeStringAttribute(attributes["client_id"]) + if "client_secret" in attributes: # pragma no branch + self._client_secret = self._makeStringAttribute(attributes["client_secret"]) diff --git a/github/Artifact.py b/github/Artifact.py index 184f1f1c1c..9431aa1f02 100644 --- a/github/Artifact.py +++ b/github/Artifact.py @@ -23,6 +23,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -57,6 +58,10 @@ class Artifact(NonCompletableGithubObject): """ This class represents an Artifact of Github Run. + + The OpenAPI schema can be found at + - /components/schemas/artifact + """ def _initAttributes(self) -> None: diff --git a/github/Auth.py b/github/Auth.py index cfdacb1504..7a71ec8ba1 100644 --- a/github/Auth.py +++ b/github/Auth.py @@ -7,6 +7,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Jonathan Kliem # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -31,7 +32,7 @@ import time from abc import ABC from datetime import datetime, timedelta, timezone -from typing import TYPE_CHECKING, Dict, Optional, Union +from typing import TYPE_CHECKING, Callable, Dict, Optional, Union import jwt from requests import utils @@ -43,6 +44,9 @@ if TYPE_CHECKING: from github.GithubIntegration import GithubIntegration +PrivateKeyGenerator = Callable[[], Union[str, bytes]] +DictSignFunction = Callable[[dict], Union[str, bytes]] + # For App authentication, time remaining before token expiration to request a new one ACCESS_TOKEN_REFRESH_THRESHOLD_SECONDS = 20 TOKEN_REFRESH_THRESHOLD_TIMEDELTA = timedelta(seconds=ACCESS_TOKEN_REFRESH_THRESHOLD_SECONDS) @@ -182,6 +186,19 @@ def token_type(self) -> str: return "Bearer" +class JwtSigner: + def __init__(self, private_key_or_func: Union[str, PrivateKeyGenerator], jwt_algorithm: str): + self._private_key_or_func = private_key_or_func + self._jwt_algorithm = jwt_algorithm + + def jwt_sign(self, payload: dict) -> Union[str, bytes]: + if callable(self._private_key_or_func): + private_key = self._private_key_or_func() + else: + private_key = self._private_key_or_func + return jwt.encode(payload, key=private_key, algorithm=self._jwt_algorithm) + + class AppAuth(JWT): """ This class is used to authenticate as a GitHub App. @@ -190,36 +207,42 @@ class AppAuth(JWT): """ + @staticmethod + def create_jwt_sign(private_key_or_func: Union[str, PrivateKeyGenerator], jwt_algorithm: str) -> DictSignFunction: + return JwtSigner(private_key_or_func, jwt_algorithm).jwt_sign + + # v3: move * above private_key def __init__( self, app_id: Union[int, str], - private_key: str, + private_key: Optional[Union[str, PrivateKeyGenerator]] = None, + *, + sign_func: Optional[DictSignFunction] = None, jwt_expiry: int = Consts.DEFAULT_JWT_EXPIRY, jwt_issued_at: int = Consts.DEFAULT_JWT_ISSUED_AT, - jwt_algorithm: str = Consts.DEFAULT_JWT_ALGORITHM, ): assert isinstance(app_id, (int, str)), app_id if isinstance(app_id, str): assert len(app_id) > 0, "app_id must not be empty" - assert isinstance(private_key, str) - assert len(private_key) > 0, "private_key must not be empty" + assert private_key is not None or sign_func is not None, "either private_key or sign_func must be given" + assert private_key is None or sign_func is None, "private_key or sign_func cannot both be given" + if private_key is not None: + assert isinstance(private_key, str) or callable(private_key) + if isinstance(private_key, str): + assert len(private_key) > 0, "private_key must not be empty" + sign_func = AppAuth.create_jwt_sign(private_key, Consts.DEFAULT_JWT_ALGORITHM) assert isinstance(jwt_expiry, int), jwt_expiry assert Consts.MIN_JWT_EXPIRY <= jwt_expiry <= Consts.MAX_JWT_EXPIRY, jwt_expiry self._app_id = app_id - self._private_key = private_key + self._sign_func = sign_func self._jwt_expiry = jwt_expiry self._jwt_issued_at = jwt_issued_at - self._jwt_algorithm = jwt_algorithm @property def app_id(self) -> Union[int, str]: return self._app_id - @property - def private_key(self) -> str: - return self._private_key - @property def token(self) -> str: return self.create_jwt() @@ -258,7 +281,8 @@ def create_jwt(self, expiration: Optional[int] = None) -> str: "exp": now + (expiration if expiration is not None else self._jwt_expiry), "iss": self._app_id, } - encrypted = jwt.encode(payload, key=self.private_key, algorithm=self._jwt_algorithm) + assert self._sign_func is not None + encrypted = self._sign_func(payload) if isinstance(encrypted, bytes): return encrypted.decode("utf-8") @@ -331,10 +355,6 @@ def withRequester(self, requester: Requester) -> "AppInstallationAuth": def app_id(self) -> Union[int, str]: return self._app_auth.app_id - @property - def private_key(self) -> str: - return self._app_auth.private_key - @property def installation_id(self) -> int: return self._installation_id @@ -451,7 +471,6 @@ def withRequester(self, requester: Requester) -> "AppUserAuth": "client_id": self._client_id, "client_secret": self._client_secret, }, - completed=False, ) return self diff --git a/github/AuthenticatedUser.py b/github/AuthenticatedUser.py index 12591afcbc..e1334b61f4 100644 --- a/github/AuthenticatedUser.py +++ b/github/AuthenticatedUser.py @@ -51,6 +51,7 @@ # Copyright 2024 Eduardo Ramírez # # Copyright 2024 Enrico Minack # # Copyright 2024 Oskar Jansson <56458534+janssonoskar@users.noreply.github.com># +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -173,10 +174,10 @@ def _initAttributes(self) -> None: self._starred_url: Attribute[str] = NotSet self._subscriptions_url: Attribute[str] = NotSet self._total_private_repos: Attribute[int] = NotSet + self._two_factor_authentication: Attribute[bool] = NotSet self._type: Attribute[str] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet - self._two_factor_authentication: Attribute[bool] = NotSet def __repr__(self) -> str: return self.get__repr__({"login": self._login.value}) @@ -351,6 +352,11 @@ def total_private_repos(self) -> int: self._completeIfNotSet(self._total_private_repos) return self._total_private_repos.value + @property + def two_factor_authentication(self) -> bool: + self._completeIfNotSet(self._two_factor_authentication) + return self._two_factor_authentication.value + @property def type(self) -> str: self._completeIfNotSet(self._type) @@ -366,11 +372,6 @@ def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - @property - def two_factor_authentication(self) -> bool: - self._completeIfNotSet(self._two_factor_authentication) - return self._two_factor_authentication.value - def add_to_emails(self, *emails: str) -> None: """ :calls: `POST /user/emails `_ @@ -1156,11 +1157,11 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._subscriptions_url = self._makeStringAttribute(attributes["subscriptions_url"]) if "total_private_repos" in attributes: # pragma no branch self._total_private_repos = self._makeIntAttribute(attributes["total_private_repos"]) + if "two_factor_authentication" in attributes: + self._two_factor_authentication = self._makeBoolAttribute(attributes["two_factor_authentication"]) if "type" in attributes: # pragma no branch self._type = self._makeStringAttribute(attributes["type"]) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) - if "two_factor_authentication" in attributes: - self._two_factor_authentication = self._makeBoolAttribute(attributes["two_factor_authentication"]) diff --git a/github/Autolink.py b/github/Autolink.py index 73f2a644be..27a6bea89c 100644 --- a/github/Autolink.py +++ b/github/Autolink.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -50,13 +51,16 @@ class Autolink(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/repos/autolinks?apiVersion=2022-11-28 + The OpenAPI schema can be found at + - /components/schemas/autolink + """ def _initAttributes(self) -> None: self._id: Attribute[int] = NotSet + self._is_alphanumeric: Attribute[bool] = NotSet self._key_prefix: Attribute[str] = NotSet self._url_template: Attribute[str] = NotSet - self._is_alphanumeric: Attribute[bool] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value}) @@ -65,6 +69,10 @@ def __repr__(self) -> str: def id(self) -> int: return self._id.value + @property + def is_alphanumeric(self) -> bool: + return self._is_alphanumeric.value + @property def key_prefix(self) -> str: return self._key_prefix.value @@ -73,16 +81,12 @@ def key_prefix(self) -> str: def url_template(self) -> str: return self._url_template.value - @property - def is_alphanumeric(self) -> bool: - return self._is_alphanumeric.value - def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) + if "is_alphanumeric" in attributes: # pragma no branch + self._is_alphanumeric = self._makeBoolAttribute(attributes["is_alphanumeric"]) if "key_prefix" in attributes: # pragma no branch self._key_prefix = self._makeStringAttribute(attributes["key_prefix"]) if "url_template" in attributes: # pragma no branch self._url_template = self._makeStringAttribute(attributes["url_template"]) - if "is_alphanumeric" in attributes: # pragma no branch - self._is_alphanumeric = self._makeBoolAttribute(attributes["is_alphanumeric"]) diff --git a/github/Branch.py b/github/Branch.py index 1f82ee9cca..f77116f79d 100644 --- a/github/Branch.py +++ b/github/Branch.py @@ -27,8 +27,10 @@ # Copyright 2023 Trim21 # # Copyright 2023 terenho <33275803+terenho@users.noreply.github.com> # # Copyright 2024 Benjamin K <53038537+treee111@users.noreply.github.com> # +# Copyright 2024 Benjamin K. <53038537+treee111@users.noreply.github.com> # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -85,11 +87,30 @@ class Branch(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#branches + The OpenAPI schema can be found at + - /components/schemas/branch-short + - /components/schemas/branch-with-protection + - /components/schemas/short-branch + """ + def _initAttributes(self) -> None: + self.__links: Attribute[dict[str, Any]] = NotSet + self._commit: Attribute[Commit] = github.GithubObject.NotSet + self._name: Attribute[str] = github.GithubObject.NotSet + self._pattern: Attribute[str] = NotSet + self._protected: Attribute[bool] = github.GithubObject.NotSet + self._protection: Attribute[BranchProtection] = NotSet + self._protection_url: Attribute[str] = github.GithubObject.NotSet + self._required_approving_review_count: Attribute[int] = NotSet + def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) + @property + def _links(self) -> dict[str, Any]: + return self.__links.value + @property def commit(self) -> Commit: return self._commit.value @@ -98,29 +119,27 @@ def commit(self) -> Commit: def name(self) -> str: return self._name.value + @property + def pattern(self) -> str: + return self._pattern.value + @property def protected(self) -> bool: return self._protected.value + @property + def protection(self) -> BranchProtection: + if is_undefined(self._protection): + return self.get_protection() + return self._protection.value + @property def protection_url(self) -> str: return self._protection_url.value - def _initAttributes(self) -> None: - self._commit: Attribute[Commit] = github.GithubObject.NotSet - self._name: Attribute[str] = github.GithubObject.NotSet - self._protection_url: Attribute[str] = github.GithubObject.NotSet - self._protected: Attribute[bool] = github.GithubObject.NotSet - - def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "commit" in attributes: # pragma no branch - self._commit = self._makeClassAttribute(github.Commit.Commit, attributes["commit"]) - if "name" in attributes: # pragma no branch - self._name = self._makeStringAttribute(attributes["name"]) - if "protection_url" in attributes: # pragma no branch - self._protection_url = self._makeStringAttribute(attributes["protection_url"]) - if "protected" in attributes: # pragma no branch - self._protected = self._makeBoolAttribute(attributes["protected"]) + @property + def required_approving_review_count(self) -> int: + return self._required_approving_review_count.value def get_protection(self) -> BranchProtection: """ @@ -158,6 +177,7 @@ def edit_protection( block_creations: Opt[bool] = NotSet, require_last_push_approval: Opt[bool] = NotSet, allow_deletions: Opt[bool] = NotSet, + checks: Opt[list[str | tuple[str, int]]] = NotSet, ) -> BranchProtection: """ :calls: `PUT /repos/{owner}/{repo}/branches/{branch}/protection `_ @@ -185,16 +205,27 @@ def edit_protection( assert is_optional_list(apps_bypass_pull_request_allowances, str), apps_bypass_pull_request_allowances assert is_optional(require_last_push_approval, bool), require_last_push_approval assert is_optional(allow_deletions, bool), allow_deletions + assert is_optional_list(checks, (str, tuple)), checks + if is_defined(checks): + assert all(not isinstance(check, tuple) or list(map(type, check)) == [str, int] for check in checks), checks post_parameters: dict[str, Any] = {} - if is_defined(strict) or is_defined(contexts): + if is_defined(strict) or is_defined(contexts) or is_defined(checks): if is_undefined(strict): strict = False - if is_undefined(contexts): - contexts = [] + + checks_parameters = [] + if is_defined(checks): + checks_parameters = [ + {"context": check[0], "app_id": check[1]} if isinstance(check, tuple) else {"context": check} + for check in checks + ] + elif is_defined(contexts): + checks_parameters = [{"context": context} for context in contexts] + post_parameters["required_status_checks"] = { "strict": strict, - "contexts": contexts, + "checks": checks_parameters, } else: post_parameters["required_status_checks"] = None @@ -334,14 +365,28 @@ def edit_required_status_checks( self, strict: Opt[bool] = NotSet, contexts: Opt[list[str]] = NotSet, + checks: Opt[list[str | tuple[str, int]]] = NotSet, ) -> RequiredStatusChecks: """ :calls: `PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks `_ """ assert is_optional(strict, bool), strict assert is_optional_list(contexts, str), contexts + assert is_optional_list(checks, (str, tuple)), checks + if is_defined(checks): + assert all(not isinstance(check, tuple) or list(map(type, check)) == [str, int] for check in checks), checks + + checks_parameters: Opt[list[dict[str, Any]]] = NotSet + if is_defined(checks): + checks_parameters = [ + {"context": check[0], "app_id": check[1]} if isinstance(check, tuple) else {"context": check} + for check in checks + ] + elif is_defined(contexts): + checks_parameters = [{"context": context} for context in contexts] + + post_parameters: dict[str, Any] = NotSet.remove_unset_items({"strict": strict, "checks": checks_parameters}) - post_parameters: dict[str, Any] = NotSet.remove_unset_items({"strict": strict, "contexts": contexts}) headers, data = self._requester.requestJsonAndCheck( "PATCH", f"{self.protection_url}/required_status_checks", @@ -588,3 +633,25 @@ def remove_allow_deletions(self) -> None: :calls: `DELETE /repos/{owner}/{repo}/branches/{branch}/protection/allow_deletions `_ """ headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.protection_url}/allow_deletions") + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "_links" in attributes: # pragma no branch + self.__links = self._makeDictAttribute(attributes["_links"]) + if "commit" in attributes: # pragma no branch + self._commit = self._makeClassAttribute(github.Commit.Commit, attributes["commit"]) + if "name" in attributes: # pragma no branch + self._name = self._makeStringAttribute(attributes["name"]) + if "pattern" in attributes: # pragma no branch + self._pattern = self._makeStringAttribute(attributes["pattern"]) + if "protected" in attributes: # pragma no branch + self._protected = self._makeBoolAttribute(attributes["protected"]) + if "protection" in attributes: # pragma no branch + self._protection = self._makeClassAttribute( + github.BranchProtection.BranchProtection, attributes["protection"] + ) + if "protection_url" in attributes: # pragma no branch + self._protection_url = self._makeStringAttribute(attributes["protection_url"]) + if "required_approving_review_count" in attributes: # pragma no branch + self._required_approving_review_count = self._makeIntAttribute( + attributes["required_approving_review_count"] + ) diff --git a/github/BranchProtection.py b/github/BranchProtection.py index 2480ad5d78..ae5de1c8b9 100644 --- a/github/BranchProtection.py +++ b/github/BranchProtection.py @@ -11,6 +11,7 @@ # Copyright 2024 Benjamin K <53038537+treee111@users.noreply.github.com> # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -56,24 +57,34 @@ class BranchProtection(github.GithubObject.CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#get-branch-protection - """ + The OpenAPI schema can be found at + - /components/schemas/branch-protection + - /components/schemas/protected-branch - def __repr__(self) -> str: - return self.get__repr__({"url": self._url.value}) + """ def _initAttributes(self) -> None: - self._url: Attribute[str] = NotSet self._allow_deletions: Attribute[bool] = NotSet self._allow_force_pushes: Attribute[bool] = NotSet self._allow_fork_syncing: Attribute[bool] = NotSet + self._block_creations: Attribute[bool] = NotSet + self._enabled: Attribute[bool] = NotSet + self._enforce_admins: Attribute[bool] = NotSet self._lock_branch: Attribute[bool] = NotSet + self._name: Attribute[str] = NotSet + self._protection_url: Attribute[str] = NotSet self._required_conversation_resolution: Attribute[bool] = NotSet - self._required_status_checks: Attribute[RequiredStatusChecks] = NotSet - self._enforce_admins: Attribute[bool] = NotSet self._required_linear_history: Attribute[bool] = github.GithubObject.NotSet self._required_pull_request_reviews: Attribute[RequiredPullRequestReviews] = NotSet - self._user_push_restrictions: Opt[str] = NotSet + self._required_signatures: Attribute[bool] = NotSet + self._required_status_checks: Attribute[RequiredStatusChecks] = NotSet + self._restrictions: Attribute[dict[str, Any]] = NotSet self._team_push_restrictions: Opt[str] = NotSet + self._url: Attribute[str] = NotSet + self._user_push_restrictions: Opt[str] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"url": self._url.value}) @property def allow_deletions(self) -> bool: @@ -90,30 +101,36 @@ def allow_fork_syncing(self) -> bool: self._completeIfNotSet(self._allow_fork_syncing) return self._allow_fork_syncing.value + @property + def block_creations(self) -> bool: + return self._block_creations.value + + @property + def enabled(self) -> bool: + return self._enabled.value + + @property + def enforce_admins(self) -> bool: + self._completeIfNotSet(self._enforce_admins) + return self._enforce_admins.value + @property def lock_branch(self) -> bool: self._completeIfNotSet(self._lock_branch) return self._lock_branch.value @property - def required_conversation_resolution(self) -> bool: - self._completeIfNotSet(self._required_conversation_resolution) - return self._required_conversation_resolution.value + def name(self) -> str: + return self._name.value @property - def url(self) -> str: - self._completeIfNotSet(self._url) - return self._url.value + def protection_url(self) -> str: + return self._protection_url.value @property - def required_status_checks(self) -> RequiredStatusChecks: - self._completeIfNotSet(self._required_status_checks) - return self._required_status_checks.value - - @property - def enforce_admins(self) -> bool: - self._completeIfNotSet(self._enforce_admins) - return self._enforce_admins.value + def required_conversation_resolution(self) -> bool: + self._completeIfNotSet(self._required_conversation_resolution) + return self._required_conversation_resolution.value @property def required_linear_history(self) -> bool: @@ -125,6 +142,23 @@ def required_pull_request_reviews(self) -> RequiredPullRequestReviews: self._completeIfNotSet(self._required_pull_request_reviews) return self._required_pull_request_reviews.value + @property + def required_signatures(self) -> bool: + return self._required_signatures.value + + @property + def required_status_checks(self) -> RequiredStatusChecks: + self._completeIfNotSet(self._required_status_checks) + return self._required_status_checks.value + + @property + def restrictions(self) -> dict[str, Any]: + return self._restrictions.value + + @property + def url(self) -> str: + return self._url.value + def get_user_push_restrictions(self) -> PaginatedList[NamedUser] | None: if not is_defined(self._user_push_restrictions): return None @@ -147,28 +181,39 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._allow_force_pushes = self._makeBoolAttribute(attributes["allow_force_pushes"]["enabled"]) if "allow_fork_syncing" in attributes: # pragma no branch self._allow_fork_syncing = self._makeBoolAttribute(attributes["allow_fork_syncing"]["enabled"]) + if "block_creations" in attributes: # pragma no branch + self._block_creations = self._makeBoolAttribute(attributes["block_creations"]["enabled"]) + if "enabled" in attributes: # pragma no branch + self._enabled = self._makeBoolAttribute(attributes["enabled"]) + if "enforce_admins" in attributes: # pragma no branch + self._enforce_admins = self._makeBoolAttribute(attributes["enforce_admins"]["enabled"]) if "lock_branch" in attributes: # pragma no branch self._lock_branch = self._makeBoolAttribute(attributes["lock_branch"]["enabled"]) + if "name" in attributes: # pragma no branch + self._name = self._makeStringAttribute(attributes["name"]) + if "protection_url" in attributes: # pragma no branch + self._protection_url = self._makeStringAttribute(attributes["protection_url"]) if "required_conversation_resolution" in attributes: # pragma no branch self._required_conversation_resolution = self._makeBoolAttribute( attributes["required_conversation_resolution"]["enabled"] ) - if "url" in attributes: # pragma no branch - self._url = self._makeStringAttribute(attributes["url"]) - if "required_status_checks" in attributes: # pragma no branch - self._required_status_checks = self._makeClassAttribute( - github.RequiredStatusChecks.RequiredStatusChecks, - attributes["required_status_checks"], - ) - if "enforce_admins" in attributes: # pragma no branch - self._enforce_admins = self._makeBoolAttribute(attributes["enforce_admins"]["enabled"]) + if "required_linear_history" in attributes: # pragma no branch + self._required_linear_history = self._makeBoolAttribute(attributes["required_linear_history"]["enabled"]) if "required_pull_request_reviews" in attributes: # pragma no branch self._required_pull_request_reviews = self._makeClassAttribute( github.RequiredPullRequestReviews.RequiredPullRequestReviews, attributes["required_pull_request_reviews"], ) - if "required_linear_history" in attributes: # pragma no branch - self._required_linear_history = self._makeBoolAttribute(attributes["required_linear_history"]["enabled"]) + if "required_signatures" in attributes: # pragma no branch + self._required_signatures = self._makeBoolAttribute(attributes["required_signatures"]["enabled"]) + if "required_status_checks" in attributes: # pragma no branch + self._required_status_checks = self._makeClassAttribute( + github.RequiredStatusChecks.RequiredStatusChecks, + attributes["required_status_checks"], + ) if "restrictions" in attributes: # pragma no branch + self._restrictions = attributes["restrictions"] self._user_push_restrictions = attributes["restrictions"]["users_url"] self._team_push_restrictions = attributes["restrictions"]["teams_url"] + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/CVSS.py b/github/CVSS.py index c5caa30a1c..a9c37032c4 100644 --- a/github/CVSS.py +++ b/github/CVSS.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -54,22 +55,22 @@ class CVSS(NonCompletableGithubObject): """ def _initAttributes(self) -> None: - self._vector_string: Attribute[str] = NotSet self._score: Attribute[Decimal] = NotSet + self._vector_string: Attribute[str] = NotSet self._version: Attribute[Decimal] = NotSet @property def score(self) -> Decimal: return self._score.value - @property - def version(self) -> Decimal: - return self._version.value - @property def vector_string(self) -> str: return self._vector_string.value + @property + def version(self) -> Decimal: + return self._version.value + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "score" in attributes and attributes["score"] is not None: # pragma no branch # ensure string so we don't have all the float extra nonsense diff --git a/github/CheckRun.py b/github/CheckRun.py index 3c4166803b..3a3588aa66 100644 --- a/github/CheckRun.py +++ b/github/CheckRun.py @@ -9,6 +9,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,8 +34,12 @@ from datetime import datetime from typing import TYPE_CHECKING, Any +import deprecated + import github.CheckRunAnnotation import github.CheckRunOutput +import github.CheckSuite +import github.Deployment import github.GithubApp import github.GithubObject import github.PullRequest @@ -52,6 +57,8 @@ if TYPE_CHECKING: from github.CheckRunAnnotation import CheckRunAnnotation from github.CheckRunOutput import CheckRunOutput + from github.CheckSuite import CheckSuite + from github.Deployment import Deployment from github.GithubApp import GithubApp from github.PullRequest import PullRequest @@ -63,13 +70,18 @@ class CheckRun(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/checks#check-runs + The OpenAPI schema can be found at + - /components/schemas/check-run + """ def _initAttributes(self) -> None: self._app: Attribute[GithubApp] = NotSet + self._check_suite: Attribute[CheckSuite] = NotSet self._check_suite_id: Attribute[int] = NotSet self._completed_at: Attribute[datetime | None] = NotSet self._conclusion: Attribute[str] = NotSet + self._deployment: Attribute[Deployment] = NotSet self._details_url: Attribute[str] = NotSet self._external_id: Attribute[str] = NotSet self._head_sha: Attribute[str] = NotSet @@ -92,6 +104,12 @@ def app(self) -> GithubApp: return self._app.value @property + def check_suite(self) -> CheckSuite: + self._completeIfNotSet(self._check_suite) + return self._check_suite.value + + @property + @deprecated.deprecated("Use property check_suite.id instead") def check_suite_id(self) -> int: self._completeIfNotSet(self._check_suite_id) return self._check_suite_id.value @@ -106,6 +124,11 @@ def conclusion(self) -> str: self._completeIfNotSet(self._conclusion) return self._conclusion.value + @property + def deployment(self) -> Deployment: + self._completeIfNotSet(self._deployment) + return self._deployment.value + @property def details_url(self) -> str: self._completeIfNotSet(self._details_url) @@ -163,7 +186,6 @@ def status(self) -> str: @property def url(self) -> str: - self._completeIfNotSet(self._url) return self._url.value def get_annotations(self) -> PaginatedList[CheckRunAnnotation]: @@ -235,11 +257,19 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._app = self._makeClassAttribute(github.GithubApp.GithubApp, attributes["app"]) # This only gives us a dictionary with `id` attribute of `check_suite` if "check_suite" in attributes and "id" in attributes["check_suite"]: # pragma no branch - self._check_suite_id = self._makeIntAttribute(attributes["check_suite"]["id"]) + id = attributes["check_suite"]["id"] + if "url" not in attributes["check_suite"] and "url" in attributes: + url = attributes["url"].split("/")[:-2] + ["check-suites", str(id)] + attributes["check_suite"]["url"] = "/".join(url) + self._check_suite = self._makeClassAttribute(github.CheckSuite.CheckSuite, attributes["check_suite"]) + # deprecated check suite id property + self._check_suite_id = self._makeIntAttribute(id) if "completed_at" in attributes: # pragma no branch self._completed_at = self._makeDatetimeAttribute(attributes["completed_at"]) if "conclusion" in attributes: # pragma no branch self._conclusion = self._makeStringAttribute(attributes["conclusion"]) + if "deployment" in attributes: # pragma no branch + self._deployment = self._makeClassAttribute(github.Deployment.Deployment, attributes["deployment"]) if "details_url" in attributes: # pragma no branch self._details_url = self._makeStringAttribute(attributes["details_url"]) if "external_id" in attributes: # pragma no branch diff --git a/github/CheckRunAnnotation.py b/github/CheckRunAnnotation.py index 81efb6b041..f5f52ff3d9 100644 --- a/github/CheckRunAnnotation.py +++ b/github/CheckRunAnnotation.py @@ -7,6 +7,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,7 +27,9 @@ # # ################################################################################ -from typing import Any, Dict +from __future__ import annotations + +from typing import Any from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet @@ -37,10 +40,14 @@ class CheckRunAnnotation(NonCompletableGithubObject): The reference can be found here: https://docs.github.com/en/rest/reference/checks#list-check-run-annotations + The OpenAPI schema can be found at + - /components/schemas/check-annotation + """ def _initAttributes(self) -> None: self._annotation_level: Attribute[str] = NotSet + self._blob_href: Attribute[str] = NotSet self._end_column: Attribute[int] = NotSet self._end_line: Attribute[int] = NotSet self._message: Attribute[str] = NotSet @@ -57,6 +64,10 @@ def __repr__(self) -> str: def annotation_level(self) -> str: return self._annotation_level.value + @property + def blob_href(self) -> str: + return self._blob_href.value + @property def end_column(self) -> int: return self._end_column.value @@ -89,9 +100,11 @@ def start_line(self) -> int: def title(self) -> str: return self._title.value - def _useAttributes(self, attributes: Dict[str, Any]) -> None: + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "annotation_level" in attributes: # pragma no branch self._annotation_level = self._makeStringAttribute(attributes["annotation_level"]) + if "blob_href" in attributes: # pragma no branch + self._blob_href = self._makeStringAttribute(attributes["blob_href"]) if "end_column" in attributes: # pragma no branch self._end_column = self._makeIntAttribute(attributes["end_column"]) if "end_line" in attributes: # pragma no branch diff --git a/github/CheckRunOutput.py b/github/CheckRunOutput.py index 9b70d2a9e7..f782573da7 100644 --- a/github/CheckRunOutput.py +++ b/github/CheckRunOutput.py @@ -18,6 +18,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -45,6 +46,10 @@ class CheckRunOutput(NonCompletableGithubObject): """ This class represents the output of check run. + + The OpenAPI schema can be found at + - /components/schemas/check-run/properties/output + """ def _initAttributes(self) -> None: diff --git a/github/CheckSuite.py b/github/CheckSuite.py index 3aa627e2e4..97c312ad5e 100644 --- a/github/CheckSuite.py +++ b/github/CheckSuite.py @@ -9,6 +9,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -56,6 +57,10 @@ class CheckSuite(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/checks#check-suites + The OpenAPI schema can be found at + - /components/schemas/check-run/properties/check_suite + - /components/schemas/check-suite + """ def _initAttributes(self) -> None: @@ -70,8 +75,11 @@ def _initAttributes(self) -> None: self._head_sha: Attribute[str] = NotSet self._id: Attribute[int] = NotSet self._latest_check_runs_count: Attribute[int] = NotSet + self._node_id: Attribute[str] = NotSet self._pull_requests: Attribute[list[PullRequest]] = NotSet self._repository: Attribute[Repository] = NotSet + self._rerequestable: Attribute[bool] = NotSet + self._runs_rerequestable: Attribute[bool] = NotSet self._status: Attribute[str] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet @@ -167,6 +175,11 @@ def latest_check_runs_count(self) -> int: self._completeIfNotSet(self._latest_check_runs_count) return self._latest_check_runs_count.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def pull_requests(self) -> list[PullRequest]: """ @@ -183,6 +196,16 @@ def repository(self) -> Repository: self._completeIfNotSet(self._repository) return self._repository.value + @property + def rerequestable(self) -> bool: + self._completeIfNotSet(self._rerequestable) + return self._rerequestable.value + + @property + def runs_rerequestable(self) -> bool: + self._completeIfNotSet(self._runs_rerequestable) + return self._runs_rerequestable.value + @property def status(self) -> str: """ @@ -204,7 +227,6 @@ def url(self) -> str: """ :type: string """ - self._completeIfNotSet(self._url) return self._url.value def rerequest(self) -> bool: @@ -271,12 +293,18 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._id = self._makeIntAttribute(attributes["id"]) if "latest_check_runs_count" in attributes: # pragma no branch self._latest_check_runs_count = self._makeIntAttribute(attributes["latest_check_runs_count"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "pull_requests" in attributes: # pragma no branch self._pull_requests = self._makeListOfClassesAttribute( github.PullRequest.PullRequest, attributes["pull_requests"] ) if "repository" in attributes: # pragma no branch self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) + if "rerequestable" in attributes: # pragma no branch + self._rerequestable = self._makeBoolAttribute(attributes["rerequestable"]) + if "runs_rerequestable" in attributes: # pragma no branch + self._runs_rerequestable = self._makeBoolAttribute(attributes["runs_rerequestable"]) if "status" in attributes: # pragma no branch self._status = self._makeStringAttribute(attributes["status"]) if "updated_at" in attributes: # pragma no branch diff --git a/github/Clones.py b/github/Clones.py index 61a82b7c86..b27fc0bb85 100644 --- a/github/Clones.py +++ b/github/Clones.py @@ -18,6 +18,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -37,38 +38,45 @@ # # ################################################################################ -from datetime import datetime -from typing import Any, Dict +from __future__ import annotations +from typing import TYPE_CHECKING, Any + +import github.Traffic from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet +if TYPE_CHECKING: + from github.Traffic import Traffic + class Clones(NonCompletableGithubObject): """ - This class represents a popular Path for a GitHub repository. + This class represents the total number of clones and breakdown per day or week for a GitHub repository. The reference can be found here - https://docs.github.com/en/rest/reference/repos#get-repository-clones + https://docs.github.com/en/rest/metrics/traffic#get-repository-clones + + The OpenAPI schema can be found at + - /components/schemas/clone-traffic """ def _initAttributes(self) -> None: - self._timestamp: Attribute[datetime] = NotSet + self._clones: Attribute[list[Traffic]] = NotSet self._count: Attribute[int] = NotSet self._uniques: Attribute[int] = NotSet def __repr__(self) -> str: return self.get__repr__( { - "timestamp": self._timestamp.value, "count": self._count.value, "uniques": self._uniques.value, } ) @property - def timestamp(self) -> datetime: - return self._timestamp.value + def clones(self) -> list[Traffic]: + return self._clones.value @property def count(self) -> int: @@ -78,9 +86,9 @@ def count(self) -> int: def uniques(self) -> int: return self._uniques.value - def _useAttributes(self, attributes: Dict[str, Any]) -> None: - if "timestamp" in attributes: # pragma no branch - self._timestamp = self._makeDatetimeAttribute(attributes["timestamp"]) + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "clones" in attributes: # pragma no branch + self._clones = self._makeListOfClassesAttribute(github.Traffic.Traffic, attributes["clones"]) if "count" in attributes: # pragma no branch self._count = self._makeIntAttribute(attributes["count"]) if "uniques" in attributes: # pragma no branch diff --git a/github/CodeScanAlert.py b/github/CodeScanAlert.py index 1f1e28262d..fad087e8e6 100644 --- a/github/CodeScanAlert.py +++ b/github/CodeScanAlert.py @@ -6,6 +6,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -49,34 +50,22 @@ class CodeScanAlert(NonCompletableGithubObject): """ def _initAttributes(self) -> None: - self._number: Attribute[int] = NotSet - self._rule: Attribute[github.CodeScanRule.CodeScanRule] = NotSet - self._tool: Attribute[github.CodeScanTool.CodeScanTool] = NotSet self._created_at: Attribute[datetime] = NotSet self._dismissed_at: Attribute[datetime | None] = NotSet self._dismissed_by: Attribute[github.NamedUser.NamedUser | None] = NotSet self._dismissed_reason: Attribute[str | None] = NotSet - self._url: Attribute[str] = NotSet self._html_url: Attribute[str] = NotSet self._instances_url: Attribute[str] = NotSet self._most_recent_instance: Attribute[github.CodeScanAlertInstance.CodeScanAlertInstance] = NotSet + self._number: Attribute[int] = NotSet + self._rule: Attribute[github.CodeScanRule.CodeScanRule] = NotSet self._state: Attribute[str] = NotSet + self._tool: Attribute[github.CodeScanTool.CodeScanTool] = NotSet + self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"number": self.number}) - @property - def number(self) -> int: - return self._number.value - - @property - def rule(self) -> github.CodeScanRule.CodeScanRule: - return self._rule.value - - @property - def tool(self) -> github.CodeScanTool.CodeScanTool: - return self._tool.value - @property def created_at(self) -> datetime: return self._created_at.value @@ -93,10 +82,6 @@ def dismissed_by(self) -> github.NamedUser.NamedUser | None: def dismissed_reason(self) -> str | None: return self._dismissed_reason.value - @property - def url(self) -> str: - return self._url.value - @property def html_url(self) -> str: return self._html_url.value @@ -109,10 +94,26 @@ def instances_url(self) -> str: def most_recent_instance(self) -> github.CodeScanAlertInstance.CodeScanAlertInstance: return self._most_recent_instance.value + @property + def number(self) -> int: + return self._number.value + + @property + def rule(self) -> github.CodeScanRule.CodeScanRule: + return self._rule.value + @property def state(self) -> str: return self._state.value + @property + def tool(self) -> github.CodeScanTool.CodeScanTool: + return self._tool.value + + @property + def url(self) -> str: + return self._url.value + def get_instances(self) -> PaginatedList[github.CodeScanAlertInstance.CodeScanAlertInstance]: """ Get instances. @@ -128,13 +129,6 @@ def get_instances(self) -> PaginatedList[github.CodeScanAlertInstance.CodeScanAl ) def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "number" in attributes: # pragma no branch - self._number = self._makeIntAttribute(attributes["number"]) - if "rule" in attributes: # pragma no branch - self._rule = self._makeClassAttribute(github.CodeScanRule.CodeScanRule, attributes["rule"]) - if "tool" in attributes: # pragma no branch - self._tool = self._makeClassAttribute(github.CodeScanTool.CodeScanTool, attributes["tool"]) - if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "dismissed_at" in attributes: # pragma no branch @@ -143,9 +137,6 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._dismissed_by = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["dismissed_by"]) if "dismissed_reason" in attributes: # pragma no branch self._dismissed_reason = self._makeStringAttribute(attributes["dismissed_reason"]) - - if "url" in attributes: # pragma no branch - self._url = self._makeStringAttribute(attributes["url"]) if "html_url" in attributes: # pragma no branch self._html_url = self._makeStringAttribute(attributes["html_url"]) if "instances_url" in attributes: # pragma no branch @@ -156,5 +147,14 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: github.CodeScanAlertInstance.CodeScanAlertInstance, attributes["most_recent_instance"], ) + if "number" in attributes: # pragma no branch + self._number = self._makeIntAttribute(attributes["number"]) + if "rule" in attributes: # pragma no branch + self._rule = self._makeClassAttribute(github.CodeScanRule.CodeScanRule, attributes["rule"]) if "state" in attributes: # pragma no branch self._state = self._makeStringAttribute(attributes["state"]) + if "tool" in attributes: # pragma no branch + self._tool = self._makeClassAttribute(github.CodeScanTool.CodeScanTool, attributes["tool"]) + + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/CodeScanAlertInstance.py b/github/CodeScanAlertInstance.py index b968f07098..5bc8a3b31c 100644 --- a/github/CodeScanAlertInstance.py +++ b/github/CodeScanAlertInstance.py @@ -6,6 +6,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -46,69 +47,69 @@ class CodeScanAlertInstance(NonCompletableGithubObject): """ def _initAttributes(self) -> None: - self._ref: Attribute[str] = NotSet self._analysis_key: Attribute[str] = NotSet - self._environment: Attribute[str] = NotSet - self._state: Attribute[str] = NotSet + self._classifications: Attribute[list[str]] = NotSet self._commit_sha: Attribute[str] = NotSet - self._message: Attribute[dict[str, Any]] = NotSet + self._environment: Attribute[str] = NotSet self._location: Attribute[CodeScanAlertInstanceLocation] = NotSet - self._classifications: Attribute[list[str]] = NotSet + self._message: Attribute[dict[str, Any]] = NotSet + self._ref: Attribute[str] = NotSet + self._state: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"ref": self.ref, "analysis_key": self.analysis_key}) - @property - def ref(self) -> str: - return self._ref.value - @property def analysis_key(self) -> str: return self._analysis_key.value @property - def environment(self) -> str: - return self._environment.value - - @property - def state(self) -> str: - return self._state.value + def classifications(self) -> list[str]: + return self._classifications.value @property def commit_sha(self) -> str: return self._commit_sha.value @property - def message(self) -> dict[str, Any]: - return self._message.value + def environment(self) -> str: + return self._environment.value @property def location(self) -> CodeScanAlertInstanceLocation: return self._location.value @property - def classifications(self) -> list[str]: - return self._classifications.value + def message(self) -> dict[str, Any]: + return self._message.value + + @property + def ref(self) -> str: + return self._ref.value + + @property + def state(self) -> str: + return self._state.value def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "ref" in attributes: # pragma no branch - self._ref = self._makeStringAttribute(attributes["ref"]) if "analysis_key" in attributes: # pragma no branch self._analysis_key = self._makeStringAttribute(attributes["analysis_key"]) + if "classifications" in attributes: # pragma no branch + self._classifications = self._makeListOfStringsAttribute(attributes["classifications"]) + if "commit_sha" in attributes: # pragma no branch + self._commit_sha = self._makeStringAttribute(attributes["commit_sha"]) if "environment" in attributes: # pragma no branch self._environment = self._makeStringAttribute(attributes["environment"]) - if "state" in attributes: # pragma no branch - self._state = self._makeStringAttribute(attributes["state"]) if "environment" in attributes: # pragma no branch self._environment = self._makeStringAttribute(attributes["environment"]) - if "commit_sha" in attributes: # pragma no branch - self._commit_sha = self._makeStringAttribute(attributes["commit_sha"]) - if "message" in attributes: # pragma no branch - self._message = self._makeDictAttribute(attributes["message"]) if "location" in attributes: # pragma no branch self._location = self._makeClassAttribute( github.CodeScanAlertInstanceLocation.CodeScanAlertInstanceLocation, attributes["location"], ) - if "classifications" in attributes: # pragma no branch - self._classifications = self._makeListOfStringsAttribute(attributes["classifications"]) + if "message" in attributes: # pragma no branch + self._message = self._makeDictAttribute(attributes["message"]) + if "ref" in attributes: # pragma no branch + self._ref = self._makeStringAttribute(attributes["ref"]) + if "state" in attributes: # pragma no branch + self._state = self._makeStringAttribute(attributes["state"]) diff --git a/github/CodeScanAlertInstanceLocation.py b/github/CodeScanAlertInstanceLocation.py index f8dd83b68f..119982b6b5 100644 --- a/github/CodeScanAlertInstanceLocation.py +++ b/github/CodeScanAlertInstanceLocation.py @@ -7,6 +7,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -41,14 +42,11 @@ class CodeScanAlertInstanceLocation(NonCompletableGithubObject): """ def _initAttributes(self) -> None: + self._end_column: Attribute[int] = NotSet + self._end_line: Attribute[int] = NotSet self._path: Attribute[str] = NotSet - self._start_line: Attribute[int] = NotSet self._start_column: Attribute[int] = NotSet - self._end_line: Attribute[int] = NotSet - self._end_column: Attribute[int] = NotSet - - def __str__(self) -> str: - return f"{self.path} @ l{self.start_line}:c{self.start_column}-l{self.end_line}:c{self.end_column}" + self._start_line: Attribute[int] = NotSet def __repr__(self) -> str: return self.get__repr__( @@ -61,34 +59,37 @@ def __repr__(self) -> str: } ) + def __str__(self) -> str: + return f"{self.path} @ l{self.start_line}:c{self.start_column}-l{self.end_line}:c{self.end_column}" + @property - def path(self) -> str: - return self._path.value + def end_column(self) -> int: + return self._end_column.value @property - def start_line(self) -> int: - return self._start_line.value + def end_line(self) -> int: + return self._end_line.value @property - def start_column(self) -> int: - return self._start_column.value + def path(self) -> str: + return self._path.value @property - def end_line(self) -> int: - return self._end_line.value + def start_column(self) -> int: + return self._start_column.value @property - def end_column(self) -> int: - return self._end_column.value + def start_line(self) -> int: + return self._start_line.value def _useAttributes(self, attributes: Dict[str, Any]) -> None: + if "end_column" in attributes: # pragma no branch + self._end_column = self._makeIntAttribute(attributes["end_column"]) + if "end_line" in attributes: # pragma no branch + self._end_line = self._makeIntAttribute(attributes["end_line"]) if "path" in attributes: # pragma no branch self._path = self._makeStringAttribute(attributes["path"]) - if "start_line" in attributes: # pragma no branch - self._start_line = self._makeIntAttribute(attributes["start_line"]) if "start_column" in attributes: # pragma no branch self._start_column = self._makeIntAttribute(attributes["start_column"]) - if "end_line" in attributes: # pragma no branch - self._end_line = self._makeIntAttribute(attributes["end_line"]) - if "end_column" in attributes: # pragma no branch - self._end_column = self._makeIntAttribute(attributes["end_column"]) + if "start_line" in attributes: # pragma no branch + self._start_line = self._makeIntAttribute(attributes["start_line"]) diff --git a/github/CodeScanRule.py b/github/CodeScanRule.py index f90b5c8043..03abb5c38a 100644 --- a/github/CodeScanRule.py +++ b/github/CodeScanRule.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -55,15 +56,19 @@ class CodeScanRule(NonCompletableGithubObject): """ def _initAttributes(self) -> None: + self._description: Attribute[str] = NotSet self._id: Attribute[str] = NotSet self._name: Attribute[str] = NotSet - self._severity: Attribute[str] = NotSet self._security_severity_level: Attribute[str] = NotSet - self._description: Attribute[str] = NotSet + self._severity: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self.id, "name": self.name}) + @property + def description(self) -> str: + return self._description.value + @property def id(self) -> str: return self._id.value @@ -72,26 +77,22 @@ def id(self) -> str: def name(self) -> str: return self._name.value - @property - def severity(self) -> str: - return self._severity.value - @property def security_severity_level(self) -> str: return self._security_severity_level.value @property - def description(self) -> str: - return self._description.value + def severity(self) -> str: + return self._severity.value def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "description" in attributes: # pragma no branch + self._description = self._makeStringAttribute(attributes["description"]) if "id" in attributes: # pragma no branch self._id = self._makeStringAttribute(attributes["id"]) if "name" in attributes: # pragma no branch self._name = self._makeStringAttribute(attributes["name"]) - if "severity" in attributes: # pragma no branch - self._severity = self._makeStringAttribute(attributes["severity"]) if "security_severity_level" in attributes: # pragma no branch self._security_severity_level = self._makeStringAttribute(attributes["security_severity_level"]) - if "description" in attributes: # pragma no branch - self._description = self._makeStringAttribute(attributes["description"]) + if "severity" in attributes: # pragma no branch + self._severity = self._makeStringAttribute(attributes["severity"]) diff --git a/github/CodeScanTool.py b/github/CodeScanTool.py index d3575e04ab..40843b6169 100644 --- a/github/CodeScanTool.py +++ b/github/CodeScanTool.py @@ -18,6 +18,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -52,9 +53,9 @@ class CodeScanTool(NonCompletableGithubObject): """ def _initAttributes(self) -> None: + self._guid: Attribute[str] = NotSet self._name: Attribute[str] = NotSet self._version: Attribute[str] = NotSet - self._guid: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__( @@ -65,6 +66,10 @@ def __repr__(self) -> str: } ) + @property + def guid(self) -> str: + return self._guid.value + @property def name(self) -> str: return self._name.value @@ -73,14 +78,10 @@ def name(self) -> str: def version(self) -> str: return self._version.value - @property - def guid(self) -> str: - return self._guid.value - def _useAttributes(self, attributes: Dict[str, Any]) -> None: + if "guid" in attributes: # pragma no branch + self._guid = self._makeStringAttribute(attributes["guid"]) if "name" in attributes: # pragma no branch self._name = self._makeStringAttribute(attributes["name"]) if "version" in attributes: # pragma no branch self._version = self._makeStringAttribute(attributes["version"]) - if "guid" in attributes: # pragma no branch - self._guid = self._makeStringAttribute(attributes["guid"]) diff --git a/github/CodeSecurityConfig.py b/github/CodeSecurityConfig.py new file mode 100644 index 0000000000..cefca6d264 --- /dev/null +++ b/github/CodeSecurityConfig.py @@ -0,0 +1,217 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2025 Bill Napier # +# Copyright 2025 Enrico Minack # +# # +# 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 . # +# # +################################################################################ + +from __future__ import annotations + +from datetime import datetime +from typing import Any + +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class CodeSecurityConfig(NonCompletableGithubObject): + """ + This class represents Configurations for Code Security. + + The reference can be found here + https://docs.github.com/en/rest/code-security/configurations. + + """ + + def _initAttributes(self) -> None: + self._id: Attribute[int] = NotSet + self._name: Attribute[str] = NotSet + self._advanced_security: Attribute[str] = NotSet + self._code_scanning_default_setup: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._dependabot_alerts: Attribute[str] = NotSet + self._dependabot_security_updates: Attribute[str] = NotSet + self._dependency_graph: Attribute[str] = NotSet + self._dependency_graph_autosubmit_action: Attribute[str] = NotSet + self._description: Attribute[str] = NotSet + self._enforcement: Attribute[str] = NotSet + self._html_url: Attribute[str] = NotSet + self._private_vulnerability_reporting: Attribute[str] = NotSet + self._secret_scanning: Attribute[str] = NotSet + self._secret_scanning_delegated_bypass: Attribute[str] = NotSet + self._secret_scanning_non_provider_patterns: Attribute[str] = NotSet + self._secret_scanning_push_protection: Attribute[str] = NotSet + self._secret_scanning_validity_checks: Attribute[str] = NotSet + self._target_type: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet + + def __repr__(self) -> str: + return self.get__repr__( + { + "id": self.id, + "name": self.name, + "description": self.description, + } + ) + + @property + def advanced_security(self) -> str: + return self._advanced_security.value + + @property + def code_scanning_default_setup(self) -> str: + return self._code_scanning_default_setup.value + + @property + def created_at(self) -> datetime: + return self._created_at.value + + @property + def dependabot_alerts(self) -> str: + return self._dependabot_alerts.value + + @property + def dependabot_security_updates(self) -> str: + return self._dependabot_security_updates.value + + @property + def dependency_graph(self) -> str: + return self._dependency_graph.value + + @property + def dependency_graph_autosubmit_action(self) -> str: + return self._dependency_graph_autosubmit_action.value + + @property + def description(self) -> str: + return self._description.value + + @property + def enforcement(self) -> str: + return self._enforcement.value + + @property + def html_url(self) -> str: + return self._html_url.value + + @property + def id(self) -> int: + return self._id.value + + @property + def name(self) -> str: + return self._name.value + + @property + def private_vulnerability_reporting(self) -> str: + return self._private_vulnerability_reporting.value + + @property + def secret_scanning(self) -> str: + return self._secret_scanning.value + + @property + def secret_scanning_delegated_bypass(self) -> str: + return self._secret_scanning_delegated_bypass.value + + @property + def secret_scanning_non_provider_patterns(self) -> str: + return self._secret_scanning_non_provider_patterns.value + + @property + def secret_scanning_push_protection(self) -> str: + return self._secret_scanning_push_protection.value + + @property + def secret_scanning_validity_checks(self) -> str: + return self._secret_scanning_validity_checks.value + + @property + def target_type(self) -> str: + return self._target_type.value + + @property + def updated_at(self) -> datetime: + return self._updated_at.value + + @property + def url(self) -> str: + return self._url.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "advanced_security" in attributes: # pragma no branch + self._advanced_security = self._makeStringAttribute(attributes["advanced_security"]) + if "code_scanning_default_setup" in attributes: # pragma no branch + self._code_scanning_default_setup = self._makeStringAttribute(attributes["code_scanning_default_setup"]) + 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 "dependabot_alerts" in attributes: # pragma no branch + self._dependabot_alerts = self._makeStringAttribute(attributes["dependabot_alerts"]) + if "dependabot_security_updates" in attributes: # pragma no branch + self._dependabot_security_updates = self._makeStringAttribute(attributes["dependabot_security_updates"]) + if "dependency_graph" in attributes: # pragma no branch + self._dependency_graph = self._makeStringAttribute(attributes["dependency_graph"]) + if "dependency_graph_autosubmit_action" in attributes: # pragma no branch + self._dependency_graph_autosubmit_action = self._makeStringAttribute( + attributes["dependency_graph_autosubmit_action"] + ) + if "description" in attributes: # pragma no branch + self._description = self._makeStringAttribute(attributes["description"]) + if "enforcement" in attributes: # pragma no branch + self._enforcement = self._makeStringAttribute(attributes["enforcement"]) + if "html_url" in attributes: # pragma no branch + self._html_url = self._makeStringAttribute(attributes["html_url"]) + 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 "private_vulnerability_reporting" in attributes: # pragma no branch + self._private_vulnerability_reporting = self._makeStringAttribute( + attributes["private_vulnerability_reporting"] + ) + if "secret_scanning" in attributes: # pragma no branch + self._secret_scanning = self._makeStringAttribute(attributes["secret_scanning"]) + if "secret_scanning_delegated_bypass" in attributes: # pragma no branch + self._secret_scanning_delegated_bypass = self._makeStringAttribute( + attributes["secret_scanning_delegated_bypass"] + ) + if "secret_scanning_non_provider_patterns" in attributes: # pragma no branch + self._secret_scanning_non_provider_patterns = self._makeStringAttribute( + attributes["secret_scanning_non_provider_patterns"] + ) + if "secret_scanning_push_protection" in attributes: # pragma no branch + self._secret_scanning_push_protection = self._makeStringAttribute( + attributes["secret_scanning_push_protection"] + ) + if "secret_scanning_validity_checks" in attributes: # pragma no branch + self._secret_scanning_validity_checks = self._makeStringAttribute( + attributes["secret_scanning_validity_checks"] + ) + if "target_type" in attributes: # pragma no branch + self._target_type = self._makeStringAttribute(attributes["target_type"]) + 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"]) diff --git a/github/CodeSecurityConfigRepository.py b/github/CodeSecurityConfigRepository.py new file mode 100644 index 0000000000..e799b1d0fb --- /dev/null +++ b/github/CodeSecurityConfigRepository.py @@ -0,0 +1,68 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2024 Enrico Minack # +# Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2024 Thomas Cooper # +# Copyright 2025 Enrico Minack # +# # +# 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 . # +# # +################################################################################ + +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + +import github.Repository +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.Repository import Repository + + +class CodeSecurityConfigRepository(NonCompletableGithubObject): + """ + This class represents CodeSecurityConfigRepository. + + The reference can be found here + https://docs.github.com/en/rest/code-security/configurations + + The OpenAPI schema can be found at + - /components/schemas/code-security-configuration-repositories + + """ + + def _initAttributes(self) -> None: + self._repository: Attribute[Repository] = NotSet + self._status: Attribute[str] = NotSet + + def __repr__(self) -> str: + return self.repository.__repr__() + + @property + def repository(self) -> Repository: + return self._repository.value + + @property + def status(self) -> str: + return self._status.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "repository" in attributes: # pragma no branch + self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) + if "status" in attributes: # pragma no branch + self._status = self._makeStringAttribute(attributes["status"]) diff --git a/github/Commit.py b/github/Commit.py index 045a3364b0..ee49f51262 100644 --- a/github/Commit.py +++ b/github/Commit.py @@ -24,6 +24,8 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 iarspider # +# Copyright 2025 Enrico Minack # +# Copyright 2025 xmo-odoo # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -47,6 +49,7 @@ from typing import TYPE_CHECKING, Any +import github.Branch import github.CheckRun import github.CheckSuite import github.CommitCombinedStatus @@ -57,10 +60,12 @@ import github.GitCommit import github.NamedUser import github.PaginatedList +import github.Repository from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt, is_optional from github.PaginatedList import PaginatedList if TYPE_CHECKING: + from github.Branch import Branch from github.CheckRun import CheckRun from github.CheckSuite import CheckSuite from github.CommitCombinedStatus import CommitCombinedStatus @@ -71,6 +76,7 @@ from github.GitCommit import GitCommit from github.NamedUser import NamedUser from github.PullRequest import PullRequest + from github.Repository import Repository class Commit(CompletableGithubObject): @@ -78,7 +84,16 @@ class Commit(CompletableGithubObject): This class represents Commits. The reference can be found here - https://docs.github.com/en/rest/reference/git#commits + https://docs.github.com/en/rest/commits/commits#get-a-commit-object + + The OpenAPI schema can be found at + - /components/schemas/branch-short/properties/commit + - /components/schemas/commit + - /components/schemas/commit-search-result-item + - /components/schemas/commit-search-result-item/properties/parents/items + - /components/schemas/commit/properties/parents/items + - /components/schemas/short-branch/properties/commit + - /components/schemas/tag/properties/commit """ @@ -87,15 +102,24 @@ def _initAttributes(self) -> None: self._comments_url: Attribute[str] = NotSet self._commit: Attribute[GitCommit] = NotSet self._committer: Attribute[NamedUser] = NotSet + self._files: Attribute[list[File]] = NotSet self._html_url: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet self._parents: Attribute[list[Commit]] = NotSet + self._repository: Attribute[Repository] = NotSet + self._score: Attribute[float] = NotSet self._sha: Attribute[str] = NotSet self._stats: Attribute[CommitStats] = NotSet + self._text_matches: Attribute[dict[str, Any]] = NotSet self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value}) + @property + def _identity(self) -> str: + return self.sha + @property def author(self) -> NamedUser: self._completeIfNotSet(self._author) @@ -137,11 +161,26 @@ def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def parents(self) -> list[Commit]: self._completeIfNotSet(self._parents) return self._parents.value + @property + def repository(self) -> Repository: + self._completeIfNotSet(self._repository) + return self._repository.value + + @property + def score(self) -> float: + self._completeIfNotSet(self._score) + return self._score.value + @property def sha(self) -> str: self._completeIfNotSet(self._sha) @@ -152,6 +191,11 @@ def stats(self) -> CommitStats: self._completeIfNotSet(self._stats) return self._stats.value + @property + def text_matches(self) -> dict[str, Any]: + self._completeIfNotSet(self._text_matches) + return self._text_matches.value + @property def url(self) -> str: self._completeIfNotSet(self._url) @@ -204,7 +248,14 @@ def create_status( f"{self._parentUrl(self._parentUrl(self.url))}/statuses/{self.sha}", input=post_parameters, ) - return github.CommitStatus.CommitStatus(self._requester, headers, data, completed=True) + return github.CommitStatus.CommitStatus(self._requester, headers, data) + + def get_branches_where_head(self) -> list[Branch]: + """ + :calls: `GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head `_ + """ + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/branches-where-head") + return [github.Branch.Branch(self._requester, headers, item) for item in data] def get_comments(self) -> PaginatedList[CommitComment]: """ @@ -233,7 +284,7 @@ def get_combined_status(self) -> CommitCombinedStatus: :calls: `GET /repos/{owner}/{repo}/commits/{ref}/status/ `_ """ headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/status") - return github.CommitCombinedStatus.CommitCombinedStatus(self._requester, headers, data, completed=True) + return github.CommitCombinedStatus.CommitCombinedStatus(self._requester, headers, data) def get_pulls(self) -> PaginatedList[PullRequest]: """ @@ -288,10 +339,6 @@ def get_check_suites(self, app_id: Opt[int] = NotSet, check_name: Opt[str] = Not list_item="check_suites", ) - @property - def _identity(self) -> str: - return self.sha - def _useAttributes(self, attributes: dict[str, Any]) -> None: if "author" in attributes: # pragma no branch self._author = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["author"]) @@ -301,13 +348,23 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._commit = self._makeClassAttribute(github.GitCommit.GitCommit, attributes["commit"]) if "committer" in attributes: # pragma no branch self._committer = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["committer"]) + if "files" in attributes: # pragma no branch + self._files = self._makeListOfClassesAttribute(github.File.File, attributes["files"]) if "html_url" in attributes: # pragma no branch self._html_url = self._makeStringAttribute(attributes["html_url"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "parents" in attributes: # pragma no branch self._parents = self._makeListOfClassesAttribute(Commit, attributes["parents"]) + if "repository" in attributes: # pragma no branch + self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) + if "score" in attributes: # pragma no branch + self._score = self._makeFloatAttribute(attributes["score"]) if "sha" in attributes: # pragma no branch self._sha = self._makeStringAttribute(attributes["sha"]) if "stats" in attributes: # pragma no branch self._stats = self._makeClassAttribute(github.CommitStats.CommitStats, attributes["stats"]) + if "text_matches" in attributes: # pragma no branch + self._text_matches = self._makeDictAttribute(attributes["text_matches"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/CommitCombinedStatus.py b/github/CommitCombinedStatus.py index ca48f9c847..6fe62ba54f 100644 --- a/github/CommitCombinedStatus.py +++ b/github/CommitCombinedStatus.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -57,57 +58,57 @@ class CommitCombinedStatus(NonCompletableGithubObject): """ def _initAttributes(self) -> None: - self._state: Attribute[str] = NotSet - self._sha: Attribute[str] = NotSet - self._total_count: Attribute[int] = NotSet self._commit_url: Attribute[str] = NotSet - self._url: Attribute[str] = NotSet self._repository: Attribute[github.Repository.Repository] = NotSet + self._sha: Attribute[str] = NotSet + self._state: Attribute[str] = NotSet self._statuses: Attribute[list[github.CommitStatus.CommitStatus]] = NotSet + self._total_count: Attribute[int] = NotSet + self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value, "state": self._state.value}) @property - def state(self) -> str: - return self._state.value + def commit_url(self) -> str: + return self._commit_url.value @property - def sha(self) -> str: - return self._sha.value + def repository(self) -> github.Repository.Repository: + return self._repository.value @property - def total_count(self) -> int: - return self._total_count.value + def sha(self) -> str: + return self._sha.value @property - def commit_url(self) -> str: - return self._commit_url.value + def state(self) -> str: + return self._state.value @property - def url(self) -> str: - return self._url.value + def statuses(self) -> list[github.CommitStatus.CommitStatus]: + return self._statuses.value @property - def repository(self) -> github.Repository.Repository: - return self._repository.value + def total_count(self) -> int: + return self._total_count.value @property - def statuses(self) -> list[github.CommitStatus.CommitStatus]: - return self._statuses.value + def url(self) -> str: + return self._url.value def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "state" in attributes: # pragma no branch - self._state = self._makeStringAttribute(attributes["state"]) - if "sha" in attributes: # pragma no branch - self._sha = self._makeStringAttribute(attributes["sha"]) - if "total_count" in attributes: # pragma no branch - self._total_count = self._makeIntAttribute(attributes["total_count"]) if "commit_url" in attributes: # pragma no branch self._commit_url = self._makeStringAttribute(attributes["commit_url"]) - if "url" in attributes: # pragma no branch - self._url = self._makeStringAttribute(attributes["url"]) if "repository" in attributes: # pragma no branch self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) + if "sha" in attributes: # pragma no branch + self._sha = self._makeStringAttribute(attributes["sha"]) + if "state" in attributes: # pragma no branch + self._state = self._makeStringAttribute(attributes["state"]) if "statuses" in attributes: # pragma no branch self._statuses = self._makeListOfClassesAttribute(github.CommitStatus.CommitStatus, attributes["statuses"]) + if "total_count" in attributes: # pragma no branch + self._total_count = self._makeIntAttribute(attributes["total_count"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/CommitComment.py b/github/CommitComment.py index 88c07db734..f1fcb48376 100644 --- a/github/CommitComment.py +++ b/github/CommitComment.py @@ -22,6 +22,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -63,17 +64,23 @@ class CommitComment(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#comments + The OpenAPI schema can be found at + - /components/schemas/commit-comment + """ def _initAttributes(self) -> None: + self._author_association: Attribute[str] = NotSet self._body: Attribute[str] = NotSet self._commit_id: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet self._html_url: Attribute[str] = NotSet self._id: Attribute[int] = NotSet self._line: Attribute[int] = NotSet + self._node_id: Attribute[str] = NotSet self._path: Attribute[str] = NotSet self._position: Attribute[int] = NotSet + self._reactions: Attribute[dict[str, Any]] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet self._user: Attribute[github.NamedUser.NamedUser] = NotSet @@ -81,6 +88,11 @@ def _initAttributes(self) -> None: def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "user": self.user}) + @property + def author_association(self) -> str: + self._completeIfNotSet(self._author_association) + return self._author_association.value + @property def body(self) -> str: self._completeIfNotSet(self._body) @@ -111,6 +123,11 @@ def line(self) -> int: self._completeIfNotSet(self._line) return self._line.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def path(self) -> str: self._completeIfNotSet(self._path) @@ -121,6 +138,11 @@ def position(self) -> int: self._completeIfNotSet(self._position) return self._position.value + @property + def reactions(self) -> dict[str, Any]: + self._completeIfNotSet(self._reactions) + return self._reactions.value + @property def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) @@ -201,6 +223,8 @@ def delete_reaction(self, reaction_id: int) -> bool: return status == 204 def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "author_association" in attributes: # pragma no branch + self._author_association = self._makeStringAttribute(attributes["author_association"]) if "body" in attributes: # pragma no branch self._body = self._makeStringAttribute(attributes["body"]) if "commit_id" in attributes: # pragma no branch @@ -213,10 +237,14 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._id = self._makeIntAttribute(attributes["id"]) if "line" in attributes: # pragma no branch self._line = self._makeIntAttribute(attributes["line"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "path" in attributes: # pragma no branch self._path = self._makeStringAttribute(attributes["path"]) if "position" in attributes: # pragma no branch self._position = self._makeIntAttribute(attributes["position"]) + if "reactions" in attributes: # pragma no branch + self._reactions = self._makeDictAttribute(attributes["reactions"]) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch diff --git a/github/CommitStats.py b/github/CommitStats.py index 263cea8ad1..1b5a61ce65 100644 --- a/github/CommitStats.py +++ b/github/CommitStats.py @@ -13,6 +13,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Trim21 # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -40,12 +41,17 @@ class CommitStats(NonCompletableGithubObject): """ This class represents CommitStats. + + The OpenAPI schema can be found at + - /components/schemas/commit/properties/stats + - /components/schemas/gist-history/properties/change_status + """ def _initAttributes(self) -> None: - self._total: Attribute[int] = NotSet - self._deletions: Attribute[int] = NotSet self._additions: Attribute[int] = NotSet + self._deletions: Attribute[int] = NotSet + self._total: Attribute[int] = NotSet @property def additions(self) -> int: diff --git a/github/CommitStatus.py b/github/CommitStatus.py index 654d488717..df16e49716 100644 --- a/github/CommitStatus.py +++ b/github/CommitStatus.py @@ -18,6 +18,7 @@ # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2023 Trim21 # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -50,15 +51,21 @@ class CommitStatus(NonCompletableGithubObject): """ This class represents CommitStatuses.The reference can be found here https://docs.github.com/en/rest/reference/repos#statuses + + The OpenAPI schema can be found at + - /components/schemas/status + """ def _initAttributes(self) -> None: + self._avatar_url: Attribute[str] = NotSet + self._context: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet self._creator: Attribute[github.NamedUser.NamedUser] = NotSet self._description: Attribute[str] = NotSet self._id: Attribute[int] = NotSet + self._node_id: Attribute[str] = NotSet self._state: Attribute[str] = NotSet - self._context: Attribute[str] = NotSet self._target_url: Attribute[str] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet @@ -72,6 +79,14 @@ def __repr__(self) -> str: } ) + @property + def avatar_url(self) -> str: + return self._avatar_url.value + + @property + def context(self) -> str: + return self._context.value + @property def created_at(self) -> datetime: return self._created_at.value @@ -89,12 +104,12 @@ def id(self) -> int: return self._id.value @property - def state(self) -> str: - return self._state.value + def node_id(self) -> str: + return self._node_id.value @property - def context(self) -> str: - return self._context.value + def state(self) -> str: + return self._state.value @property def target_url(self) -> str: @@ -109,6 +124,10 @@ def url(self) -> str: return self._url.value def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "avatar_url" in attributes: # pragma no branch + self._avatar_url = self._makeStringAttribute(attributes["avatar_url"]) + if "context" in attributes: # pragma no branch + self._context = self._makeStringAttribute(attributes["context"]) if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "creator" in attributes: # pragma no branch @@ -117,10 +136,10 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._description = self._makeStringAttribute(attributes["description"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "state" in attributes: # pragma no branch self._state = self._makeStringAttribute(attributes["state"]) - if "context" in attributes: # pragma no branch - self._context = self._makeStringAttribute(attributes["context"]) if "target_url" in attributes: # pragma no branch self._target_url = self._makeStringAttribute(attributes["target_url"]) if "updated_at" in attributes: # pragma no branch diff --git a/github/ContentFile.py b/github/ContentFile.py index f0b0e3106a..d3fd49c722 100644 --- a/github/ContentFile.py +++ b/github/ContentFile.py @@ -22,6 +22,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -44,13 +45,17 @@ from __future__ import annotations import base64 +from datetime import datetime from typing import TYPE_CHECKING, Any +import github.GitCommit import github.GithubObject +import github.License import github.Repository from github.GithubObject import Attribute, CompletableGithubObject, NotSet, _ValuedAttribute if TYPE_CHECKING: + from github.GitCommit import GitCommit from github.License import License from github.Repository import Repository @@ -62,27 +67,55 @@ class ContentFile(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#contents + The OpenAPI schema can be found at + - /components/schemas/code-search-result-item + - /components/schemas/content-directory + - /components/schemas/content-file + - /components/schemas/content-submodule + - /components/schemas/content-symlink + - /components/schemas/file-commit + - /components/schemas/license-content + """ def _initAttributes(self) -> None: + self.__links: Attribute[dict[str, Any]] = NotSet + self._commit: Attribute[GitCommit] = NotSet self._content: Attribute[str] = NotSet self._download_url: Attribute[str] = NotSet self._encoding: Attribute[str] = NotSet + self._file_size: Attribute[int] = NotSet self._git_url: Attribute[str] = NotSet self._html_url: Attribute[str] = NotSet + self._language: Attribute[str] = NotSet + self._last_modified_at: Attribute[datetime] = NotSet self._license: Attribute[License] = NotSet + self._line_numbers: Attribute[list[str]] = NotSet self._name: Attribute[str] = NotSet self._path: Attribute[str] = NotSet self._repository: Attribute[Repository] = NotSet + self._score: Attribute[float] = NotSet self._sha: Attribute[str] = NotSet self._size: Attribute[int] = NotSet + self._submodule_git_url: Attribute[str] = NotSet + self._target: Attribute[str] = NotSet + self._text_matches: Attribute[str] = NotSet self._type: Attribute[str] = NotSet self._url: Attribute[str] = NotSet - self._text_matches: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"path": self._path.value}) + @property + def _links(self) -> dict[str, Any]: + self._completeIfNotSet(self.__links) + return self.__links.value + + @property + def commit(self) -> GitCommit: + self._completeIfNotSet(self._commit) + return self._commit.value + @property def content(self) -> str: self._completeIfNotSet(self._content) @@ -103,6 +136,11 @@ def encoding(self) -> str: self._completeIfNotSet(self._encoding) return self._encoding.value + @property + def file_size(self) -> int: + self._completeIfNotSet(self._file_size) + return self._file_size.value + @property def git_url(self) -> str: self._completeIfNotSet(self._git_url) @@ -113,11 +151,26 @@ def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value + @property + def language(self) -> str: + self._completeIfNotSet(self._language) + return self._language.value + + @property + def last_modified_at(self) -> datetime: + self._completeIfNotSet(self._last_modified_at) + return self._last_modified_at.value + @property def license(self) -> License: self._completeIfNotSet(self._license) return self._license.value + @property + def line_numbers(self) -> list[str]: + self._completeIfNotSet(self._line_numbers) + return self._line_numbers.value + @property def name(self) -> str: self._completeIfNotSet(self._name) @@ -138,6 +191,11 @@ def repository(self) -> Repository: ) # pragma no cover (Should be covered) return self._repository.value + @property + def score(self) -> float: + self._completeIfNotSet(self._score) + return self._score.value + @property def sha(self) -> str: self._completeIfNotSet(self._sha) @@ -148,6 +206,21 @@ def size(self) -> int: self._completeIfNotSet(self._size) return self._size.value + @property + def submodule_git_url(self) -> str: + self._completeIfNotSet(self._submodule_git_url) + return self._submodule_git_url.value + + @property + def target(self) -> str: + self._completeIfNotSet(self._target) + return self._target.value + + @property + def text_matches(self) -> str: + self._completeIfNotSet(self._text_matches) + return self._text_matches.value + @property def type(self) -> str: self._completeIfNotSet(self._type) @@ -158,37 +231,50 @@ def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - @property - def text_matches(self) -> str: - self._completeIfNotSet(self._text_matches) - return self._text_matches.value - def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "_links" in attributes: # pragma no branch + self.__links = self._makeDictAttribute(attributes["_links"]) + if "commit" in attributes: # pragma no branch + self._commit = self._makeClassAttribute(github.GitCommit.GitCommit, attributes["commit"]) if "content" in attributes: # pragma no branch self._content = self._makeStringAttribute(attributes["content"]) if "download_url" in attributes: # pragma no branch self._download_url = self._makeStringAttribute(attributes["download_url"]) if "encoding" in attributes: # pragma no branch self._encoding = self._makeStringAttribute(attributes["encoding"]) + if "file_size" in attributes: # pragma no branch + self._file_size = self._makeIntAttribute(attributes["file_size"]) if "git_url" in attributes: # pragma no branch self._git_url = self._makeStringAttribute(attributes["git_url"]) if "html_url" in attributes: # pragma no branch self._html_url = self._makeStringAttribute(attributes["html_url"]) + if "language" in attributes: # pragma no branch + self._language = self._makeStringAttribute(attributes["language"]) + if "last_modified_at" in attributes: # pragma no branch + self._last_modified_at = self._makeDatetimeAttribute(attributes["last_modified_at"]) if "license" in attributes: # pragma no branch self._license = self._makeClassAttribute(github.License.License, attributes["license"]) + if "line_numbers" in attributes: # pragma no branch + self._line_numbers = self._makeListOfStringsAttribute(attributes["line_numbers"]) if "name" in attributes: # pragma no branch self._name = self._makeStringAttribute(attributes["name"]) if "path" in attributes: # pragma no branch self._path = self._makeStringAttribute(attributes["path"]) if "repository" in attributes: # pragma no branch self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) + if "score" in attributes: # pragma no branch + self._score = self._makeFloatAttribute(attributes["score"]) if "sha" in attributes: # pragma no branch self._sha = self._makeStringAttribute(attributes["sha"]) if "size" in attributes: # pragma no branch self._size = self._makeIntAttribute(attributes["size"]) + if "submodule_git_url" in attributes: # pragma no branch + self._submodule_git_url = self._makeStringAttribute(attributes["submodule_git_url"]) + if "target" in attributes: # pragma no branch + self._target = self._makeStringAttribute(attributes["target"]) + if "text_matches" in attributes: # pragma no branch + self._text_matches = self._makeListOfDictsAttribute(attributes["text_matches"]) if "type" in attributes: # pragma no branch self._type = self._makeStringAttribute(attributes["type"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) - if "text_matches" in attributes: # pragma no branch - self._text_matches = self._makeListOfDictsAttribute(attributes["text_matches"]) diff --git a/github/Copilot.py b/github/Copilot.py new file mode 100644 index 0000000000..ab63752192 --- /dev/null +++ b/github/Copilot.py @@ -0,0 +1,96 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2024 Pasha Fateev # +# Copyright 2025 Enrico Minack # +# # +# 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 . # +# # +################################################################################ + +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + +import github.CopilotSeat +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet +from github.PaginatedList import PaginatedList + +if TYPE_CHECKING: + from github.CopilotSeat import CopilotSeat + from github.Requester import Requester + + +class Copilot(NonCompletableGithubObject): + def __init__(self, requester: Requester, org_name: str) -> None: + super().__init__(requester, {}, {"org_name": org_name}) + + def _initAttributes(self) -> None: + self._org_name: Attribute[str] = NotSet + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "org_name" in attributes: # pragma no branch + self._org_name = self._makeStringAttribute(attributes["org_name"]) + + def __repr__(self) -> str: + return self.get__repr__({"org_name": self._org_name.value if self._org_name is not NotSet else NotSet}) + + @property + def org_name(self) -> str: + return self._org_name.value + + def get_seats(self) -> PaginatedList[CopilotSeat]: + """ + :calls: `GET /orgs/{org}/copilot/billing/seats `_ + """ + url = f"/orgs/{self._org_name.value}/copilot/billing/seats" + return PaginatedList( + github.CopilotSeat.CopilotSeat, + self._requester, + url, + None, + list_item="seats", + ) + + def add_seats(self, selected_usernames: list[str]) -> int: + """ + :calls: `POST /orgs/{org}/copilot/billing/selected_users `_ + :param selected_usernames: List of usernames to add Copilot seats for + :rtype: int + :return: Number of seats created + """ + url = f"/orgs/{self._org_name.value}/copilot/billing/selected_users" + _, data = self._requester.requestJsonAndCheck( + "POST", + url, + input={"selected_usernames": selected_usernames}, + ) + return data["seats_created"] + + def remove_seats(self, selected_usernames: list[str]) -> int: + """ + :calls: `DELETE /orgs/{org}/copilot/billing/selected_users `_ + :param selected_usernames: List of usernames to remove Copilot seats for + :rtype: int + :return: Number of seats cancelled + """ + url = f"/orgs/{self._org_name.value}/copilot/billing/selected_users" + _, data = self._requester.requestJsonAndCheck( + "DELETE", + url, + input={"selected_usernames": selected_usernames}, + ) + return data["seats_cancelled"] diff --git a/github/CopilotSeat.py b/github/CopilotSeat.py new file mode 100644 index 0000000000..ef2158c669 --- /dev/null +++ b/github/CopilotSeat.py @@ -0,0 +1,96 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2024 Pasha Fateev # +# Copyright 2025 Enrico Minack # +# # +# 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 . # +# # +################################################################################ + +from __future__ import annotations + +from datetime import datetime +from typing import Any + +import github.NamedUser +import github.Team +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet, _NotSetType + + +class CopilotSeat(NonCompletableGithubObject): + def _initAttributes(self) -> None: + self._created_at: Attribute[datetime] | _NotSetType = NotSet + self._updated_at: Attribute[datetime] | _NotSetType = NotSet + self._pending_cancellation_date: Attribute[datetime] | _NotSetType = NotSet + self._last_activity_at: Attribute[datetime] | _NotSetType = NotSet + self._last_activity_editor: Attribute[str] | _NotSetType = NotSet + self._plan_type: Attribute[str] | _NotSetType = NotSet + self._assignee: Attribute[github.NamedUser.NamedUser] | _NotSetType = NotSet + self._assigning_team: Attribute[github.Team.Team] | _NotSetType = NotSet + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "created_at" in attributes: + self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "updated_at" in attributes: + self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) + if "pending_cancellation_date" in attributes: + self._pending_cancellation_date = self._makeDatetimeAttribute(attributes["pending_cancellation_date"]) + if "last_activity_at" in attributes: + self._last_activity_at = self._makeDatetimeAttribute(attributes["last_activity_at"]) + if "last_activity_editor" in attributes: + self._last_activity_editor = self._makeStringAttribute(attributes["last_activity_editor"]) + if "plan_type" in attributes: + self._plan_type = self._makeStringAttribute(attributes["plan_type"]) + if "assignee" in attributes: + self._assignee = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["assignee"]) + if "assigning_team" in attributes: + self._assigning_team = self._makeClassAttribute(github.Team.Team, attributes["assigning_team"]) + + def __repr__(self) -> str: + return self.get__repr__({"assignee": self._assignee.value}) + + @property + def created_at(self) -> datetime: + return self._created_at.value + + @property + def updated_at(self) -> datetime: + return self._updated_at.value + + @property + def pending_cancellation_date(self) -> datetime: + return self._pending_cancellation_date.value + + @property + def last_activity_at(self) -> datetime: + return self._last_activity_at.value + + @property + def last_activity_editor(self) -> str: + return self._last_activity_editor.value + + @property + def plan_type(self) -> str: + return self._plan_type.value + + @property + def assignee(self) -> github.NamedUser.NamedUser: + return self._assignee.value + + @property + def assigning_team(self) -> github.Team.Team: + return self._assigning_team.value diff --git a/github/DefaultCodeSecurityConfig.py b/github/DefaultCodeSecurityConfig.py new file mode 100644 index 0000000000..dabdb71335 --- /dev/null +++ b/github/DefaultCodeSecurityConfig.py @@ -0,0 +1,84 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Justin Kufro # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # +# Copyright 2024 Enrico Minack # +# Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Bill Napier # +# Copyright 2025 Enrico Minack # +# # +# 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 . # +# # +################################################################################ + +from __future__ import annotations + +from typing import Any + +import github.CodeSecurityConfig +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class DefaultCodeSecurityConfig(NonCompletableGithubObject): + """ + This class represents a Default Configurations for Code Security. + + The reference can be found here + https://docs.github.com/en/rest/code-security/configurations. + + """ + + def _initAttributes(self) -> None: + self._configuration: Attribute[github.CodeSecurityConfig.CodeSecurityConfig] = NotSet + self._default_for_new_repos: Attribute[str] = NotSet + + def __repr__(self) -> str: + return self.get__repr__( + { + "default_for_new_repos": self.default_for_new_repos, + } + ) + + @property + def configuration(self) -> github.CodeSecurityConfig.CodeSecurityConfig: + return self._configuration.value + + @property + def default_for_new_repos(self) -> str: + return self._default_for_new_repos.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "configuration" in attributes: # pragma no branch + self._configuration = self._makeClassAttribute( + github.CodeSecurityConfig.CodeSecurityConfig, attributes["configuration"] + ) + if "default_for_new_repos" in attributes: # pragma no branch + self._default_for_new_repos = self._makeStringAttribute(attributes["default_for_new_repos"]) diff --git a/github/DependabotAlert.py b/github/DependabotAlert.py index 11b99261c7..96cfc616c4 100644 --- a/github/DependabotAlert.py +++ b/github/DependabotAlert.py @@ -3,6 +3,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Thomas Cooper # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -48,92 +49,114 @@ class DependabotAlert(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/dependabot/alerts + The OpenAPI schema can be found at + - /components/schemas/dependabot-alert + """ def _initAttributes(self) -> None: - self._number: Attribute[int] = NotSet - self._state: Attribute[str] = NotSet - self._dependency: Attribute[DependabotAlertDependency] = NotSet - self._security_advisory: Attribute[DependabotAlertAdvisory] = NotSet - self._security_vulnerability: Attribute[DependabotAlertVulnerability] = NotSet - self._url: Attribute[str] = NotSet - self._html_url: Attribute[str] = NotSet + self._auto_dismissed_at: Attribute[datetime] = NotSet self._created_at: Attribute[datetime] = NotSet - self._updated_at: Attribute[datetime] = NotSet + self._dependency: Attribute[DependabotAlertDependency] = NotSet self._dismissed_at: Attribute[datetime | None] = NotSet self._dismissed_by: Attribute[NamedUser | None] = NotSet - self._dismissed_reason: Attribute[str | None] = NotSet self._dismissed_comment: Attribute[str | None] = NotSet + self._dismissed_reason: Attribute[str | None] = NotSet self._fixed_at: Attribute[str] = NotSet + self._html_url: Attribute[str] = NotSet + self._number: Attribute[int] = NotSet + self._security_advisory: Attribute[DependabotAlertAdvisory] = NotSet + self._security_vulnerability: Attribute[DependabotAlertVulnerability] = NotSet + self._state: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"number": self.number, "ghsa_id": self.security_advisory.ghsa_id}) @property - def number(self) -> int: - return self._number.value + def auto_dismissed_at(self) -> datetime: + return self._auto_dismissed_at.value @property - def state(self) -> str: - return self._state.value + def created_at(self) -> datetime: + return self._created_at.value @property def dependency(self) -> DependabotAlertDependency: return self._dependency.value @property - def security_advisory(self) -> DependabotAlertAdvisory: - return self._security_advisory.value + def dismissed_at(self) -> datetime | None: + return self._dismissed_at.value @property - def security_vulnerability(self) -> DependabotAlertVulnerability: - return self._security_vulnerability.value + def dismissed_by(self) -> NamedUser | None: + return self._dismissed_by.value @property - def url(self) -> str: - return self._url.value + def dismissed_comment(self) -> str | None: + return self._dismissed_comment.value @property - def html_url(self) -> str: - return self._html_url.value + def dismissed_reason(self) -> str | None: + return self._dismissed_reason.value @property - def created_at(self) -> datetime: - return self._created_at.value + def fixed_at(self) -> str | None: + return self._fixed_at.value @property - def updated_at(self) -> datetime: - return self._updated_at.value + def html_url(self) -> str: + return self._html_url.value @property - def dismissed_at(self) -> datetime | None: - return self._dismissed_at.value + def number(self) -> int: + return self._number.value @property - def dismissed_by(self) -> NamedUser | None: - return self._dismissed_by.value + def security_advisory(self) -> DependabotAlertAdvisory: + return self._security_advisory.value @property - def dismissed_reason(self) -> str | None: - return self._dismissed_reason.value + def security_vulnerability(self) -> DependabotAlertVulnerability: + return self._security_vulnerability.value @property - def dismissed_comment(self) -> str | None: - return self._dismissed_comment.value + def state(self) -> str: + return self._state.value @property - def fixed_at(self) -> str | None: - return self._fixed_at.value + def updated_at(self) -> datetime: + return self._updated_at.value + + @property + def url(self) -> str: + return self._url.value def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "number" in attributes: - self._number = self._makeIntAttribute(attributes["number"]) - if "state" in attributes: - self._state = self._makeStringAttribute(attributes["state"]) + if "auto_dismissed_at" in attributes: # pragma no branch + self._auto_dismissed_at = self._makeDatetimeAttribute(attributes["auto_dismissed_at"]) + if "created_at" in attributes: + self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "dependency" in attributes: self._dependency = self._makeClassAttribute( github.DependabotAlertDependency.DependabotAlertDependency, attributes["dependency"] ) + if "dismissed_at" in attributes: + self._dismissed_at = self._makeDatetimeAttribute(attributes["dismissed_at"]) + if "dismissed_by" in attributes: + self._dismissed_by = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["dismissed_by"]) + if "dismissed_comment" in attributes: + self._dismissed_comment = self._makeStringAttribute(attributes["dismissed_comment"]) + if "dismissed_reason" in attributes: + self._dismissed_reason = self._makeStringAttribute(attributes["dismissed_reason"]) + if "fixed_at" in attributes: + self._fixed_at = self._makeStringAttribute(attributes["fixed_at"]) + if "html_url" in attributes: + self._html_url = self._makeStringAttribute(attributes["html_url"]) + if "number" in attributes: + self._number = self._makeIntAttribute(attributes["number"]) if "security_advisory" in attributes: self._security_advisory = self._makeClassAttribute( github.DependabotAlertAdvisory.DependabotAlertAdvisory, attributes["security_advisory"] @@ -142,21 +165,9 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._security_vulnerability = self._makeClassAttribute( github.DependabotAlertVulnerability.DependabotAlertVulnerability, attributes["security_vulnerability"] ) - if "url" in attributes: - self._url = self._makeStringAttribute(attributes["url"]) - if "html_url" in attributes: - self._html_url = self._makeStringAttribute(attributes["html_url"]) - if "created_at" in attributes: - self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "state" in attributes: + self._state = self._makeStringAttribute(attributes["state"]) if "updated_at" in attributes: self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) - if "dismissed_at" in attributes: - self._dismissed_at = self._makeDatetimeAttribute(attributes["dismissed_at"]) - if "dismissed_by" in attributes: - self._dismissed_by = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["dismissed_by"]) - if "dismissed_reason" in attributes: - self._dismissed_reason = self._makeStringAttribute(attributes["dismissed_reason"]) - if "dismissed_comment" in attributes: - self._dismissed_comment = self._makeStringAttribute(attributes["dismissed_comment"]) - if "fixed_at" in attributes: - self._fixed_at = self._makeStringAttribute(attributes["fixed_at"]) + if "url" in attributes: + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/DependabotAlertAdvisory.py b/github/DependabotAlertAdvisory.py index 0e5704b157..b269bec2e2 100644 --- a/github/DependabotAlertAdvisory.py +++ b/github/DependabotAlertAdvisory.py @@ -3,6 +3,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Thomas Cooper # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,21 +27,24 @@ from typing import TYPE_CHECKING, Any -import github.AdvisoryBase import github.DependabotAlertVulnerability +from github.AdvisoryBase import AdvisoryBase from github.GithubObject import Attribute, NotSet if TYPE_CHECKING: from github.DependabotAlertVulnerability import DependabotAlertVulnerability -class DependabotAlertAdvisory(github.AdvisoryBase.AdvisoryBase): +class DependabotAlertAdvisory(AdvisoryBase): """ This class represents a package flagged by a Dependabot alert that is vulnerable to a parent SecurityAdvisory. The reference can be found here https://docs.github.com/en/rest/dependabot/alerts + The OpenAPI schema can be found at + - /components/schemas/dependabot-alert-security-advisory + """ def _initAttributes(self) -> None: diff --git a/github/DependabotAlertDependency.py b/github/DependabotAlertDependency.py index ac362b1e1f..36fa6b75a2 100644 --- a/github/DependabotAlertDependency.py +++ b/github/DependabotAlertDependency.py @@ -3,6 +3,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Thomas Cooper # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -37,32 +38,43 @@ class DependabotAlertDependency(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/dependabot/alerts + The OpenAPI schema can be found at + - /components/schemas/dependabot-alert/properties/dependency + """ def _initAttributes(self) -> None: - self._package: Attribute[AdvisoryVulnerabilityPackage] = NotSet self._manifest_path: Attribute[str] = NotSet + self._package: Attribute[AdvisoryVulnerabilityPackage] = NotSet self._scope: Attribute[str] = NotSet - @property - def package(self) -> AdvisoryVulnerabilityPackage: - return self._package.value + def __repr__(self) -> str: + return self.get__repr__( + { + "package": self.package, + "manifest_path": self.manifest_path, + } + ) @property def manifest_path(self) -> str: return self._manifest_path.value + @property + def package(self) -> AdvisoryVulnerabilityPackage: + return self._package.value + @property def scope(self) -> str: return self._scope.value def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "manifest_path" in attributes: + self._manifest_path = self._makeStringAttribute(attributes["manifest_path"]) if "package" in attributes: self._package = self._makeClassAttribute( AdvisoryVulnerabilityPackage, attributes["package"], ) - if "manifest_path" in attributes: - self._manifest_path = self._makeStringAttribute(attributes["manifest_path"]) if "scope" in attributes: self._scope = self._makeStringAttribute(attributes["scope"]) diff --git a/github/DependabotAlertVulnerability.py b/github/DependabotAlertVulnerability.py index 425f330214..ea31b7e3de 100644 --- a/github/DependabotAlertVulnerability.py +++ b/github/DependabotAlertVulnerability.py @@ -2,6 +2,7 @@ # # # Copyright 2024 Enrico Minack # # Copyright 2024 Thomas Cooper # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -35,13 +36,24 @@ class DependabotAlertVulnerability(NonCompletableGithubObject): """ A vulnerability represented in a Dependabot alert. + + The OpenAPI schema can be found at + - /components/schemas/dependabot-alert-security-vulnerability + """ def _initAttributes(self) -> None: + self._first_patched_version: Attribute[dict] = NotSet self._package: Attribute[AdvisoryVulnerabilityPackage] = NotSet self._severity: Attribute[str] = NotSet self._vulnerable_version_range: Attribute[str | None] = NotSet - self._first_patched_version: Attribute[dict] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"package": self.package, "severity": self.severity}) + + @property + def first_patched_version(self) -> dict: + return self._first_patched_version.value @property def package(self) -> AdvisoryVulnerabilityPackage: @@ -55,11 +67,11 @@ def severity(self) -> str: def vulnerable_version_range(self) -> str | None: return self._vulnerable_version_range.value - @property - def first_patched_version(self) -> dict: - return self._first_patched_version.value - def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "first_patched_version" in attributes: + self._first_patched_version = self._makeDictAttribute( + attributes["first_patched_version"], + ) if "package" in attributes: self._package = self._makeClassAttribute( github.AdvisoryVulnerabilityPackage.AdvisoryVulnerabilityPackage, @@ -69,7 +81,3 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._severity = self._makeStringAttribute(attributes["severity"]) if "vulnerable_version_range" in attributes: self._vulnerable_version_range = self._makeStringAttribute(attributes["vulnerable_version_range"]) - if "first_patched_version" in attributes: - self._first_patched_version = self._makeDictAttribute( - attributes["first_patched_version"], - ) diff --git a/github/Deployment.py b/github/Deployment.py index 4dcc293a01..c7b02fe4dd 100644 --- a/github/Deployment.py +++ b/github/Deployment.py @@ -23,6 +23,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -45,14 +46,19 @@ from __future__ import annotations from datetime import datetime -from typing import Any +from typing import TYPE_CHECKING, Any import github.Consts import github.DeploymentStatus +import github.GithubApp import github.NamedUser from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt from github.PaginatedList import PaginatedList +if TYPE_CHECKING: + from github.GithubApp import GithubApp + from github.NamedUser import NamedUser + class Deployment(CompletableGithubObject): """ @@ -61,58 +67,64 @@ class Deployment(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#deployments + The OpenAPI schema can be found at + - /components/schemas/deployment + - /components/schemas/deployment-simple + """ def _initAttributes(self) -> None: + self._created_at: Attribute[datetime] = NotSet + self._creator: Attribute[NamedUser] = NotSet + self._description: Attribute[str] = NotSet + self._environment: Attribute[str] = NotSet self._id: Attribute[int] = NotSet + self._node_id: Attribute[str] = NotSet + self._original_environment: Attribute[str] = NotSet + self._payload: Attribute[dict[str, Any]] = NotSet + self._performed_via_github_app: Attribute[GithubApp] = NotSet + self._production_environment: Attribute[bool] = NotSet self._ref: Attribute[str] = NotSet - self._url: Attribute[str] = NotSet + self._repository_url: Attribute[str] = NotSet self._sha: Attribute[str] = NotSet + self._statuses_url: Attribute[str] = NotSet self._task: Attribute[str] = NotSet - self._payload: Attribute[dict[str, Any]] = NotSet - self._original_environment: Attribute[str] = NotSet - self._environment: Attribute[str] = NotSet - self._production_environment: Attribute[bool] = NotSet self._transient_environment: Attribute[bool] = NotSet - self._description: Attribute[str] = NotSet - self._creator: Attribute[github.NamedUser.NamedUser] = NotSet - self._created_at: Attribute[datetime] = NotSet self._updated_at: Attribute[datetime | None] = NotSet - self._statuses_url: Attribute[str] = NotSet - self._repository_url: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "url": self._url.value}) @property - def id(self) -> int: - self._completeIfNotSet(self._id) - return self._id.value + def created_at(self) -> datetime: + self._completeIfNotSet(self._created_at) + return self._created_at.value @property - def ref(self) -> str: - self._completeIfNotSet(self._ref) - return self._ref.value + def creator(self) -> NamedUser: + self._completeIfNotSet(self._creator) + return self._creator.value @property - def url(self) -> str: - self._completeIfNotSet(self._url) - return self._url.value + def description(self) -> str: + self._completeIfNotSet(self._description) + return self._description.value @property - def sha(self) -> str: - self._completeIfNotSet(self._sha) - return self._sha.value + def environment(self) -> str: + self._completeIfNotSet(self._environment) + return self._environment.value @property - def task(self) -> str: - self._completeIfNotSet(self._task) - return self._task.value + def id(self) -> int: + self._completeIfNotSet(self._id) + return self._id.value @property - def payload(self) -> dict[str, Any]: - self._completeIfNotSet(self._payload) - return self._payload.value + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value @property def original_environment(self) -> str: @@ -120,9 +132,14 @@ def original_environment(self) -> str: return self._original_environment.value @property - def environment(self) -> str: - self._completeIfNotSet(self._environment) - return self._environment.value + def payload(self) -> dict[str, Any]: + self._completeIfNotSet(self._payload) + return self._payload.value + + @property + def performed_via_github_app(self) -> GithubApp: + self._completeIfNotSet(self._performed_via_github_app) + return self._performed_via_github_app.value @property def production_environment(self) -> bool: @@ -130,24 +147,34 @@ def production_environment(self) -> bool: return self._production_environment.value @property - def transient_environment(self) -> bool: - self._completeIfNotSet(self._transient_environment) - return self._transient_environment.value + def ref(self) -> str: + self._completeIfNotSet(self._ref) + return self._ref.value @property - def description(self) -> str: - self._completeIfNotSet(self._description) - return self._description.value + def repository_url(self) -> str: + self._completeIfNotSet(self._repository_url) + return self._repository_url.value @property - def creator(self) -> github.NamedUser.NamedUser: - self._completeIfNotSet(self._creator) - return self._creator.value + def sha(self) -> str: + self._completeIfNotSet(self._sha) + return self._sha.value @property - def created_at(self) -> datetime: - self._completeIfNotSet(self._created_at) - return self._created_at.value + def statuses_url(self) -> str: + self._completeIfNotSet(self._statuses_url) + return self._statuses_url.value + + @property + def task(self) -> str: + self._completeIfNotSet(self._task) + return self._task.value + + @property + def transient_environment(self) -> bool: + self._completeIfNotSet(self._transient_environment) + return self._transient_environment.value @property def updated_at(self) -> datetime | None: @@ -155,14 +182,9 @@ def updated_at(self) -> datetime | None: return self._updated_at.value @property - def statuses_url(self) -> str: - self._completeIfNotSet(self._statuses_url) - return self._statuses_url.value - - @property - def repository_url(self) -> str: - self._completeIfNotSet(self._repository_url) - return self._repository_url.value + def url(self) -> str: + self._completeIfNotSet(self._url) + return self._url.value def get_statuses(self) -> PaginatedList[github.DeploymentStatus.DeploymentStatus]: """ @@ -236,35 +258,41 @@ def _get_accept_header() -> str: ) def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "created_at" in attributes: # pragma no branch + self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "creator" in attributes: # pragma no branch + self._creator = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["creator"]) + if "description" in attributes: # pragma no branch + self._description = self._makeStringAttribute(attributes["description"]) + if "environment" in attributes: # pragma no branch + self._environment = self._makeStringAttribute(attributes["environment"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) + if "original_environment" in attributes: # pragma no branch + self._original_environment = self._makeStringAttribute(attributes["original_environment"]) + if "payload" in attributes: # pragma no branch + self._payload = self._makeDictAttribute(attributes["payload"]) + if "performed_via_github_app" in attributes: # pragma no branch + self._performed_via_github_app = self._makeClassAttribute( + github.GithubApp.GithubApp, attributes["performed_via_github_app"] + ) if "production_environment" in attributes: # pragma no branch self._production_environment = self._makeBoolAttribute(attributes["production_environment"]) if "ref" in attributes: # pragma no branch self._ref = self._makeStringAttribute(attributes["ref"]) - if "transient_environment" in attributes: # pragma no branch - self._transient_environment = self._makeBoolAttribute(attributes["transient_environment"]) - if "url" in attributes: # pragma no branch - self._url = self._makeStringAttribute(attributes["url"]) + if "repository_url" in attributes: # pragma no branch + self._repository_url = self._makeStringAttribute(attributes["repository_url"]) if "sha" in attributes: # pragma no branch self._sha = self._makeStringAttribute(attributes["sha"]) + if "statuses_url" in attributes: # pragma no branch + self._statuses_url = self._makeStringAttribute(attributes["statuses_url"]) if "task" in attributes: # pragma no branch self._task = self._makeStringAttribute(attributes["task"]) - if "payload" in attributes: # pragma no branch - self._payload = self._makeDictAttribute(attributes["payload"]) - if "original_environment" in attributes: # pragma no branch - self._original_environment = self._makeStringAttribute(attributes["original_environment"]) - if "environment" in attributes: # pragma no branch - self._environment = self._makeStringAttribute(attributes["environment"]) - if "description" in attributes: # pragma no branch - self._description = self._makeStringAttribute(attributes["description"]) - if "creator" in attributes: # pragma no branch - self._creator = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["creator"]) - if "created_at" in attributes: # pragma no branch - self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "transient_environment" in attributes: # pragma no branch + self._transient_environment = self._makeBoolAttribute(attributes["transient_environment"]) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) - if "statuses_url" in attributes: # pragma no branch - self._statuses_url = self._makeStringAttribute(attributes["statuses_url"]) - if "repository_url" in attributes: # pragma no branch - self._repository_url = self._makeStringAttribute(attributes["repository_url"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/DeploymentStatus.py b/github/DeploymentStatus.py index e7c5296eb3..19eb16b87e 100644 --- a/github/DeploymentStatus.py +++ b/github/DeploymentStatus.py @@ -22,6 +22,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -44,11 +45,16 @@ from __future__ import annotations from datetime import datetime -from typing import Any +from typing import TYPE_CHECKING, Any +import github.GithubApp import github.NamedUser from github.GithubObject import Attribute, CompletableGithubObject, NotSet +if TYPE_CHECKING: + from github.GithubApp import GithubApp + from github.NamedUser import NamedUser + class DeploymentStatus(CompletableGithubObject): """ @@ -57,22 +63,27 @@ class DeploymentStatus(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#deployments + The OpenAPI schema can be found at + - /components/schemas/deployment-status + """ def _initAttributes(self) -> None: self._created_at: Attribute[datetime] = NotSet - self._creator: Attribute[github.NamedUser.NamedUser] = NotSet + self._creator: Attribute[NamedUser] = NotSet self._deployment_url: Attribute[str] = NotSet self._description: Attribute[str] = NotSet self._environment: Attribute[str] = NotSet self._environment_url: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet + self._log_url: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet + self._performed_via_github_app: Attribute[GithubApp] = NotSet self._repository_url: Attribute[str] = NotSet self._state: Attribute[str] = NotSet self._target_url: Attribute[str] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet - self._id: Attribute[int] = NotSet - self._node_id: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "url": self._url.value}) @@ -83,7 +94,7 @@ def created_at(self) -> datetime: return self._created_at.value @property - def creator(self) -> github.NamedUser.NamedUser: + def creator(self) -> NamedUser: self._completeIfNotSet(self._creator) return self._creator.value @@ -107,6 +118,26 @@ def environment_url(self) -> str: self._completeIfNotSet(self._environment_url) return self._environment_url.value + @property + def id(self) -> int: + self._completeIfNotSet(self._id) + return self._id.value + + @property + def log_url(self) -> str: + self._completeIfNotSet(self._log_url) + return self._log_url.value + + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + + @property + def performed_via_github_app(self) -> GithubApp: + self._completeIfNotSet(self._performed_via_github_app) + return self._performed_via_github_app.value + @property def repository_url(self) -> str: self._completeIfNotSet(self._repository_url) @@ -132,25 +163,7 @@ def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - @property - def id(self) -> int: - self._completeIfNotSet(self._id) - return self._id.value - - @property - def node_id(self) -> str: - self._completeIfNotSet(self._node_id) - return self._node_id.value - def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "environment_url" in attributes: # pragma no branch - self._environment_url = self._makeStringAttribute(attributes["environment_url"]) - if "url" in attributes: # pragma no branch - self._url = self._makeStringAttribute(attributes["url"]) - if "id" in attributes: # pragma no branch - self._id = self._makeIntAttribute(attributes["id"]) - if "node_id" in attributes: # pragma no branch - self._node_id = self._makeStringAttribute(attributes["node_id"]) if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "creator" in attributes: # pragma no branch @@ -161,6 +174,18 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._description = self._makeStringAttribute(attributes["description"]) if "environment" in attributes: # pragma no branch self._environment = self._makeStringAttribute(attributes["environment"]) + if "environment_url" in attributes: # pragma no branch + self._environment_url = self._makeStringAttribute(attributes["environment_url"]) + if "id" in attributes: # pragma no branch + self._id = self._makeIntAttribute(attributes["id"]) + if "log_url" in attributes: # pragma no branch + self._log_url = self._makeStringAttribute(attributes["log_url"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) + if "performed_via_github_app" in attributes: # pragma no branch + self._performed_via_github_app = self._makeClassAttribute( + github.GithubApp.GithubApp, attributes["performed_via_github_app"] + ) if "repository_url" in attributes: # pragma no branch self._repository_url = self._makeStringAttribute(attributes["repository_url"]) if "state" in attributes: # pragma no branch @@ -169,3 +194,5 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._target_url = self._makeStringAttribute(attributes["target_url"]) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/Enterprise.py b/github/Enterprise.py index 9edaa0520c..46a382dcb3 100644 --- a/github/Enterprise.py +++ b/github/Enterprise.py @@ -18,6 +18,7 @@ # Copyright 2023 YugoHino # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -55,17 +56,17 @@ class Enterprise(NonCompletableGithubObject): """ + def _initAttributes(self) -> None: + self._enterprise: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + def __init__( self, requester: Requester, enterprise: str, ): enterprise = urllib.parse.quote(enterprise) - super().__init__(requester, {}, {"enterprise": enterprise, "url": f"/enterprises/{enterprise}"}, True) - - def _initAttributes(self) -> None: - self._enterprise: Attribute[str] = NotSet - self._url: Attribute[str] = NotSet + super().__init__(requester, {}, {"enterprise": enterprise, "url": f"/enterprises/{enterprise}"}) def __repr__(self) -> str: return self.get__repr__({"enterprise": self._enterprise.value}) diff --git a/github/EnterpriseConsumedLicenses.py b/github/EnterpriseConsumedLicenses.py index cfcea13a8f..f03e9f10c5 100644 --- a/github/EnterpriseConsumedLicenses.py +++ b/github/EnterpriseConsumedLicenses.py @@ -18,6 +18,7 @@ # Copyright 2023 YugoHino # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -54,14 +55,19 @@ class EnterpriseConsumedLicenses(CompletableGithubObject): """ def _initAttributes(self) -> None: + self._enterprise: Attribute[str] = NotSet self._total_seats_consumed: Attribute[int] = NotSet self._total_seats_purchased: Attribute[int] = NotSet - self._enterprise: Attribute[str] = NotSet self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"enterprise": self._enterprise.value}) + @property + def enterprise(self) -> str: + self._completeIfNotSet(self._enterprise) + return self._enterprise.value + @property def total_seats_consumed(self) -> int: return self._total_seats_consumed.value @@ -70,11 +76,6 @@ def total_seats_consumed(self) -> int: def total_seats_purchased(self) -> int: return self._total_seats_purchased.value - @property - def enterprise(self) -> str: - self._completeIfNotSet(self._enterprise) - return self._enterprise.value - @property def url(self) -> str: self._completeIfNotSet(self._url) @@ -98,11 +99,11 @@ def get_users(self) -> PaginatedList[NamedEnterpriseUser]: ) def _useAttributes(self, attributes: Dict[str, Any]) -> None: + if "enterprise" in attributes: # pragma no branch + self._enterprise = self._makeStringAttribute(attributes["enterprise"]) if "total_seats_consumed" in attributes: # pragma no branch self._total_seats_consumed = self._makeIntAttribute(attributes["total_seats_consumed"]) if "total_seats_purchased" in attributes: # pragma no branch self._total_seats_purchased = self._makeIntAttribute(attributes["total_seats_purchased"]) - if "enterprise" in attributes: # pragma no branch - self._enterprise = self._makeStringAttribute(attributes["enterprise"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/Environment.py b/github/Environment.py index 5a81f93cfe..bf52029ae0 100644 --- a/github/Environment.py +++ b/github/Environment.py @@ -20,6 +20,7 @@ # Copyright 2023 alson # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -68,15 +69,15 @@ class Environment(CompletableGithubObject): def _initAttributes(self) -> None: self._created_at: Attribute[datetime] = NotSet + self._deployment_branch_policy: Attribute[EnvironmentDeploymentBranchPolicy] = NotSet + self._environments_url: Attribute[str] = NotSet self._html_url: Attribute[str] = NotSet self._id: Attribute[int] = NotSet self._name: Attribute[str] = NotSet self._node_id: Attribute[str] = NotSet self._protection_rules: Attribute[list[EnvironmentProtectionRule]] = NotSet self._updated_at: Attribute[datetime] = NotSet - self._environments_url: Attribute[str] = NotSet self._url: Attribute[str] = NotSet - self._deployment_branch_policy: Attribute[EnvironmentDeploymentBranchPolicy] = NotSet def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) @@ -86,6 +87,20 @@ def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value + @property + def deployment_branch_policy( + self, + ) -> EnvironmentDeploymentBranchPolicy: + self._completeIfNotSet(self._deployment_branch_policy) + return self._deployment_branch_policy.value + + @property + def environments_url(self) -> str: + """ + :type: string + """ + return self._environments_url.value + @property def html_url(self) -> str: self._completeIfNotSet(self._html_url) @@ -118,13 +133,6 @@ def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value - @property - def environments_url(self) -> str: - """ - :type: string - """ - return self._environments_url.value - @property def url(self) -> str: """ @@ -135,13 +143,6 @@ def url(self) -> str: self._url = self._makeStringAttribute(self.environments_url + "/" + self.name) return self._url.value - @property - def deployment_branch_policy( - self, - ) -> EnvironmentDeploymentBranchPolicy: - self._completeIfNotSet(self._deployment_branch_policy) - return self._deployment_branch_policy.value - def get_public_key(self) -> PublicKey: """ :calls: `GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key `_ @@ -272,6 +273,13 @@ def delete_variable(self, variable_name: str) -> bool: def _useAttributes(self, attributes: dict[str, Any]) -> None: if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "deployment_branch_policy" in attributes: # pragma no branch + self._deployment_branch_policy = self._makeClassAttribute( + github.EnvironmentDeploymentBranchPolicy.EnvironmentDeploymentBranchPolicy, + attributes["deployment_branch_policy"], + ) + if "environments_url" in attributes: + self._environments_url = self._makeStringAttribute(attributes["environments_url"]) if "html_url" in attributes: # pragma no branch self._html_url = self._makeStringAttribute(attributes["html_url"]) if "id" in attributes: # pragma no branch @@ -287,12 +295,5 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: ) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) - if "environments_url" in attributes: - self._environments_url = self._makeStringAttribute(attributes["environments_url"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) - if "deployment_branch_policy" in attributes: # pragma no branch - self._deployment_branch_policy = self._makeClassAttribute( - github.EnvironmentDeploymentBranchPolicy.EnvironmentDeploymentBranchPolicy, - attributes["deployment_branch_policy"], - ) diff --git a/github/EnvironmentDeploymentBranchPolicy.py b/github/EnvironmentDeploymentBranchPolicy.py index 3e023f576f..55bade6132 100644 --- a/github/EnvironmentDeploymentBranchPolicy.py +++ b/github/EnvironmentDeploymentBranchPolicy.py @@ -6,6 +6,7 @@ # Copyright 2023 alson # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -40,25 +41,25 @@ class EnvironmentDeploymentBranchPolicy(NonCompletableGithubObject): """ def _initAttributes(self) -> None: - self._protected_branches: Attribute[bool] = NotSet self._custom_branch_policies: Attribute[bool] = NotSet + self._protected_branches: Attribute[bool] = NotSet def __repr__(self) -> str: return self.get__repr__({}) - @property - def protected_branches(self) -> bool: - return self._protected_branches.value - @property def custom_branch_policies(self) -> bool: return self._custom_branch_policies.value + @property + def protected_branches(self) -> bool: + return self._protected_branches.value + def _useAttributes(self, attributes: Dict[str, Any]) -> None: - if "protected_branches" in attributes: # pragma no branch - self._protected_branches = self._makeBoolAttribute(attributes["protected_branches"]) if "custom_branch_policies" in attributes: # pragma no branch self._custom_branch_policies = self._makeBoolAttribute(attributes["custom_branch_policies"]) + if "protected_branches" in attributes: # pragma no branch + self._protected_branches = self._makeBoolAttribute(attributes["protected_branches"]) class EnvironmentDeploymentBranchPolicyParams: diff --git a/github/EnvironmentProtectionRule.py b/github/EnvironmentProtectionRule.py index 7087ed51eb..d11f1d5400 100644 --- a/github/EnvironmentProtectionRule.py +++ b/github/EnvironmentProtectionRule.py @@ -20,6 +20,7 @@ # Copyright 2023 alson # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -62,8 +63,8 @@ class EnvironmentProtectionRule(NonCompletableGithubObject): def _initAttributes(self) -> None: self._id: Attribute[int] = NotSet self._node_id: Attribute[str] = NotSet - self._type: Attribute[str] = NotSet self._reviewers: Attribute[list[EnvironmentProtectionRuleReviewer]] = NotSet + self._type: Attribute[str] = NotSet self._wait_timer: Attribute[int] = NotSet def __repr__(self) -> str: @@ -77,16 +78,16 @@ def id(self) -> int: def node_id(self) -> str: return self._node_id.value - @property - def type(self) -> str: - return self._type.value - @property def reviewers( self, ) -> list[EnvironmentProtectionRuleReviewer]: return self._reviewers.value + @property + def type(self) -> str: + return self._type.value + @property def wait_timer(self) -> int: return self._wait_timer.value @@ -96,12 +97,12 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._id = self._makeIntAttribute(attributes["id"]) if "node_id" in attributes: # pragma no branch self._node_id = self._makeStringAttribute(attributes["node_id"]) - if "type" in attributes: # pragma no branch - self._type = self._makeStringAttribute(attributes["type"]) if "reviewers" in attributes: # pragma no branch self._reviewers = self._makeListOfClassesAttribute( github.EnvironmentProtectionRuleReviewer.EnvironmentProtectionRuleReviewer, attributes["reviewers"], ) + if "type" in attributes: # pragma no branch + self._type = self._makeStringAttribute(attributes["type"]) if "wait_timer" in attributes: # pragma no branch self._wait_timer = self._makeIntAttribute(attributes["wait_timer"]) diff --git a/github/EnvironmentProtectionRuleReviewer.py b/github/EnvironmentProtectionRuleReviewer.py index 750754202e..6f2fafa73f 100644 --- a/github/EnvironmentProtectionRuleReviewer.py +++ b/github/EnvironmentProtectionRuleReviewer.py @@ -19,6 +19,7 @@ # Copyright 2023 alson # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -57,29 +58,29 @@ class EnvironmentProtectionRuleReviewer(NonCompletableGithubObject): """ def _initAttributes(self) -> None: - self._type: Attribute[str] = NotSet self._reviewer: Attribute[github.NamedUser.NamedUser | github.Team.Team] = NotSet + self._type: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"type": self._type.value}) - @property - def type(self) -> str: - return self._type.value - @property def reviewer(self) -> github.NamedUser.NamedUser | github.Team.Team: return self._reviewer.value + @property + def type(self) -> str: + return self._type.value + def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "type" in attributes: # pragma no branch - self._type = self._makeStringAttribute(attributes["type"]) - if "reviewer" in attributes: # pragma no branch - assert self._type.value in ("User", "Team") - if self._type.value == "User": + if "reviewer" in attributes and "type" in attributes: # pragma no branch + assert attributes["type"] in ("User", "Team") + if attributes["type"] == "User": self._reviewer = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["reviewer"]) - elif self._type.value == "Team": + elif attributes["type"] == "Team": self._reviewer = self._makeClassAttribute(github.Team.Team, attributes["reviewer"]) + if "type" in attributes: # pragma no branch + self._type = self._makeStringAttribute(attributes["type"]) class ReviewerParams: diff --git a/github/Event.py b/github/Event.py index 557c2ca3e4..6ff871277e 100644 --- a/github/Event.py +++ b/github/Event.py @@ -18,6 +18,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -56,6 +57,9 @@ class Event(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/activity#events + The OpenAPI schema can be found at + - /components/schemas/event + """ def _initAttributes(self) -> None: diff --git a/github/File.py b/github/File.py index 4a679d7a39..aa4faff220 100644 --- a/github/File.py +++ b/github/File.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -46,6 +47,10 @@ class File(NonCompletableGithubObject): """ This class represents Files. + + The OpenAPI schema can be found at + - /components/schemas/diff-entry + """ def _initAttributes(self) -> None: diff --git a/github/Gist.py b/github/Gist.py index 66cd84a9dd..417d8e9384 100644 --- a/github/Gist.py +++ b/github/Gist.py @@ -23,6 +23,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -69,6 +70,12 @@ class Gist(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/gists + The OpenAPI schema can be found at + - /components/schemas/base-gist + - /components/schemas/gist-simple + - /components/schemas/gist-simple/properties/fork_of + - /components/schemas/gist-simple/properties/forks/items + """ def _initAttributes(self) -> None: @@ -86,8 +93,10 @@ def _initAttributes(self) -> None: self._history: Attribute[list[GistHistoryState]] = NotSet self._html_url: Attribute[str] = NotSet self._id: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet self._owner: Attribute[github.NamedUser.NamedUser] = NotSet self._public: Attribute[bool] = NotSet + self._truncated: Attribute[bool] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet self._user: Attribute[github.NamedUser.NamedUser] = NotSet @@ -165,6 +174,11 @@ def id(self) -> str: self._completeIfNotSet(self._id) return self._id.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def owner(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._owner) @@ -175,6 +189,11 @@ def public(self) -> bool: self._completeIfNotSet(self._public) return self._public.value + @property + def truncated(self) -> bool: + self._completeIfNotSet(self._truncated) + return self._truncated.value + @property def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) @@ -300,10 +319,14 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._html_url = self._makeStringAttribute(attributes["html_url"]) if "id" in attributes: # pragma no branch self._id = self._makeStringAttribute(attributes["id"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "owner" in attributes: # pragma no branch self._owner = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["owner"]) if "public" in attributes: # pragma no branch self._public = self._makeBoolAttribute(attributes["public"]) + if "truncated" in attributes: # pragma no branch + self._truncated = self._makeBoolAttribute(attributes["truncated"]) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch diff --git a/github/GistComment.py b/github/GistComment.py index e4a4f0b80e..fcc7a1f18a 100644 --- a/github/GistComment.py +++ b/github/GistComment.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -55,12 +56,17 @@ class GistComment(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/gists#comments + The OpenAPI schema can be found at + - /components/schemas/gist-comment + """ def _initAttributes(self) -> None: + self._author_association: Attribute[str] = NotSet self._body: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet self._id: Attribute[int] = NotSet + self._node_id: Attribute[str] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet self._user: Attribute[github.NamedUser.NamedUser] = NotSet @@ -68,6 +74,11 @@ def _initAttributes(self) -> None: def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "user": self._user.value}) + @property + def author_association(self) -> str: + self._completeIfNotSet(self._author_association) + return self._author_association.value + @property def body(self) -> str: self._completeIfNotSet(self._body) @@ -83,6 +94,11 @@ def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) @@ -116,12 +132,16 @@ def edit(self, body: str) -> None: self._useAttributes(data) def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "author_association" in attributes: # pragma no branch + self._author_association = self._makeStringAttribute(attributes["author_association"]) if "body" in attributes: # pragma no branch self._body = self._makeStringAttribute(attributes["body"]) if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch diff --git a/github/GistFile.py b/github/GistFile.py index 1e48b41baa..732e4ea15d 100644 --- a/github/GistFile.py +++ b/github/GistFile.py @@ -16,6 +16,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -43,6 +44,12 @@ class GistFile(NonCompletableGithubObject): """ This class represents GistFiles. + + The OpenAPI schema can be found at + - /components/schemas/base-gist/properties/files + - /components/schemas/gist-simple/properties/files + - /components/schemas/gist-simple/properties/fork_of/properties/files + """ def _initAttributes(self) -> None: diff --git a/github/GistHistoryState.py b/github/GistHistoryState.py index 787ae6f39b..20941f07d1 100644 --- a/github/GistHistoryState.py +++ b/github/GistHistoryState.py @@ -16,6 +16,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -51,6 +52,10 @@ class GistHistoryState(CompletableGithubObject): """ This class represents GistHistoryStates. + + The OpenAPI schema can be found at + - /components/schemas/gist-history + """ def _initAttributes(self) -> None: diff --git a/github/GitAuthor.py b/github/GitAuthor.py index 54b2d0c08d..8a5c6aa7b8 100644 --- a/github/GitAuthor.py +++ b/github/GitAuthor.py @@ -16,6 +16,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -44,12 +45,26 @@ class GitAuthor(NonCompletableGithubObject): """ This class represents GitAuthors. + + The OpenAPI schema can be found at + - /components/schemas/commit-search-result-item/properties/commit/properties/author + - /components/schemas/file-commit/properties/commit/properties/author + - /components/schemas/file-commit/properties/commit/properties/committer + - /components/schemas/git-commit/properties/author + - /components/schemas/git-commit/properties/committer + - /components/schemas/git-tag/properties/tagger + - /components/schemas/nullable-git-user + - /components/schemas/nullable-simple-commit/properties/author + - /components/schemas/nullable-simple-commit/properties/committer + - /components/schemas/simple-commit/properties/author + - /components/schemas/simple-commit/properties/committer + """ def _initAttributes(self) -> None: - self._name: Attribute[str] = NotSet - self._email: Attribute[str] = NotSet self._date: Attribute[datetime] = NotSet + self._email: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) diff --git a/github/GitBlob.py b/github/GitBlob.py index 24e447e7d1..905688c2ef 100644 --- a/github/GitBlob.py +++ b/github/GitBlob.py @@ -17,6 +17,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -36,7 +37,9 @@ # # ################################################################################ -from typing import Any, Dict +from __future__ import annotations + +from typing import Any from github.GithubObject import Attribute, CompletableGithubObject, NotSet @@ -48,6 +51,9 @@ class GitBlob(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/git#blobs + The OpenAPI schema can be found at + - /components/schemas/short-blob + """ def _initAttributes(self) -> None: @@ -85,7 +91,7 @@ def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def _useAttributes(self, attributes: Dict[str, Any]) -> None: + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "content" in attributes: # pragma no branch self._content = self._makeStringAttribute(attributes["content"]) if "encoding" in attributes: # pragma no branch diff --git a/github/GitCommit.py b/github/GitCommit.py index 55077093e7..94a40349e5 100644 --- a/github/GitCommit.py +++ b/github/GitCommit.py @@ -18,6 +18,8 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Tim Gates # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -39,12 +41,18 @@ from __future__ import annotations -from typing import Any +from datetime import datetime +from typing import TYPE_CHECKING, Any import github.GitAuthor -import github.GithubObject +import github.GitCommitVerification import github.GitTree -from github.GithubObject import Attribute, CompletableGithubObject, NotSet +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, is_defined, is_undefined + +if TYPE_CHECKING: + from github.GitAuthor import GitAuthor + from github.GitCommitVerification import GitCommitVerification + from github.GitTree import GitTree class GitCommit(CompletableGithubObject): @@ -54,28 +62,53 @@ class GitCommit(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/git#commits + The OpenAPI schema can be found at + - /components/schemas/commit-search-result-item/properties/commit + - /components/schemas/commit/properties/commit + - /components/schemas/file-commit/properties/commit + - /components/schemas/file-commit/properties/commit/properties/parents/items + - /components/schemas/git-commit + - /components/schemas/git-commit/properties/parents/items + - /components/schemas/nullable-simple-commit + - /components/schemas/simple-commit + """ def _initAttributes(self) -> None: - self._author: Attribute[github.GitAuthor.GitAuthor] = NotSet - self._committer: Attribute[github.GitAuthor.GitAuthor] = NotSet + self._author: Attribute[GitAuthor] = NotSet + self._comment_count: Attribute[int] = NotSet + self._committer: Attribute[GitAuthor] = NotSet self._html_url: Attribute[str] = NotSet + self._id: Attribute[str] = NotSet self._message: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet self._parents: Attribute[list[GitCommit]] = NotSet self._sha: Attribute[str] = NotSet - self._tree: Attribute[github.GitTree.GitTree] = NotSet + self._timestamp: Attribute[datetime] = NotSet + self._tree: Attribute[GitTree] = NotSet + self._tree_id: Attribute[str] = NotSet self._url: Attribute[str] = NotSet + self._verification: Attribute[GitCommitVerification] = NotSet def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value}) @property - def author(self) -> github.GitAuthor.GitAuthor: + def _identity(self) -> str: + return self.sha + + @property + def author(self) -> GitAuthor: self._completeIfNotSet(self._author) return self._author.value @property - def committer(self) -> github.GitAuthor.GitAuthor: + def comment_count(self) -> int: + self._completeIfNotSet(self._comment_count) + return self._comment_count.value + + @property + def committer(self) -> GitAuthor: self._completeIfNotSet(self._committer) return self._committer.value @@ -84,11 +117,21 @@ def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value + @property + def id(self) -> str: + self._completeIfNotSet(self._id) + return self._id.value + @property def message(self) -> str: self._completeIfNotSet(self._message) return self._message.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def parents(self) -> list[GitCommit]: self._completeIfNotSet(self._parents) @@ -96,37 +139,68 @@ def parents(self) -> list[GitCommit]: @property def sha(self) -> str: + # if populated from a simple-commit, id actually holds the sha + if is_undefined(self._sha) and is_defined(self._id): + return self._id.value self._completeIfNotSet(self._sha) return self._sha.value @property - def tree(self) -> github.GitTree.GitTree: + def timestamp(self) -> datetime: + self._completeIfNotSet(self._timestamp) + return self._timestamp.value + + @property + def tree(self) -> GitTree: + # if populated from a simple-commit, tree_id holds the sha + if is_undefined(self._tree) and is_defined(self._tree_id): + return github.GitTree.GitTree(self._requester, self._headers, {"sha": self._tree_id.value}) self._completeIfNotSet(self._tree) return self._tree.value + @property + def tree_id(self) -> str: + self._completeIfNotSet(self._tree_id) + return self._tree_id.value + @property def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def _identity(self) -> str: - return self.sha + def verification(self) -> GitCommitVerification: + self._completeIfNotSet(self._verification) + return self._verification.value def _useAttributes(self, attributes: dict[str, Any]) -> None: if "author" in attributes: # pragma no branch self._author = self._makeClassAttribute(github.GitAuthor.GitAuthor, attributes["author"]) + if "comment_count" in attributes: # pragma no branch + self._comment_count = self._makeIntAttribute(attributes["comment_count"]) if "committer" in attributes: # pragma no branch self._committer = self._makeClassAttribute(github.GitAuthor.GitAuthor, attributes["committer"]) if "html_url" in attributes: # pragma no branch self._html_url = self._makeStringAttribute(attributes["html_url"]) + if "id" in attributes: # pragma no branch + self._id = self._makeStringAttribute(attributes["id"]) if "message" in attributes: # pragma no branch self._message = self._makeStringAttribute(attributes["message"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "parents" in attributes: # pragma no branch self._parents = self._makeListOfClassesAttribute(GitCommit, attributes["parents"]) if "sha" in attributes: # pragma no branch self._sha = self._makeStringAttribute(attributes["sha"]) + if "timestamp" in attributes: # pragma no branch + self._timestamp = self._makeDatetimeAttribute(attributes["timestamp"]) if "tree" in attributes: # pragma no branch self._tree = self._makeClassAttribute(github.GitTree.GitTree, attributes["tree"]) + if "tree_id" in attributes: # pragma no branch + self._tree_id = self._makeStringAttribute(attributes["tree_id"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) + if "verification" in attributes: # pragma no branch + self._verification = self._makeClassAttribute( + github.GitCommitVerification.GitCommitVerification, attributes["verification"] + ) diff --git a/github/GitCommitVerification.py b/github/GitCommitVerification.py new file mode 100644 index 0000000000..24015bd813 --- /dev/null +++ b/github/GitCommitVerification.py @@ -0,0 +1,99 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Justin Kufro # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # +# Copyright 2024 Enrico Minack # +# Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Tim Gates # +# # +# 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 . # +# # +################################################################################ + +from __future__ import annotations + +from datetime import datetime +from typing import Any + +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class GitCommitVerification(NonCompletableGithubObject): + """ + This class represents commit verifications. + + The reference can be found here + https://docs.github.com/en/rest/commits/commits + + The OpenAPI schema can be found at + - /components/schemas/git-commit/properties/verification + + """ + + def _initAttributes(self) -> None: + self._verified: Attribute[bool] = NotSet + self._verified_at: Attribute[datetime] = NotSet + self._reason: Attribute[str] = NotSet + self._signature: Attribute[str] = NotSet + self._payload: Attribute[str] = NotSet + + @property + def verified(self) -> bool: + return self._verified.value + + @property + def verified_at(self) -> datetime: + return self._verified_at.value + + @property + def reason(self) -> str: + return self._reason.value + + @property + def signature(self) -> str: + return self._signature.value + + @property + def payload(self) -> str: + return self._payload.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "verified" in attributes: # pragma no branch + self._verified = self._makeBoolAttribute(attributes["verified"]) + if "verified_at" in attributes: # pragma no branch + self._verified_at = self._makeDatetimeAttribute(attributes["verified_at"]) + if "reason" in attributes: # pragma no branch + self._reason = self._makeStringAttribute(attributes["reason"]) + if "signature" in attributes: # pragma no branch + self._signature = self._makeStringAttribute(attributes["signature"]) + if "payload" in attributes: # pragma no branch + self._payload = self._makeStringAttribute(attributes["payload"]) diff --git a/github/GitObject.py b/github/GitObject.py index 0c82087070..a02a11634c 100644 --- a/github/GitObject.py +++ b/github/GitObject.py @@ -16,6 +16,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -43,6 +44,11 @@ class GitObject(NonCompletableGithubObject): """ This class represents GitObjects. + + The OpenAPI schema can be found at + - /components/schemas/git-ref/properties/object + - /components/schemas/git-tag/properties/object + """ def _initAttributes(self) -> None: diff --git a/github/GitRef.py b/github/GitRef.py index 641924a28d..0b24813cb9 100644 --- a/github/GitRef.py +++ b/github/GitRef.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -57,9 +58,13 @@ class GitRef(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/git#references + The OpenAPI schema can be found at + - /components/schemas/git-ref + """ def _initAttributes(self) -> None: + self._node_id: Attribute[str] = NotSet self._object: Attribute[GitObject] = NotSet self._ref: Attribute[str] = NotSet self._url: Attribute[str] = NotSet @@ -67,6 +72,11 @@ def _initAttributes(self) -> None: def __repr__(self) -> str: return self.get__repr__({"ref": self._ref.value}) + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def object(self) -> GitObject: self._completeIfNotSet(self._object) @@ -99,6 +109,8 @@ def edit(self, sha: str, force: Opt[bool] = NotSet) -> None: self._useAttributes(data) def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "object" in attributes: # pragma no branch self._object = self._makeClassAttribute(github.GitObject.GitObject, attributes["object"]) if "ref" in attributes: # pragma no branch diff --git a/github/GitRelease.py b/github/GitRelease.py index b89e5a0c9f..11a930adc8 100644 --- a/github/GitRelease.py +++ b/github/GitRelease.py @@ -36,6 +36,7 @@ # Copyright 2024 Benjamin K <53038537+treee111@users.noreply.github.com> # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -76,34 +77,59 @@ class GitRelease(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#releases + The OpenAPI schema can be found at + - /components/schemas/basic-error + - /components/schemas/release + """ def _initAttributes(self) -> None: - self._id: Attribute[int] = NotSet + self._assets: Attribute[list[github.GitReleaseAsset.GitReleaseAsset]] = NotSet + self._assets_url: Attribute[str] = NotSet + self._author: Attribute[github.NamedUser.NamedUser] = NotSet self._body: Attribute[str] = NotSet - self._title: Attribute[str] = NotSet - self._tag_name: Attribute[str] = NotSet - self._target_commitish: Attribute[str] = NotSet + self._body_html: Attribute[str] = NotSet + self._body_text: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._discussion_url: Attribute[str] = NotSet + self._documentation_url: Attribute[str] = NotSet self._draft: Attribute[bool] = NotSet - self._prerelease: Attribute[bool] = NotSet self._generate_release_notes: Attribute[bool] = NotSet - self._author: Attribute[github.NamedUser.NamedUser] = NotSet - self._url: Attribute[str] = NotSet - self._upload_url: Attribute[str] = NotSet self._html_url: Attribute[str] = NotSet - self._created_at: Attribute[datetime] = NotSet + self._id: Attribute[int] = NotSet + self._mentions_count: Attribute[int] = NotSet + self._message: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet + self._prerelease: Attribute[bool] = NotSet self._published_at: Attribute[datetime] = NotSet + self._reactions: Attribute[dict[str, Any]] = NotSet + self._status: Attribute[str] = NotSet + self._tag_name: Attribute[str] = NotSet self._tarball_url: Attribute[str] = NotSet + self._target_commitish: Attribute[str] = NotSet + self._title: Attribute[str] = NotSet + self._upload_url: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet self._zipball_url: Attribute[str] = NotSet - self._assets: Attribute[list[github.GitReleaseAsset.GitReleaseAsset]] = NotSet def __repr__(self) -> str: return self.get__repr__({"title": self._title.value}) @property - def id(self) -> int: - self._completeIfNotSet(self._id) - return self._id.value + def assets(self) -> list[github.GitReleaseAsset.GitReleaseAsset]: + self._completeIfNotSet(self._assets) + return self._assets.value + + @property + def assets_url(self) -> str: + self._completeIfNotSet(self._assets_url) + return self._assets_url.value + + @property + def author(self) -> github.NamedUser.NamedUser: + self._completeIfNotSet(self._author) + return self._author.value @property def body(self) -> str: @@ -111,19 +137,29 @@ def body(self) -> str: return self._body.value @property - def title(self) -> str: - self._completeIfNotSet(self._title) - return self._title.value + def body_html(self) -> str: + self._completeIfNotSet(self._body_html) + return self._body_html.value @property - def tag_name(self) -> str: - self._completeIfNotSet(self._tag_name) - return self._tag_name.value + def body_text(self) -> str: + self._completeIfNotSet(self._body_text) + return self._body_text.value @property - def target_commitish(self) -> str: - self._completeIfNotSet(self._target_commitish) - return self._target_commitish.value + def created_at(self) -> datetime: + self._completeIfNotSet(self._created_at) + return self._created_at.value + + @property + def discussion_url(self) -> str: + self._completeIfNotSet(self._discussion_url) + return self._discussion_url.value + + @property + def documentation_url(self) -> str: + self._completeIfNotSet(self._documentation_url) + return self._documentation_url.value @property def draft(self) -> bool: @@ -131,19 +167,39 @@ def draft(self) -> bool: return self._draft.value @property - def prerelease(self) -> bool: - self._completeIfNotSet(self._prerelease) - return self._prerelease.value + def html_url(self) -> str: + self._completeIfNotSet(self._html_url) + return self._html_url.value @property - def author(self) -> github.NamedUser.NamedUser: - self._completeIfNotSet(self._author) - return self._author.value + def id(self) -> int: + self._completeIfNotSet(self._id) + return self._id.value @property - def created_at(self) -> datetime: - self._completeIfNotSet(self._created_at) - return self._created_at.value + def mentions_count(self) -> int: + self._completeIfNotSet(self._mentions_count) + return self._mentions_count.value + + @property + def message(self) -> str: + self._completeIfNotSet(self._message) + return self._message.value + + @property + def name(self) -> str: + self._completeIfNotSet(self._name) + return self._name.value + + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + + @property + def prerelease(self) -> bool: + self._completeIfNotSet(self._prerelease) + return self._prerelease.value @property def published_at(self) -> datetime: @@ -151,35 +207,50 @@ def published_at(self) -> datetime: return self._published_at.value @property - def url(self) -> str: - self._completeIfNotSet(self._url) - return self._url.value + def reactions(self) -> dict[str, Any]: + self._completeIfNotSet(self._reactions) + return self._reactions.value @property - def upload_url(self) -> str: - self._completeIfNotSet(self._upload_url) - return self._upload_url.value + def status(self) -> str: + self._completeIfNotSet(self._status) + return self._status.value @property - def html_url(self) -> str: - self._completeIfNotSet(self._html_url) - return self._html_url.value + def tag_name(self) -> str: + self._completeIfNotSet(self._tag_name) + return self._tag_name.value @property def tarball_url(self) -> str: self._completeIfNotSet(self._tarball_url) return self._tarball_url.value + @property + def target_commitish(self) -> str: + self._completeIfNotSet(self._target_commitish) + return self._target_commitish.value + + @property + def title(self) -> str: + self._completeIfNotSet(self._title) + return self._title.value + + @property + def upload_url(self) -> str: + self._completeIfNotSet(self._upload_url) + return self._upload_url.value + + @property + def url(self) -> str: + self._completeIfNotSet(self._url) + return self._url.value + @property def zipball_url(self) -> str: self._completeIfNotSet(self._zipball_url) return self._zipball_url.value - @property - def assets(self) -> list[github.GitReleaseAsset.GitReleaseAsset]: - self._completeIfNotSet(self._assets) - return self._assets.value - def delete_release(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/releases/{release_id} `_ @@ -303,39 +374,59 @@ def get_assets(self) -> PaginatedList[github.GitReleaseAsset.GitReleaseAsset]: ) def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "id" in attributes: - self._id = self._makeIntAttribute(attributes["id"]) + if "assets" in attributes: + self._assets = self._makeListOfClassesAttribute( + github.GitReleaseAsset.GitReleaseAsset, attributes["assets"] + ) + if "assets_url" in attributes: # pragma no branch + self._assets_url = self._makeStringAttribute(attributes["assets_url"]) + if "author" in attributes: + self._author = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["author"]) if "body" in attributes: self._body = self._makeStringAttribute(attributes["body"]) - if "name" in attributes: - self._title = self._makeStringAttribute(attributes["name"]) - if "tag_name" in attributes: - self._tag_name = self._makeStringAttribute(attributes["tag_name"]) - if "target_commitish" in attributes: - self._target_commitish = self._makeStringAttribute(attributes["target_commitish"]) + if "body_html" in attributes: # pragma no branch + self._body_html = self._makeStringAttribute(attributes["body_html"]) + if "body_text" in attributes: # pragma no branch + self._body_text = self._makeStringAttribute(attributes["body_text"]) + if "created_at" in attributes: + self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "discussion_url" in attributes: # pragma no branch + self._discussion_url = self._makeStringAttribute(attributes["discussion_url"]) + if "documentation_url" in attributes: # pragma no branch + self._documentation_url = self._makeStringAttribute(attributes["documentation_url"]) if "draft" in attributes: self._draft = self._makeBoolAttribute(attributes["draft"]) - if "prerelease" in attributes: - self._prerelease = self._makeBoolAttribute(attributes["prerelease"]) if "generate_release_notes" in attributes: self._generate_release_notes = self._makeBoolAttribute(attributes["generate_release_notes"]) - if "author" in attributes: - self._author = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["author"]) - if "url" in attributes: - self._url = self._makeStringAttribute(attributes["url"]) - if "upload_url" in attributes: - self._upload_url = self._makeStringAttribute(attributes["upload_url"]) if "html_url" in attributes: self._html_url = self._makeStringAttribute(attributes["html_url"]) - if "created_at" in attributes: - self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "id" in attributes: + self._id = self._makeIntAttribute(attributes["id"]) + if "mentions_count" in attributes: # pragma no branch + self._mentions_count = self._makeIntAttribute(attributes["mentions_count"]) + if "message" in attributes: # pragma no branch + self._message = self._makeStringAttribute(attributes["message"]) + if "name" in attributes: + self._title = self._makeStringAttribute(attributes["name"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) + if "prerelease" in attributes: + self._prerelease = self._makeBoolAttribute(attributes["prerelease"]) if "published_at" in attributes: self._published_at = self._makeDatetimeAttribute(attributes["published_at"]) + if "reactions" in attributes: # pragma no branch + self._reactions = self._makeDictAttribute(attributes["reactions"]) + if "status" in attributes: # pragma no branch + self._status = self._makeStringAttribute(attributes["status"]) + if "tag_name" in attributes: + self._tag_name = self._makeStringAttribute(attributes["tag_name"]) if "tarball_url" in attributes: self._tarball_url = self._makeStringAttribute(attributes["tarball_url"]) + if "target_commitish" in attributes: + self._target_commitish = self._makeStringAttribute(attributes["target_commitish"]) + if "upload_url" in attributes: + self._upload_url = self._makeStringAttribute(attributes["upload_url"]) + if "url" in attributes: + self._url = self._makeStringAttribute(attributes["url"]) if "zipball_url" in attributes: self._zipball_url = self._makeStringAttribute(attributes["zipball_url"]) - if "assets" in attributes: - self._assets = self._makeListOfClassesAttribute( - github.GitReleaseAsset.GitReleaseAsset, attributes["assets"] - ) diff --git a/github/GitReleaseAsset.py b/github/GitReleaseAsset.py index 505eef7910..c2a3f6e80f 100644 --- a/github/GitReleaseAsset.py +++ b/github/GitReleaseAsset.py @@ -20,6 +20,8 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Neel Malik <41765022+neel-m@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -42,7 +44,7 @@ from __future__ import annotations from datetime import datetime -from typing import Any +from typing import Any, Iterator import github.NamedUser from github.GithubObject import Attribute, CompletableGithubObject, NotSet @@ -55,54 +57,68 @@ class GitReleaseAsset(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#releases + The OpenAPI schema can be found at + - /components/schemas/release-asset + """ def _initAttributes(self) -> None: - self._url: Attribute[str] = NotSet + self._browser_download_url: Attribute[str] = NotSet + self._content_type: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._download_count: Attribute[int] = NotSet self._id: Attribute[int] = NotSet - self._name: Attribute[str] = NotSet self._label: Attribute[str] = NotSet - self._content_type: Attribute[str] = NotSet - self._state: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet self._size: Attribute[int] = NotSet - self._download_count: Attribute[int] = NotSet - self._created_at: Attribute[datetime] = NotSet + self._state: Attribute[str] = NotSet self._updated_at: Attribute[datetime] = NotSet - self._browser_download_url: Attribute[str] = NotSet self._uploader: Attribute[github.NamedUser.NamedUser] = NotSet + self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"url": self.url}) @property - def url(self) -> str: - self._completeIfNotSet(self._url) - return self._url.value + def browser_download_url(self) -> str: + self._completeIfNotSet(self._browser_download_url) + return self._browser_download_url.value + + @property + def content_type(self) -> str: + self._completeIfNotSet(self._content_type) + return self._content_type.value + + @property + def created_at(self) -> datetime: + self._completeIfNotSet(self._created_at) + return self._created_at.value + + @property + def download_count(self) -> int: + self._completeIfNotSet(self._download_count) + return self._download_count.value @property def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value - @property - def name(self) -> str: - self._completeIfNotSet(self._name) - return self._name.value - @property def label(self) -> str: self._completeIfNotSet(self._label) return self._label.value @property - def content_type(self) -> str: - self._completeIfNotSet(self._content_type) - return self._content_type.value + def name(self) -> str: + self._completeIfNotSet(self._name) + return self._name.value @property - def state(self) -> str: - self._completeIfNotSet(self._state) - return self._state.value + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value @property def size(self) -> int: @@ -110,30 +126,25 @@ def size(self) -> int: return self._size.value @property - def download_count(self) -> int: - self._completeIfNotSet(self._download_count) - return self._download_count.value - - @property - def created_at(self) -> datetime: - self._completeIfNotSet(self._created_at) - return self._created_at.value + def state(self) -> str: + self._completeIfNotSet(self._state) + return self._state.value @property def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value - @property - def browser_download_url(self) -> str: - self._completeIfNotSet(self._browser_download_url) - return self._browser_download_url.value - @property def uploader(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._uploader) return self._uploader.value + @property + def url(self) -> str: + self._completeIfNotSet(self._url) + return self._url.value + def delete_asset(self) -> bool: """ Delete asset from the release. @@ -141,6 +152,17 @@ def delete_asset(self) -> bool: headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) return True + def download_asset( + self, path: None | str = None, chunk_size: int | None = 1 + ) -> tuple[int, dict[str, Any], Iterator] | None: + """ + Download asset to the path or return an iterator for the stream. + """ + if path is None: + return self._requester.getStream(self.url, chunk_size=chunk_size) + self._requester.getFile(self.url, path=path, chunk_size=chunk_size) + return None + def update_asset(self, name: str, label: str = "") -> GitReleaseAsset: """ Update asset metadata. @@ -152,27 +174,29 @@ def update_asset(self, name: str, label: str = "") -> GitReleaseAsset: return GitReleaseAsset(self._requester, headers, data, completed=True) def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "url" in attributes: # pragma no branch - self._url = self._makeStringAttribute(attributes["url"]) + if "browser_download_url" in attributes: # pragma no branch + self._browser_download_url = self._makeStringAttribute(attributes["browser_download_url"]) + if "content_type" in attributes: # pragma no branch + self._content_type = self._makeStringAttribute(attributes["content_type"]) + if "created_at" in attributes: # pragma no branch + self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "download_count" in attributes: # pragma no branch + self._download_count = self._makeIntAttribute(attributes["download_count"]) 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 "label" in attributes: # pragma no branch self._label = self._makeStringAttribute(attributes["label"]) - if "uploader" in attributes: # pragma no branch - self._uploader = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["uploader"]) - if "content_type" in attributes: # pragma no branch - self._content_type = self._makeStringAttribute(attributes["content_type"]) - if "state" in attributes: # pragma no branch - self._state = self._makeStringAttribute(attributes["state"]) + 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 attributes: # pragma no branch self._size = self._makeIntAttribute(attributes["size"]) - if "download_count" in attributes: # pragma no branch - self._download_count = self._makeIntAttribute(attributes["download_count"]) - if "created_at" in attributes: # pragma no branch - self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "state" in attributes: # pragma no branch + self._state = self._makeStringAttribute(attributes["state"]) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) - if "browser_download_url" in attributes: # pragma no branch - self._browser_download_url = self._makeStringAttribute(attributes["browser_download_url"]) + if "uploader" in attributes: # pragma no branch + self._uploader = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["uploader"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/GitTag.py b/github/GitTag.py index 6515e36d98..f70b655b77 100644 --- a/github/GitTag.py +++ b/github/GitTag.py @@ -18,6 +18,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -42,6 +43,7 @@ from typing import TYPE_CHECKING, Any import github.GitAuthor +import github.GitCommitVerification import github.GithubObject import github.GitObject import github.GitTreeElement @@ -49,6 +51,7 @@ if TYPE_CHECKING: from github.GitAuthor import GitAuthor + from github.GitCommitVerification import GitCommitVerification from github.GitObject import GitObject @@ -59,15 +62,20 @@ class GitTag(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/git#tags + The OpenAPI schema can be found at + - /components/schemas/git-tag + """ def _initAttributes(self) -> None: self._message: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet self._object: Attribute[GitObject] = NotSet self._sha: Attribute[str] = NotSet self._tag: Attribute[str] = NotSet self._tagger: Attribute[GitAuthor] = NotSet self._url: Attribute[str] = NotSet + self._verification: Attribute[GitCommitVerification] = NotSet def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value, "tag": self._tag.value}) @@ -77,6 +85,11 @@ def message(self) -> str: self._completeIfNotSet(self._message) return self._message.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def object(self) -> GitObject: self._completeIfNotSet(self._object) @@ -102,9 +115,16 @@ def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value + @property + def verification(self) -> GitCommitVerification: + self._completeIfNotSet(self._verification) + return self._verification.value + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "message" in attributes: # pragma no branch self._message = self._makeStringAttribute(attributes["message"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "object" in attributes: # pragma no branch self._object = self._makeClassAttribute(github.GitObject.GitObject, attributes["object"]) if "sha" in attributes: # pragma no branch @@ -115,3 +135,7 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._tagger = self._makeClassAttribute(github.GitAuthor.GitAuthor, attributes["tagger"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) + if "verification" in attributes: # pragma no branch + self._verification = self._makeClassAttribute( + github.GitCommitVerification.GitCommitVerification, attributes["verification"] + ) diff --git a/github/GitTree.py b/github/GitTree.py index 57f1e46a66..ccfed405c8 100644 --- a/github/GitTree.py +++ b/github/GitTree.py @@ -18,6 +18,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -55,16 +56,28 @@ class GitTree(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/git#trees + The OpenAPI schema can be found at + - /components/schemas/commit-search-result-item/properties/commit/properties/tree + - /components/schemas/commit/properties/commit/properties/tree + - /components/schemas/file-commit/properties/commit/properties/tree + - /components/schemas/git-commit/properties/tree + - /components/schemas/git-tree + """ def _initAttributes(self) -> None: self._sha: Attribute[str] = NotSet self._tree: Attribute[list[GitTreeElement]] = NotSet + self._truncated: Attribute[bool] = NotSet self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value}) + @property + def _identity(self) -> str: + return self.sha + @property def sha(self) -> str: self._completeIfNotSet(self._sha) @@ -75,19 +88,22 @@ def tree(self) -> list[GitTreeElement]: self._completeIfNotSet(self._tree) return self._tree.value + @property + def truncated(self) -> bool: + self._completeIfNotSet(self._truncated) + return self._truncated.value + @property def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - @property - def _identity(self) -> str: - return self.sha - def _useAttributes(self, attributes: dict[str, Any]) -> None: if "sha" in attributes: # pragma no branch self._sha = self._makeStringAttribute(attributes["sha"]) if "tree" in attributes: # pragma no branch self._tree = self._makeListOfClassesAttribute(github.GitTreeElement.GitTreeElement, attributes["tree"]) + if "truncated" in attributes: # pragma no branch + self._truncated = self._makeBoolAttribute(attributes["truncated"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/GitTreeElement.py b/github/GitTreeElement.py index 7a958430d3..b2df181f7c 100644 --- a/github/GitTreeElement.py +++ b/github/GitTreeElement.py @@ -16,6 +16,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -43,6 +44,10 @@ class GitTreeElement(NonCompletableGithubObject): """ This class represents GitTreeElements. + + The OpenAPI schema can be found at + - /components/schemas/git-tree/properties/tree/items + """ def _initAttributes(self) -> None: diff --git a/github/GithubApp.py b/github/GithubApp.py index 4191f5e8cf..5ce15ca17a 100644 --- a/github/GithubApp.py +++ b/github/GithubApp.py @@ -22,6 +22,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -58,25 +59,45 @@ class GithubApp(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/apps + The OpenAPI schema can be found at + - /components/schemas/integration + - /components/schemas/nullable-integration + """ def _initAttributes(self) -> None: + self._client_id: Attribute[str] = NotSet + self._client_secret: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet self._description: Attribute[str] = NotSet self._events: Attribute[list[str]] = NotSet self._external_url: Attribute[str] = NotSet self._html_url: Attribute[str] = NotSet self._id: Attribute[int] = NotSet + self._installations_count: Attribute[int] = NotSet self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet self._owner: Attribute[github.NamedUser.NamedUser] = NotSet + self._pem: Attribute[str] = NotSet self._permissions: Attribute[dict[str, str]] = NotSet self._slug: Attribute[str] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet + self._webhook_secret: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "url": self._url.value}) + @property + def client_id(self) -> str: + self._completeIfNotSet(self._client_id) + return self._client_id.value + + @property + def client_secret(self) -> str: + self._completeIfNotSet(self._client_secret) + return self._client_secret.value + @property def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) @@ -107,16 +128,31 @@ def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value + @property + def installations_count(self) -> int: + self._completeIfNotSet(self._installations_count) + return self._installations_count.value + @property def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def owner(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._owner) return self._owner.value + @property + def pem(self) -> str: + self._completeIfNotSet(self._pem) + return self._pem.value + @property def permissions(self) -> dict[str, str]: self._completeIfNotSet(self._permissions) @@ -136,7 +172,16 @@ def updated_at(self) -> datetime: def url(self) -> str: return self._url.value + @property + def webhook_secret(self) -> str: + self._completeIfNotSet(self._webhook_secret) + return self._webhook_secret.value + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "client_id" in attributes: # pragma no branch + self._client_id = self._makeStringAttribute(attributes["client_id"]) + if "client_secret" in attributes: # pragma no branch + self._client_secret = self._makeStringAttribute(attributes["client_secret"]) if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "description" in attributes: # pragma no branch @@ -149,10 +194,16 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._html_url = self._makeStringAttribute(attributes["html_url"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) + if "installations_count" in attributes: # pragma no branch + self._installations_count = self._makeIntAttribute(attributes["installations_count"]) 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 "owner" in attributes: # pragma no branch self._owner = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["owner"]) + if "pem" in attributes: # pragma no branch + self._pem = self._makeStringAttribute(attributes["pem"]) if "permissions" in attributes: # pragma no branch self._permissions = self._makeDictAttribute(attributes["permissions"]) if "slug" in attributes: # pragma no branch @@ -162,3 +213,5 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: self._url = self._makeStringAttribute(attributes["url"]) + if "webhook_secret" in attributes: # pragma no branch + self._webhook_secret = self._makeStringAttribute(attributes["webhook_secret"]) diff --git a/github/GithubIntegration.py b/github/GithubIntegration.py index de6f8ec5a8..ca9091fed3 100644 --- a/github/GithubIntegration.py +++ b/github/GithubIntegration.py @@ -10,6 +10,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Min RK # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -83,6 +84,8 @@ def __init__( jwt_issued_at: int = Consts.DEFAULT_JWT_ISSUED_AT, jwt_algorithm: str = Consts.DEFAULT_JWT_ALGORITHM, auth: AppAuth | None = None, + # v3: set lazy = True as the default + lazy: bool = False, ) -> None: """ :param integration_id: int deprecated, use auth=github.Auth.AppAuth(...) instead @@ -100,6 +103,8 @@ def __init__( :param jwt_issued_at: int deprecated, use auth=github.Auth.AppAuth(...) instead :param jwt_algorithm: string deprecated, use auth=github.Auth.AppAuth(...) instead :param auth: authentication method + :param lazy: completable objects created from this instance are lazy, + as well as completable objects created from those, and so on """ if integration_id is not None: assert isinstance(integration_id, (int, str)), integration_id @@ -117,6 +122,7 @@ def __init__( assert isinstance(jwt_expiry, int), jwt_expiry assert Consts.MIN_JWT_EXPIRY <= jwt_expiry <= Consts.MAX_JWT_EXPIRY, jwt_expiry assert isinstance(jwt_issued_at, int) + assert isinstance(lazy, bool), lazy self.base_url = base_url @@ -132,13 +138,21 @@ def __init__( "please use auth=github.Auth.AppAuth(...) instead", category=DeprecationWarning, ) - auth = AppAuth( - integration_id, # type: ignore - private_key, # type: ignore - jwt_expiry=jwt_expiry, - jwt_issued_at=jwt_issued_at, - jwt_algorithm=jwt_algorithm, - ) + if jwt_algorithm != Consts.DEFAULT_JWT_ALGORITHM: + auth = AppAuth( + integration_id, # type: ignore + private_key=None, # type: ignore + sign_func=AppAuth.create_jwt_sign(private_key, jwt_algorithm), # type: ignore + jwt_expiry=jwt_expiry, + jwt_issued_at=jwt_issued_at, + ) + else: + auth = AppAuth( + integration_id, # type: ignore + private_key, # type: ignore + jwt_expiry=jwt_expiry, + jwt_issued_at=jwt_issued_at, + ) assert isinstance( auth, AppAuth @@ -157,8 +171,22 @@ def __init__( pool_size=pool_size, seconds_between_requests=seconds_between_requests, seconds_between_writes=seconds_between_writes, + lazy=lazy, ) + def withLazy(self, lazy: bool) -> GithubIntegration: + """ + Create a GithubIntegration instance with identical configuration but the given lazy setting. + + :param lazy: completable objects created from this instance are lazy, as well as completable objects created + from those, and so on + :return: new Github instance + + """ + kwargs = self.__requester.kwargs + kwargs.update(lazy=lazy) + return GithubIntegration(**kwargs) + def close(self) -> None: """Close connections to the server. Alternatively, use the GithubIntegration object as a context manager: @@ -211,7 +239,6 @@ def _get_installed_app(self, url: str) -> Installation: requester=self.__requester, headers=headers, attributes=response, - completed=True, ) @deprecated.deprecated( @@ -248,7 +275,6 @@ def get_access_token( requester=self.__requester, headers=headers, attributes=response, - completed=True, ) @deprecated.deprecated("Use get_repo_installation") diff --git a/github/GithubObject.py b/github/GithubObject.py index e98ffbfaf9..1661594dfe 100644 --- a/github/GithubObject.py +++ b/github/GithubObject.py @@ -29,6 +29,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Min RK # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -48,15 +49,18 @@ # # ################################################################################ +from __future__ import annotations + import email.utils import re import typing +from abc import ABC from datetime import datetime, timezone from decimal import Decimal from operator import itemgetter -from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Tuple, Type, Union, overload +from typing import TYPE_CHECKING, Any, Callable, Union, overload -from typing_extensions import Protocol, TypeGuard +from typing_extensions import Protocol, Self, TypeGuard from . import Consts from .GithubException import BadAttributeException, IncompletableObject @@ -107,7 +111,7 @@ def _datetime_from_github_isoformat(value: str) -> datetime: return datetime.fromisoformat(value) -class _NotSetType: +class _NotSetType(Attribute[Any]): def __repr__(self) -> str: return "NotSet" @@ -116,7 +120,7 @@ def value(self) -> Any: return None @staticmethod - def remove_unset_items(data: Dict[str, Any]) -> Dict[str, Any]: + def remove_unset_items(data: dict[str, Any]) -> dict[str, Any]: return {key: value for key, value in data.items() if not isinstance(value, _NotSetType)} @@ -125,19 +129,19 @@ def remove_unset_items(data: Dict[str, Any]) -> Dict[str, Any]: Opt = Union[T, _NotSetType] -def is_defined(v: Union[T, _NotSetType]) -> TypeGuard[T]: +def is_defined(v: T | _NotSetType) -> TypeGuard[T]: return not isinstance(v, _NotSetType) -def is_undefined(v: Union[T, _NotSetType]) -> TypeGuard[_NotSetType]: +def is_undefined(v: T | _NotSetType) -> TypeGuard[_NotSetType]: return isinstance(v, _NotSetType) -def is_optional(v: Any, type: Union[Type, Tuple[Type, ...]]) -> bool: +def is_optional(v: Any, type: type | tuple[type, ...]) -> bool: return isinstance(v, _NotSetType) or isinstance(v, type) -def is_optional_list(v: Any, type: Union[Type, Tuple[Type, ...]]) -> bool: +def is_optional_list(v: Any, type: type | tuple[type, ...]) -> bool: return isinstance(v, _NotSetType) or isinstance(v, list) and all(isinstance(element, type) for element in v) @@ -145,7 +149,7 @@ def is_optional_list(v: Any, type: Union[Type, Tuple[Type, ...]]) -> bool: @overload -def as_rest_api_attributes(graphql_attributes: Dict[str, Any]) -> Dict[str, Any]: +def as_rest_api_attributes(graphql_attributes: dict[str, Any]) -> dict[str, Any]: ... @@ -154,7 +158,7 @@ def as_rest_api_attributes(graphql_attributes: None) -> None: ... -def as_rest_api_attributes(graphql_attributes: Optional[Dict[str, Any]]) -> Optional[Dict[str, Any]]: +def as_rest_api_attributes(graphql_attributes: dict[str, Any] | None) -> dict[str, Any] | None: """ Converts attributes from GraphQL schema to REST API schema. @@ -193,7 +197,7 @@ def un_capitalize(match: re.Match) -> str: } -def as_rest_api_attributes_list(graphql_attributes: List[Optional[Dict[str, Any]]]) -> List[Optional[Dict[str, Any]]]: +def as_rest_api_attributes_list(graphql_attributes: list[dict[str, Any] | None]) -> list[dict[str, Any] | None]: return [as_rest_api_attributes(v) if isinstance(v, dict) else v for v in graphql_attributes] @@ -206,20 +210,20 @@ def value(self) -> T: return self._value -class _BadAttribute(Attribute): - def __init__(self, value: Any, expectedType: Any, exception: Optional[Exception] = None): +class _BadAttribute(Attribute[T]): + def __init__(self, value: Any, expectedType: Any, exception: Exception | None = None): self.__value = value self.__expectedType = expectedType self.__exception = exception @property - def value(self) -> Any: + def value(self) -> T: raise BadAttributeException(self.__value, self.__expectedType, self.__exception) # v3: add * to edit function of all GithubObject implementations, # this allows to rename attributes and maintain the order of attributes -class GithubObject: +class GithubObject(ABC): """ Base class for all classes representing objects returned by the API. """ @@ -244,10 +248,9 @@ def setCheckAfterInitFlag(cls, flag: bool) -> None: def __init__( self, - requester: "Requester", - headers: Dict[str, Union[str, int]], + requester: Requester, + headers: dict[str, str | int], attributes: Any, - completed: bool, ): self._requester = requester self._initAttributes() @@ -258,7 +261,7 @@ def __init__( if self.CHECK_AFTER_INIT_FLAG: # pragma no branch (Flag always set in tests) requester.check_me(self) - def _storeAndUseAttributes(self, headers: Dict[str, Union[str, int]], attributes: Any) -> None: + def _storeAndUseAttributes(self, headers: dict[str, str | int], attributes: Any) -> None: # Make sure headers are assigned before calling _useAttributes # (Some derived classes will use headers in _useAttributes) self._headers = headers @@ -266,7 +269,7 @@ def _storeAndUseAttributes(self, headers: Dict[str, Union[str, int]], attributes self._useAttributes(attributes) @property - def requester(self) -> "Requester": + def requester(self) -> Requester: """ Return my Requester object. @@ -276,19 +279,17 @@ def requester(self) -> "Requester": return self._requester @property - def raw_data(self) -> Dict[str, Any]: + def raw_data(self) -> dict[str, Any]: """ :type: dict """ - self._completeIfNeeded() return self._rawData @property - def raw_headers(self) -> Dict[str, Union[str, int]]: + def raw_headers(self) -> dict[str, str | int]: """ :type: dict """ - self._completeIfNeeded() return self._headers @staticmethod @@ -296,21 +297,21 @@ def _parentUrl(url: str) -> str: return "/".join(url.split("/")[:-1]) @staticmethod - def __makeSimpleAttribute(value: Any, type: Type[T]) -> Attribute[T]: + def __makeSimpleAttribute(value: Any, type: type[T]) -> Attribute[T]: if value is None or isinstance(value, type): return _ValuedAttribute(value) # type: ignore else: return _BadAttribute(value, type) # type: ignore @staticmethod - def __makeSimpleListAttribute(value: list, type: Type[T]) -> Attribute[T]: + def __makeSimpleListAttribute(value: list, type: type[T]) -> Attribute[T]: if isinstance(value, list) and all(isinstance(element, type) for element in value): return _ValuedAttribute(value) # type: ignore else: return _BadAttribute(value, [type]) # type: ignore @staticmethod - def __makeTransformedAttribute(value: T, type: Type[T], transform: Callable[[T], K]) -> Attribute[K]: + def __makeTransformedAttribute(value: T, type: type[T], transform: Callable[[T], K]) -> Attribute[K]: if value is None: return _ValuedAttribute(None) # type: ignore elif isinstance(value, type): @@ -322,27 +323,27 @@ def __makeTransformedAttribute(value: T, type: Type[T], transform: Callable[[T], return _BadAttribute(value, type) # type: ignore @staticmethod - def _makeStringAttribute(value: Optional[Union[int, str]]) -> Attribute[str]: + def _makeStringAttribute(value: int | str | None) -> Attribute[str]: return GithubObject.__makeSimpleAttribute(value, str) @staticmethod - def _makeIntAttribute(value: Optional[Union[int, str]]) -> Attribute[int]: + def _makeIntAttribute(value: int | str | None) -> Attribute[int]: return GithubObject.__makeSimpleAttribute(value, int) @staticmethod - def _makeDecimalAttribute(value: Optional[Decimal]) -> Attribute[Decimal]: + def _makeDecimalAttribute(value: Decimal | None) -> Attribute[Decimal]: return GithubObject.__makeSimpleAttribute(value, Decimal) @staticmethod - def _makeFloatAttribute(value: Optional[float]) -> Attribute[float]: + def _makeFloatAttribute(value: float | None) -> Attribute[float]: return GithubObject.__makeSimpleAttribute(value, float) @staticmethod - def _makeBoolAttribute(value: Optional[bool]) -> Attribute[bool]: + def _makeBoolAttribute(value: bool | None) -> Attribute[bool]: return GithubObject.__makeSimpleAttribute(value, bool) @staticmethod - def _makeDictAttribute(value: Dict[str, Any]) -> Attribute[Dict[str, Any]]: + def _makeDictAttribute(value: dict[str, Any]) -> Attribute[dict[str, Any]]: return GithubObject.__makeSimpleAttribute(value, dict) @staticmethod @@ -354,92 +355,88 @@ def _makeTimestampAttribute(value: int) -> Attribute[datetime]: ) @staticmethod - def _makeDatetimeAttribute(value: Optional[str]) -> Attribute[datetime]: + def _makeDatetimeAttribute(value: str | None) -> Attribute[datetime]: return GithubObject.__makeTransformedAttribute(value, str, _datetime_from_github_isoformat) # type: ignore @staticmethod - def _makeHttpDatetimeAttribute(value: Optional[str]) -> Attribute[datetime]: + def _makeHttpDatetimeAttribute(value: str | None) -> Attribute[datetime]: return GithubObject.__makeTransformedAttribute(value, str, _datetime_from_http_date) # type: ignore - def _makeClassAttribute(self, klass: Type[T_gh], value: Any) -> Attribute[T_gh]: + def _makeClassAttribute(self, klass: type[T_gh], value: Any) -> Attribute[T_gh]: return GithubObject.__makeTransformedAttribute( value, dict, - lambda value: klass(self._requester, self._headers, value, completed=False), + lambda value: klass(self._requester, self._headers, value), ) @staticmethod - def _makeListOfStringsAttribute(value: Union[List[List[str]], List[str], List[Union[str, int]]]) -> Attribute: + def _makeListOfStringsAttribute(value: list[list[str]] | list[str] | list[str | int]) -> Attribute: return GithubObject.__makeSimpleListAttribute(value, str) @staticmethod - def _makeListOfIntsAttribute(value: List[int]) -> Attribute: + def _makeListOfIntsAttribute(value: list[int]) -> Attribute: return GithubObject.__makeSimpleListAttribute(value, int) @staticmethod - def _makeListOfDictsAttribute( - value: List[Dict[str, Union[str, List[Dict[str, Union[str, List[int]]]]]]] - ) -> Attribute: + def _makeListOfDictsAttribute(value: list[dict[str, str | list[dict[str, str | list[int]]]]]) -> Attribute: return GithubObject.__makeSimpleListAttribute(value, dict) @staticmethod def _makeListOfListOfStringsAttribute( - value: List[List[str]], + value: list[list[str]], ) -> Attribute: return GithubObject.__makeSimpleListAttribute(value, list) - def _makeListOfClassesAttribute(self, klass: Type[T_gh], value: Any) -> Attribute[List[T_gh]]: + def _makeListOfClassesAttribute(self, klass: type[T_gh], value: Any) -> Attribute[list[T_gh]]: if isinstance(value, list) and all(isinstance(element, dict) for element in value): - return _ValuedAttribute( - [klass(self._requester, self._headers, element, completed=False) for element in value] - ) + return _ValuedAttribute([klass(self._requester, self._headers, element) for element in value]) else: return _BadAttribute(value, [dict]) def _makeDictOfStringsToClassesAttribute( self, - klass: Type[T_gh], - value: Dict[ + klass: type[T_gh], + value: dict[ str, - Union[int, Dict[str, Union[str, int, None]], Dict[str, Union[str, int]]], + int | dict[str, Any], ], - ) -> Attribute[Dict[str, T_gh]]: + ) -> Attribute[dict[str, T_gh]]: if isinstance(value, dict) and all( isinstance(key, str) and isinstance(element, dict) for key, element in value.items() ): return _ValuedAttribute( - {key: klass(self._requester, self._headers, element, completed=False) for key, element in value.items()} + {key: klass(self._requester, self._headers, element) for key, element in value.items()} ) else: return _BadAttribute(value, {str: dict}) @property - def etag(self) -> Optional[str]: + def etag(self) -> str | None: """ :type: str """ return self._headers.get(Consts.RES_ETAG) # type: ignore @property - def last_modified(self) -> Optional[str]: + def last_modified(self) -> str | None: """ :type: str """ return self._headers.get(Consts.RES_LAST_MODIFIED) # type: ignore @property - def last_modified_datetime(self) -> Optional[datetime]: + def last_modified_datetime(self) -> datetime | None: """ :type: datetime """ return self._makeHttpDatetimeAttribute(self.last_modified).value # type: ignore - def get__repr__(self, params: Dict[str, Any]) -> str: + def get__repr__(self, params: dict[str, Any]) -> str: """ Converts the object to a nicely printable string. """ - def format_params(params: Dict[str, Any]) -> typing.Generator[str, None, None]: + def format_params(params: dict[str, Any]) -> typing.Generator[str, None, None]: items = list(params.items()) for k, v in sorted(items, key=itemgetter(0), reverse=True): if isinstance(v, bytes): @@ -459,9 +456,6 @@ def _initAttributes(self) -> None: def _useAttributes(self, attributes: Any) -> None: raise NotImplementedError("BUG: Not Implemented _useAttributes") - def _completeIfNeeded(self) -> None: - raise NotImplementedError("BUG: Not Implemented _completeIfNeeded") - class GraphQlObject: @classmethod @@ -469,21 +463,63 @@ def is_graphql(cls) -> bool: return True -class NonCompletableGithubObject(GithubObject): - def _completeIfNeeded(self) -> None: - pass +class NonCompletableGithubObject(GithubObject, ABC): + def __init__( + self, + requester: Requester, + headers: dict[str, str | int], + attributes: dict[str, Any], + ): + super().__init__(requester, headers, attributes) -class CompletableGithubObject(GithubObject): +class CompletableGithubObject(GithubObject, ABC): def __init__( self, - requester: "Requester", - headers: Dict[str, Union[str, int]], - attributes: Dict[str, Any], - completed: bool, + requester: Requester, + headers: dict[str, str | int] | None = None, + attributes: dict[str, Any] | None = None, + completed: bool | None = None, + *, + url: str | None = None, + accept: str | None = None, ): - super().__init__(requester, headers, attributes, completed) - self.__completed = completed + """ + A CompletableGithubObject can be partially initialised (completed=False). Accessing attributes that are not + initialized will then trigger a request to complete all attributes. + + A partially initialized CompletableGithubObject (completed=False) can be completed + via complete(). This requires the url to be given via parameter `url` or `attributes`. + + With a requester where `Requester.is_lazy == True`, this CompletableGithubObjects is + partially initialized. This requires the url to be given via parameter `url` or `attributes`. + Any CompletableGithubObject created from this lazy object will be lazy itself if created with + parameter `url` or `attributes`. + + :param requester: requester + :param headers: response headers + :param attributes: attributes to initialize + :param completed: do not update non-initialized attributes when True + :param url: url of this instance, overrides attributes['url'] + :param accept: use this accept header when completing this instance + + """ + response_given = headers is not None or attributes is not None + + if headers is None: + headers = {} + if attributes is None: + attributes = {} + if url is not None: + attributes["url"] = url + super().__init__(requester, headers, attributes) + self.__completed = completed if isinstance(completed, bool) else False + self.__completeHeaders = {"Accept": accept} if accept else None + + # complete this completable object when requester indicates non-laziness and + # neither of complete, headers and attributes are given + if requester.is_not_lazy and completed is None and not response_given: + self.complete() def __eq__(self, other: Any) -> bool: return other.__class__ is self.__class__ and other._url.value == self._url.value @@ -494,6 +530,14 @@ def __hash__(self) -> int: def __ne__(self, other: Any) -> bool: return not self == other + @property + def completed(self) -> bool: + return self.__completed + + def complete(self) -> Self: + self._completeIfNeeded() + return self + def _completeIfNotSet(self, value: Attribute) -> None: if isinstance(value, _NotSetType): self._completeIfNeeded() @@ -504,12 +548,28 @@ def _completeIfNeeded(self) -> None: def __complete(self) -> None: if self._url.value is None: - raise IncompletableObject(400, message="Returned object contains no URL") - headers, data = self._requester.requestJsonAndCheck("GET", self._url.value) + raise IncompletableObject(400, message="Cannot complete object as it contains no URL") + headers, data = self._requester.requestJsonAndCheck("GET", self._url.value, headers=self.__completeHeaders) self._storeAndUseAttributes(headers, data) self.__completed = True - def update(self, additional_headers: Optional[Dict[str, Any]] = None) -> bool: + @property + def raw_data(self) -> dict[str, Any]: + """ + :type: dict + """ + self._completeIfNeeded() + return super().raw_data + + @property + def raw_headers(self) -> dict[str, str | int]: + """ + :type: dict + """ + self._completeIfNeeded() + return super().raw_headers + + def update(self, additional_headers: dict[str, Any] | None = None) -> bool: """ Check and update the object with conditional request :rtype: Boolean value indicating whether the object is changed. diff --git a/github/GitignoreTemplate.py b/github/GitignoreTemplate.py index a6a0ef77a0..8d11b569ba 100644 --- a/github/GitignoreTemplate.py +++ b/github/GitignoreTemplate.py @@ -17,6 +17,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -48,25 +49,28 @@ class GitignoreTemplate(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/gitignore + The OpenAPI schema can be found at + - /components/schemas/gitignore-template + """ def _initAttributes(self) -> None: - self._source: Attribute[str] = NotSet self._name: Attribute[str] = NotSet + self._source: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) - @property - def source(self) -> str: - return self._source.value - @property def name(self) -> str: return self._name.value + @property + def source(self) -> str: + return self._source.value + def _useAttributes(self, attributes: Dict[str, Any]) -> None: - if "source" in attributes: # pragma no branch - self._source = self._makeStringAttribute(attributes["source"]) if "name" in attributes: # pragma no branch self._name = self._makeStringAttribute(attributes["name"]) + if "source" in attributes: # pragma no branch + self._source = self._makeStringAttribute(attributes["source"]) diff --git a/github/GlobalAdvisory.py b/github/GlobalAdvisory.py index 8b6905fb46..3f7b1504ec 100644 --- a/github/GlobalAdvisory.py +++ b/github/GlobalAdvisory.py @@ -5,6 +5,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Thomas Cooper # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,13 +28,18 @@ from __future__ import annotations from datetime import datetime -from typing import Any +from typing import TYPE_CHECKING, Any +import github.AdvisoryBase +import github.AdvisoryCreditDetailed +import github.AdvisoryVulnerability from github.AdvisoryBase import AdvisoryBase -from github.AdvisoryCreditDetailed import AdvisoryCreditDetailed -from github.AdvisoryVulnerability import AdvisoryVulnerability from github.GithubObject import Attribute, NotSet +if TYPE_CHECKING: + from github.AdvisoryCreditDetailed import AdvisoryCreditDetailed + from github.AdvisoryVulnerability import AdvisoryVulnerability + class GlobalAdvisory(AdvisoryBase): """ @@ -41,10 +47,15 @@ class GlobalAdvisory(AdvisoryBase): https://docs.github.com/en/rest/security-advisories/global-advisories + The OpenAPI schema can be found at + - /components/schemas/global-advisory + """ def _initAttributes(self) -> None: + super()._initAttributes() self._credits: Attribute[list[AdvisoryCreditDetailed]] = NotSet + self._epss: Attribute[dict[str, Any]] = NotSet self._github_reviewed_at: Attribute[datetime] = NotSet self._nvd_published_at: Attribute[datetime] = NotSet self._references: Attribute[list[str]] = NotSet @@ -62,6 +73,10 @@ def credits( ) -> list[AdvisoryCreditDetailed]: return self._credits.value + @property + def epss(self) -> dict[str, Any]: + return self._epss.value + @property def github_reviewed_at(self) -> datetime: return self._github_reviewed_at.value @@ -93,9 +108,11 @@ def vulnerabilities(self) -> list[AdvisoryVulnerability]: def _useAttributes(self, attributes: dict[str, Any]) -> None: if "credits" in attributes: # pragma no branch self._credits = self._makeListOfClassesAttribute( - AdvisoryCreditDetailed, + github.AdvisoryCreditDetailed.AdvisoryCreditDetailed, attributes["credits"], ) + if "epss" in attributes: # pragma no branch + self._epss = self._makeDictAttribute(attributes["epss"]) if "github_reviewed_at" in attributes: # pragma no branch assert attributes["github_reviewed_at"] is None or isinstance( attributes["github_reviewed_at"], str @@ -116,7 +133,7 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._type = self._makeStringAttribute(attributes["type"]) if "vulnerabilities" in attributes: self._vulnerabilities = self._makeListOfClassesAttribute( - AdvisoryVulnerability, + github.AdvisoryVulnerability.AdvisoryVulnerability, attributes["vulnerabilities"], ) super()._useAttributes(attributes) diff --git a/github/Hook.py b/github/Hook.py index a9f870d721..289eec0825 100644 --- a/github/Hook.py +++ b/github/Hook.py @@ -20,6 +20,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -56,20 +57,25 @@ class Hook(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#webhooks + The OpenAPI schema can be found at + - /components/schemas/hook + """ def _initAttributes(self) -> None: self._active: Attribute[bool] = NotSet self._config: Attribute[dict] = NotSet self._created_at: Attribute[datetime] = NotSet + self._deliveries_url: Attribute[str] = NotSet self._events: Attribute[list[str]] = NotSet self._id: Attribute[int] = NotSet self._last_response: Attribute[github.HookResponse.HookResponse] = NotSet self._name: Attribute[str] = NotSet + self._ping_url: Attribute[str] = NotSet self._test_url: Attribute[str] = NotSet + self._type: Attribute[str] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet - self._ping_url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "url": self._url.value}) @@ -89,6 +95,11 @@ def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value + @property + def deliveries_url(self) -> str: + self._completeIfNotSet(self._deliveries_url) + return self._deliveries_url.value + @property def events(self) -> list[str]: self._completeIfNotSet(self._events) @@ -109,11 +120,21 @@ def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value + @property + def ping_url(self) -> str: + self._completeIfNotSet(self._ping_url) + return self._ping_url.value + @property def test_url(self) -> str: self._completeIfNotSet(self._test_url) return self._test_url.value + @property + def type(self) -> str: + self._completeIfNotSet(self._type) + return self._type.value + @property def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) @@ -124,11 +145,6 @@ def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - @property - def ping_url(self) -> str: - self._completeIfNotSet(self._ping_url) - return self._ping_url.value - def delete(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/hooks/{id} `_ @@ -186,6 +202,8 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._config = self._makeDictAttribute(attributes["config"]) if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "deliveries_url" in attributes: # pragma no branch + self._deliveries_url = self._makeStringAttribute(attributes["deliveries_url"]) if "events" in attributes: # pragma no branch self._events = self._makeListOfStringsAttribute(attributes["events"]) if "id" in attributes: # pragma no branch @@ -196,11 +214,13 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: ) if "name" in attributes: # pragma no branch self._name = self._makeStringAttribute(attributes["name"]) + if "ping_url" in attributes: # pragma no branch + self._ping_url = self._makeStringAttribute(attributes["ping_url"]) if "test_url" in attributes: # pragma no branch self._test_url = self._makeStringAttribute(attributes["test_url"]) + if "type" in attributes: # pragma no branch + self._type = self._makeStringAttribute(attributes["type"]) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) - if "ping_url" in attributes: # pragma no branch - self._ping_url = self._makeStringAttribute(attributes["ping_url"]) diff --git a/github/HookDelivery.py b/github/HookDelivery.py index 66e1bb2241..2e94d0966e 100644 --- a/github/HookDelivery.py +++ b/github/HookDelivery.py @@ -6,6 +6,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -25,8 +26,10 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime -from typing import Any, Dict, Optional +from typing import Any import github.GithubObject from github.GithubObject import Attribute, NotSet @@ -35,96 +38,100 @@ class HookDeliverySummary(github.GithubObject.NonCompletableGithubObject): """ This class represents a Summary of HookDeliveries. + + The OpenAPI schema can be found at + - /components/schemas/hook-delivery-item + """ def _initAttributes(self) -> None: - self._id: Attribute[int] = NotSet - self._guid: Attribute[str] = NotSet + self._action: Attribute[str] = NotSet self._delivered_at: Attribute[datetime] = NotSet - self._redelivery: Attribute[bool] = NotSet self._duration: Attribute[float] = NotSet - self._status: Attribute[str] = NotSet - self._status_code: Attribute[int] = NotSet self._event: Attribute[str] = NotSet - self._action: Attribute[str] = NotSet + self._guid: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet self._installation_id: Attribute[int] = NotSet + self._redelivery: Attribute[bool] = NotSet self._repository_id: Attribute[int] = NotSet + self._status: Attribute[str] = NotSet + self._status_code: Attribute[int] = NotSet self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value}) @property - def id(self) -> Optional[int]: - return self._id.value + def action(self) -> str | None: + return self._action.value @property - def guid(self) -> Optional[str]: - return self._guid.value + def delivered_at(self) -> datetime | None: + return self._delivered_at.value @property - def delivered_at(self) -> Optional[datetime]: - return self._delivered_at.value + def duration(self) -> float | None: + return self._duration.value @property - def redelivery(self) -> Optional[bool]: - return self._redelivery.value + def event(self) -> str | None: + return self._event.value @property - def duration(self) -> Optional[float]: - return self._duration.value + def guid(self) -> str | None: + return self._guid.value @property - def status(self) -> Optional[str]: - return self._status.value + def id(self) -> int | None: + return self._id.value @property - def status_code(self) -> Optional[int]: - return self._status_code.value + def installation_id(self) -> int | None: + return self._installation_id.value @property - def event(self) -> Optional[str]: - return self._event.value + def redelivery(self) -> bool | None: + return self._redelivery.value @property - def action(self) -> Optional[str]: - return self._action.value + def repository_id(self) -> int | None: + return self._repository_id.value @property - def installation_id(self) -> Optional[int]: - return self._installation_id.value + def status(self) -> str | None: + return self._status.value @property - def repository_id(self) -> Optional[int]: - return self._repository_id.value + def status_code(self) -> int | None: + return self._status_code.value @property - def url(self) -> Optional[str]: + def url(self) -> str | None: return self._url.value - def _useAttributes(self, attributes: Dict[str, Any]) -> None: - if "id" in attributes: # pragma no branch - self._id = self._makeIntAttribute(attributes["id"]) - if "guid" in attributes: # pragma no branch - self._guid = self._makeStringAttribute(attributes["guid"]) + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "action" in attributes: # pragma no branch + self._action = self._makeStringAttribute(attributes["action"]) if "delivered_at" in attributes: # pragma no branch self._delivered_at = self._makeDatetimeAttribute(attributes["delivered_at"]) - if "redelivery" in attributes: # pragma no branch - self._redelivery = self._makeBoolAttribute(attributes["redelivery"]) if "duration" in attributes: # pragma no branch self._duration = self._makeFloatAttribute(attributes["duration"]) - if "status" in attributes: # pragma no branch - self._status = self._makeStringAttribute(attributes["status"]) - if "status_code" in attributes: # pragma no branch - self._status_code = self._makeIntAttribute(attributes["status_code"]) if "event" in attributes: # pragma no branch self._event = self._makeStringAttribute(attributes["event"]) - if "action" in attributes: # pragma no branch - self._action = self._makeStringAttribute(attributes["action"]) + if "guid" in attributes: # pragma no branch + self._guid = self._makeStringAttribute(attributes["guid"]) + if "id" in attributes: # pragma no branch + self._id = self._makeIntAttribute(attributes["id"]) if "installation_id" in attributes: # pragma no branch self._installation_id = self._makeIntAttribute(attributes["installation_id"]) + if "redelivery" in attributes: # pragma no branch + self._redelivery = self._makeBoolAttribute(attributes["redelivery"]) if "repository_id" in attributes: # pragma no branch self._repository_id = self._makeIntAttribute(attributes["repository_id"]) + if "status" in attributes: # pragma no branch + self._status = self._makeStringAttribute(attributes["status"]) + if "status_code" in attributes: # pragma no branch + self._status_code = self._makeIntAttribute(attributes["status_code"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) @@ -132,24 +139,28 @@ def _useAttributes(self, attributes: Dict[str, Any]) -> None: class HookDeliveryRequest(github.GithubObject.NonCompletableGithubObject): """ This class represents a HookDeliveryRequest. + + The OpenAPI schema can be found at + - /components/schemas/hook-delivery/properties/request + """ def _initAttributes(self) -> None: - self._request_headers: Attribute[Dict] = NotSet - self._payload: Attribute[Dict] = NotSet + self._payload: Attribute[dict] = NotSet + self._request_headers: Attribute[dict] = NotSet def __repr__(self) -> str: return self.get__repr__({"payload": self._payload.value}) @property - def headers(self) -> Optional[dict]: + def headers(self) -> dict | None: return self._request_headers.value @property - def payload(self) -> Optional[dict]: + def payload(self) -> dict | None: return self._payload.value - def _useAttributes(self, attributes: Dict[str, Any]) -> None: + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "headers" in attributes: # pragma no branch self._request_headers = self._makeDictAttribute(attributes["headers"]) if "payload" in attributes: # pragma no branch @@ -159,24 +170,28 @@ def _useAttributes(self, attributes: Dict[str, Any]) -> None: class HookDeliveryResponse(github.GithubObject.NonCompletableGithubObject): """ This class represents a HookDeliveryResponse. + + The OpenAPI schema can be found at + - /components/schemas/hook-delivery/properties/response + """ + def _initAttributes(self) -> None: + self._payload: Attribute[str] = NotSet + self._response_headers: Attribute[dict] = NotSet + def __repr__(self) -> str: return self.get__repr__({"payload": self._payload.value}) @property - def headers(self) -> Optional[dict]: + def headers(self) -> dict | None: return self._response_headers.value @property - def payload(self) -> Optional[str]: + def payload(self) -> str | None: return self._payload.value - def _initAttributes(self) -> None: - self._response_headers: Attribute[Dict] = NotSet - self._payload: Attribute[str] = NotSet - - def _useAttributes(self, attributes: Dict[str, Any]) -> None: + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "headers" in attributes: # pragma no branch self._response_headers = self._makeDictAttribute(attributes["headers"]) if "payload" in attributes: # pragma no branch @@ -186,28 +201,39 @@ def _useAttributes(self, attributes: Dict[str, Any]) -> None: class HookDelivery(HookDeliverySummary): """ This class represents a HookDelivery. + + The OpenAPI schema can be found at + - /components/schemas/hook-delivery + """ def _initAttributes(self) -> None: super()._initAttributes() self._request: Attribute[HookDeliveryRequest] = NotSet self._response: Attribute[HookDeliveryResponse] = NotSet + self._throttled_at: Attribute[datetime] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value}) @property - def request(self) -> Optional[HookDeliveryRequest]: + def request(self) -> HookDeliveryRequest | None: return self._request.value @property - def response(self) -> Optional[HookDeliveryResponse]: + def response(self) -> HookDeliveryResponse | None: return self._response.value - def _useAttributes(self, attributes: Dict[str, Any]) -> None: + @property + def throttled_at(self) -> datetime: + return self._throttled_at.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: super()._useAttributes(attributes) if "request" in attributes: # pragma no branch self._request = self._makeClassAttribute(HookDeliveryRequest, attributes["request"]) if "response" in attributes: # pragma no branch self._response = self._makeClassAttribute(HookDeliveryResponse, attributes["response"]) # self._response = self._makeDictAttribute(attributes["response"]) + if "throttled_at" in attributes: # pragma no branch + self._throttled_at = self._makeDatetimeAttribute(attributes["throttled_at"]) diff --git a/github/HookResponse.py b/github/HookResponse.py index 8c00d8a3c3..4c117477d2 100644 --- a/github/HookResponse.py +++ b/github/HookResponse.py @@ -16,6 +16,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -43,6 +44,10 @@ class HookResponse(NonCompletableGithubObject): """ This class represents HookResponses. + + The OpenAPI schema can be found at + - /components/schemas/hook-response + """ def _initAttributes(self) -> None: diff --git a/github/Installation.py b/github/Installation.py index 0430a85fd6..caafbc2bac 100644 --- a/github/Installation.py +++ b/github/Installation.py @@ -22,6 +22,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Min RK # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -43,6 +44,7 @@ from __future__ import annotations +from datetime import datetime from typing import TYPE_CHECKING, Any import github.Authorization @@ -50,6 +52,7 @@ import github.Gist import github.GithubObject import github.Issue +import github.NamedUser import github.Notification import github.Organization import github.PaginatedList @@ -64,6 +67,8 @@ if TYPE_CHECKING: from github.MainClass import Github + from github.NamedUser import NamedUser + from github.Organization import Organization INTEGRATION_PREVIEW_HEADERS = {"Accept": Consts.mediaTypeIntegrationPreview} @@ -75,16 +80,40 @@ class Installation(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/apps#installations + The OpenAPI schema can be found at + - /components/schemas/installation + """ + def _initAttributes(self) -> None: + self._access_tokens_url: Attribute[str] = NotSet + self._account: Attribute[NamedUser | Organization] = NotSet + self._app_id: Attribute[int] = NotSet + self._app_slug: Attribute[str] = NotSet + self._contact_email: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._events: Attribute[list[str]] = NotSet + self._has_multiple_single_files: Attribute[bool] = NotSet + self._html_url: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet + self._permissions: Attribute[dict[str, Any]] = NotSet + self._repositories_url: Attribute[str] = NotSet + self._repository_selection: Attribute[str] = NotSet + self._single_file_name: Attribute[str] = NotSet + self._single_file_paths: Attribute[list[str]] = NotSet + self._suspended_at: Attribute[datetime] = NotSet + self._suspended_by: Attribute[NamedUser] = NotSet + self._target_id: Attribute[int] = NotSet + self._target_type: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet + def __init__( self, requester: Requester, headers: dict[str, str | int], attributes: Any, - completed: bool, ) -> None: - super().__init__(requester, headers, attributes, completed) + super().__init__(requester, headers, attributes) auth = self._requester.auth if self._requester is not None else None # Usually, an Installation is created from a Requester with App authentication @@ -93,17 +122,60 @@ def __init__( auth = auth.get_installation_auth(self.id, requester=self._requester) self._requester = self._requester.withAuth(auth) - def _initAttributes(self) -> None: - self._id: Attribute[int] = NotSet - self._app_id: Attribute[int] = NotSet - self._target_id: Attribute[int] = NotSet - self._target_type: Attribute[str] = NotSet - def __repr__(self) -> str: return self.get__repr__({"id": self._id.value}) - def get_github_for_installation(self) -> Github: - return github.Github(**self._requester.kwargs) + @property + def access_tokens_url(self) -> str: + return self._access_tokens_url.value + + @property + def account(self) -> NamedUser | Organization: + return self._account.value + + @property + def app_id(self) -> int: + return self._app_id.value + + @property + def app_slug(self) -> str: + return self._app_slug.value + + @property + def contact_email(self) -> str: + return self._contact_email.value + + @property + def created_at(self) -> datetime: + return self._created_at.value + + @property + def events(self) -> list[str]: + return self._events.value + + @property + def has_multiple_single_files(self) -> bool: + return self._has_multiple_single_files.value + + @property + def html_url(self) -> str: + return self._html_url.value + + @property + def id(self) -> int: + return self._id.value + + @property + def permissions(self) -> dict[str, Any]: + return self._permissions.value + + @property + def repositories_url(self) -> str: + return self._repositories_url.value + + @property + def repository_selection(self) -> str: + return self._repository_selection.value @property def requester(self) -> Requester: @@ -116,12 +188,20 @@ def requester(self) -> Requester: return self._requester @property - def id(self) -> int: - return self._id.value + def single_file_name(self) -> str: + return self._single_file_name.value @property - def app_id(self) -> int: - return self._app_id.value + def single_file_paths(self) -> list[str]: + return self._single_file_paths.value + + @property + def suspended_at(self) -> datetime: + return self._suspended_at.value + + @property + def suspended_by(self) -> NamedUser: + return self._suspended_by.value @property def target_id(self) -> int: @@ -131,6 +211,13 @@ def target_id(self) -> int: def target_type(self) -> str: return self._target_type.value + @property + def updated_at(self) -> datetime: + return self._updated_at.value + + def get_github_for_installation(self) -> Github: + return github.Github(**self._requester.kwargs) + def get_repos(self) -> PaginatedList[github.Repository.Repository]: """ :calls: `GET /installation/repositories `_ @@ -147,11 +234,47 @@ def get_repos(self) -> PaginatedList[github.Repository.Repository]: ) def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "id" in attributes: # pragma no branch - self._id = self._makeIntAttribute(attributes["id"]) + if "access_tokens_url" in attributes: # pragma no branch + self._access_tokens_url = self._makeStringAttribute(attributes["access_tokens_url"]) + if "account" in attributes and "target_type" in attributes: # pragma no branch + target_type = attributes["target_type"] + if target_type == "User": + self._account = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["account"]) + if target_type == "Organization": + self._account = self._makeClassAttribute(github.Organization.Organization, attributes["account"]) if "app_id" in attributes: # pragma no branch self._app_id = self._makeIntAttribute(attributes["app_id"]) + if "app_slug" in attributes: # pragma no branch + self._app_slug = self._makeStringAttribute(attributes["app_slug"]) + if "contact_email" in attributes: # pragma no branch + self._contact_email = self._makeStringAttribute(attributes["contact_email"]) + if "created_at" in attributes: # pragma no branch + self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "events" in attributes: # pragma no branch + self._events = self._makeListOfStringsAttribute(attributes["events"]) + if "has_multiple_single_files" in attributes: # pragma no branch + self._has_multiple_single_files = self._makeBoolAttribute(attributes["has_multiple_single_files"]) + if "html_url" in attributes: # pragma no branch + self._html_url = self._makeStringAttribute(attributes["html_url"]) + if "id" in attributes: # pragma no branch + self._id = self._makeIntAttribute(attributes["id"]) + if "permissions" in attributes: # pragma no branch + self._permissions = self._makeDictAttribute(attributes["permissions"]) + if "repositories_url" in attributes: # pragma no branch + self._repositories_url = self._makeStringAttribute(attributes["repositories_url"]) + if "repository_selection" in attributes: # pragma no branch + self._repository_selection = self._makeStringAttribute(attributes["repository_selection"]) + if "single_file_name" in attributes: # pragma no branch + self._single_file_name = self._makeStringAttribute(attributes["single_file_name"]) + if "single_file_paths" in attributes: # pragma no branch + self._single_file_paths = self._makeListOfStringsAttribute(attributes["single_file_paths"]) + if "suspended_at" in attributes: # pragma no branch + self._suspended_at = self._makeDatetimeAttribute(attributes["suspended_at"]) + if "suspended_by" in attributes: # pragma no branch + self._suspended_by = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["suspended_by"]) if "target_id" in attributes: # pragma no branch self._target_id = self._makeIntAttribute(attributes["target_id"]) if "target_type" in attributes: # pragma no branch self._target_type = self._makeStringAttribute(attributes["target_type"]) + if "updated_at" in attributes: # pragma no branch + self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) diff --git a/github/InstallationAuthorization.py b/github/InstallationAuthorization.py index b90e51803d..9b7e1a0ea2 100644 --- a/github/InstallationAuthorization.py +++ b/github/InstallationAuthorization.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -45,35 +46,45 @@ import github.NamedUser import github.PaginatedList +import github.Repository from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet if TYPE_CHECKING: from github.NamedUser import NamedUser + from github.Repository import Repository class InstallationAuthorization(NonCompletableGithubObject): """ This class represents InstallationAuthorizations. + + The OpenAPI schema can be found at + - /components/schemas/installation-token + """ def _initAttributes(self) -> None: - self._token: Attribute[str] = NotSet self._expires_at: Attribute[datetime] = NotSet + self._has_multiple_single_files: Attribute[bool] = NotSet self._on_behalf_of: Attribute[NamedUser] = NotSet self._permissions: Attribute[dict] = NotSet + self._repositories: Attribute[list[Repository]] = NotSet self._repository_selection: Attribute[str] = NotSet + self._single_file: Attribute[str] = NotSet + self._single_file_paths: Attribute[list[str]] = NotSet + self._token: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"expires_at": self._expires_at.value}) - @property - def token(self) -> str: - return self._token.value - @property def expires_at(self) -> datetime: return self._expires_at.value + @property + def has_multiple_single_files(self) -> bool: + return self._has_multiple_single_files.value + @property def on_behalf_of(self) -> NamedUser: return self._on_behalf_of.value @@ -82,18 +93,44 @@ def on_behalf_of(self) -> NamedUser: def permissions(self) -> dict: return self._permissions.value + @property + def repositories(self) -> list[Repository]: + return self._repositories.value + @property def repository_selection(self) -> str: return self._repository_selection.value + @property + def single_file(self) -> str: + return self._single_file.value + + @property + def single_file_paths(self) -> list[str]: + return self._single_file_paths.value + + @property + def token(self) -> str: + return self._token.value + def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "token" in attributes: # pragma no branch - self._token = self._makeStringAttribute(attributes["token"]) if "expires_at" in attributes: # pragma no branch self._expires_at = self._makeDatetimeAttribute(attributes["expires_at"]) + if "has_multiple_single_files" in attributes: # pragma no branch + self._has_multiple_single_files = self._makeBoolAttribute(attributes["has_multiple_single_files"]) if "on_behalf_of" in attributes: # pragma no branch self._on_behalf_of = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["on_behalf_of"]) if "permissions" in attributes: # pragma no branch self._permissions = self._makeDictAttribute(attributes["permissions"]) + if "repositories" in attributes: # pragma no branch + self._repositories = self._makeListOfClassesAttribute( + github.Repository.Repository, attributes["repositories"] + ) if "repository_selection" in attributes: # pragma no branch self._repository_selection = self._makeStringAttribute(attributes["repository_selection"]) + if "single_file" in attributes: # pragma no branch + self._single_file = self._makeStringAttribute(attributes["single_file"]) + if "single_file_paths" in attributes: # pragma no branch + self._single_file_paths = self._makeListOfStringsAttribute(attributes["single_file_paths"]) + if "token" in attributes: # pragma no branch + self._token = self._makeStringAttribute(attributes["token"]) diff --git a/github/Invitation.py b/github/Invitation.py index 0c54f2fddb..824670e729 100644 --- a/github/Invitation.py +++ b/github/Invitation.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -60,35 +61,45 @@ class Invitation(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#invitations + The OpenAPI schema can be found at + - /components/schemas/repository-invitation + """ def _initAttributes(self) -> None: - self._id: Attribute[int] = NotSet - self._permissions: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet + self._expired: Attribute[bool] = NotSet + self._html_url: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet self._invitee: Attribute[NamedUser] = NotSet self._inviter: Attribute[NamedUser] = NotSet - self._url: Attribute[str] = NotSet - self._html_url: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet + self._permissions: Attribute[str] = NotSet self._repository: Attribute[Repository] = NotSet + self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value}) @property - def id(self) -> int: - self._completeIfNotSet(self._id) - return self._id.value + def created_at(self) -> datetime: + self._completeIfNotSet(self._created_at) + return self._created_at.value @property - def permissions(self) -> str: - self._completeIfNotSet(self._permissions) - return self._permissions.value + def expired(self) -> bool: + self._completeIfNotSet(self._expired) + return self._expired.value @property - def created_at(self) -> datetime: - self._completeIfNotSet(self._created_at) - return self._created_at.value + def html_url(self) -> str: + self._completeIfNotSet(self._html_url) + return self._html_url.value + + @property + def id(self) -> int: + self._completeIfNotSet(self._id) + return self._id.value @property def invitee(self) -> NamedUser: @@ -101,35 +112,44 @@ def inviter(self) -> NamedUser: return self._inviter.value @property - def url(self) -> str: - self._completeIfNotSet(self._url) - return self._url.value + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value @property - def html_url(self) -> str: - self._completeIfNotSet(self._html_url) - return self._html_url.value + def permissions(self) -> str: + self._completeIfNotSet(self._permissions) + return self._permissions.value @property def repository(self) -> Repository: self._completeIfNotSet(self._repository) return self._repository.value + @property + def url(self) -> str: + self._completeIfNotSet(self._url) + return self._url.value + def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "repository" in attributes: # pragma no branch - self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "expired" in attributes: # pragma no branch + self._expired = self._makeBoolAttribute(attributes["expired"]) + if "html_url" in attributes: # pragma no branch + self._html_url = self._makeStringAttribute(attributes["html_url"]) + if "id" in attributes: # pragma no branch + self._id = self._makeIntAttribute(attributes["id"]) if "invitee" in attributes: # pragma no branch self._invitee = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["invitee"]) if "inviter" in attributes: # pragma no branch self._inviter = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["inviter"]) - if "id" in attributes: # pragma no branch - self._id = self._makeIntAttribute(attributes["id"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "permissions" in attributes: # pragma no branch self._permissions = self._makeStringAttribute(attributes["permissions"]) + if "repository" in attributes: # pragma no branch + self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) - if "html_url" in attributes: # pragma no branch - self._html_url = self._makeStringAttribute(attributes["html_url"]) diff --git a/github/Issue.py b/github/Issue.py index af3da8e6d1..e6a8f21845 100644 --- a/github/Issue.py +++ b/github/Issue.py @@ -38,6 +38,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Malik Shahzad Muzaffar # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -63,6 +64,7 @@ from datetime import datetime from typing import TYPE_CHECKING, Any +import github.GithubApp import github.GithubObject import github.IssueComment import github.IssueEvent @@ -88,6 +90,7 @@ from github.PaginatedList import PaginatedList if TYPE_CHECKING: + from github.GithubApp import GithubApp from github.IssueComment import IssueComment from github.IssueEvent import IssueEvent from github.IssuePullRequest import IssuePullRequest @@ -107,39 +110,63 @@ class Issue(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/issues + The OpenAPI schema can be found at + - /components/schemas/issue + - /components/schemas/issue-search-result-item + - /components/schemas/nullable-issue + """ def _initAttributes(self) -> None: - self._id: Attribute[int] = NotSet self._active_lock_reason: Attribute[str | None] = NotSet self._assignee: Attribute[NamedUser | None] = NotSet self._assignees: Attribute[list[NamedUser]] = NotSet + self._author_association: Attribute[str] = NotSet self._body: Attribute[str] = NotSet + self._body_html: Attribute[str] = NotSet + self._body_text: Attribute[str] = NotSet self._closed_at: Attribute[datetime] = NotSet self._closed_by: Attribute[NamedUser] = NotSet self._comments: Attribute[int] = NotSet self._comments_url: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet + self._draft: Attribute[bool] = NotSet self._events_url: Attribute[str] = NotSet self._html_url: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet self._labels: Attribute[list[Label]] = NotSet self._labels_url: Attribute[str] = NotSet self._locked: Attribute[bool] = NotSet self._milestone: Attribute[Milestone] = NotSet + self._node_id: Attribute[str] = NotSet self._number: Attribute[int] = NotSet + self._performed_via_github_app: Attribute[GithubApp] = NotSet self._pull_request: Attribute[IssuePullRequest] = NotSet + self._reactions: Attribute[dict] = NotSet self._repository: Attribute[Repository] = NotSet + self._repository_url: Attribute[str] = NotSet + self._score: Attribute[float] = NotSet self._state: Attribute[str] = NotSet self._state_reason: Attribute[str | None] = NotSet + self._text_matches: Attribute[dict[str, Any]] = NotSet + self._timeline_url: Attribute[str] = NotSet self._title: Attribute[str] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet self._user: Attribute[NamedUser] = NotSet - self._reactions: Attribute[dict] = NotSet def __repr__(self) -> str: return self.get__repr__({"number": self._number.value, "title": self._title.value}) + @property + def _identity(self) -> int: + return self.number + + @property + def active_lock_reason(self) -> str | None: + self._completeIfNotSet(self._active_lock_reason) + return self._active_lock_reason.value + @property def assignee(self) -> NamedUser | None: self._completeIfNotSet(self._assignee) @@ -150,11 +177,26 @@ def assignees(self) -> list[NamedUser]: self._completeIfNotSet(self._assignees) return self._assignees.value + @property + def author_association(self) -> str: + self._completeIfNotSet(self._author_association) + return self._author_association.value + @property def body(self) -> str: self._completeIfNotSet(self._body) return self._body.value + @property + def body_html(self) -> str: + self._completeIfNotSet(self._body_html) + return self._body_html.value + + @property + def body_text(self) -> str: + self._completeIfNotSet(self._body_text) + return self._body_text.value + @property def closed_at(self) -> datetime: self._completeIfNotSet(self._closed_at) @@ -180,6 +222,11 @@ def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value + @property + def draft(self) -> bool: + self._completeIfNotSet(self._draft) + return self._draft.value + @property def events_url(self) -> str: self._completeIfNotSet(self._events_url) @@ -205,21 +252,41 @@ def labels_url(self) -> str: self._completeIfNotSet(self._labels_url) return self._labels_url.value + @property + def locked(self) -> bool: + self._completeIfNotSet(self._locked) + return self._locked.value + @property def milestone(self) -> Milestone: self._completeIfNotSet(self._milestone) return self._milestone.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def number(self) -> int: self._completeIfNotSet(self._number) return self._number.value + @property + def performed_via_github_app(self) -> GithubApp: + self._completeIfNotSet(self._performed_via_github_app) + return self._performed_via_github_app.value + @property def pull_request(self) -> IssuePullRequest | None: self._completeIfNotSet(self._pull_request) return self._pull_request.value + @property + def reactions(self) -> dict: + self._completeIfNotSet(self._reactions) + return self._reactions.value + @property def repository(self) -> Repository: self._completeIfNotSet(self._repository) @@ -231,6 +298,16 @@ def repository(self) -> Repository: ) return self._repository.value + @property + def repository_url(self) -> str: + self._completeIfNotSet(self._repository_url) + return self._repository_url.value + + @property + def score(self) -> float: + self._completeIfNotSet(self._score) + return self._score.value + @property def state(self) -> str: self._completeIfNotSet(self._state) @@ -241,6 +318,16 @@ def state_reason(self) -> str | None: self._completeIfNotSet(self._state_reason) return self._state_reason.value + @property + def text_matches(self) -> dict[str, Any]: + self._completeIfNotSet(self._text_matches) + return self._text_matches.value + + @property + def timeline_url(self) -> str: + self._completeIfNotSet(self._timeline_url) + return self._timeline_url.value + @property def title(self) -> str: self._completeIfNotSet(self._title) @@ -261,21 +348,6 @@ def user(self) -> NamedUser: self._completeIfNotSet(self._user) return self._user.value - @property - def locked(self) -> bool: - self._completeIfNotSet(self._locked) - return self._locked.value - - @property - def active_lock_reason(self) -> str | None: - self._completeIfNotSet(self._active_lock_reason) - return self._active_lock_reason.value - - @property - def reactions(self) -> dict: - self._completeIfNotSet(self._reactions) - return self._reactions.value - def as_pull_request(self) -> PullRequest: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number} `_ @@ -517,10 +589,6 @@ def get_timeline(self) -> PaginatedList[TimelineEvent]: headers={"Accept": Consts.issueTimelineEventsPreview}, ) - @property - def _identity(self) -> int: - return self.number - def _useAttributes(self, attributes: dict[str, Any]) -> None: if "active_lock_reason" in attributes: # pragma no branch self._active_lock_reason = self._makeStringAttribute(attributes["active_lock_reason"]) @@ -533,8 +601,14 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._assignees = self._makeListOfClassesAttribute(github.NamedUser.NamedUser, [attributes["assignee"]]) else: self._assignees = self._makeListOfClassesAttribute(github.NamedUser.NamedUser, []) + if "author_association" in attributes: # pragma no branch + self._author_association = self._makeStringAttribute(attributes["author_association"]) if "body" in attributes: # pragma no branch self._body = self._makeStringAttribute(attributes["body"]) + if "body_html" in attributes: # pragma no branch + self._body_html = self._makeStringAttribute(attributes["body_html"]) + if "body_text" in attributes: # pragma no branch + self._body_text = self._makeStringAttribute(attributes["body_text"]) if "closed_at" in attributes: # pragma no branch self._closed_at = self._makeDatetimeAttribute(attributes["closed_at"]) if "closed_by" in attributes: # pragma no branch @@ -545,6 +619,8 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._comments_url = self._makeStringAttribute(attributes["comments_url"]) if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "draft" in attributes: # pragma no branch + self._draft = self._makeBoolAttribute(attributes["draft"]) if "events_url" in attributes: # pragma no branch self._events_url = self._makeStringAttribute(attributes["events_url"]) if "html_url" in attributes: # pragma no branch @@ -559,18 +635,34 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._locked = self._makeBoolAttribute(attributes["locked"]) if "milestone" in attributes: # pragma no branch self._milestone = self._makeClassAttribute(github.Milestone.Milestone, attributes["milestone"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "number" in attributes: # pragma no branch self._number = self._makeIntAttribute(attributes["number"]) + if "performed_via_github_app" in attributes: # pragma no branch + self._performed_via_github_app = self._makeClassAttribute( + github.GithubApp.GithubApp, attributes["performed_via_github_app"] + ) if "pull_request" in attributes: # pragma no branch self._pull_request = self._makeClassAttribute( github.IssuePullRequest.IssuePullRequest, attributes["pull_request"] ) + if "reactions" in attributes: + self._reactions = self._makeDictAttribute(attributes["reactions"]) if "repository" in attributes: # pragma no branch self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) + if "repository_url" in attributes: # pragma no branch + self._repository_url = self._makeStringAttribute(attributes["repository_url"]) + if "score" in attributes: # pragma no branch + self._score = self._makeFloatAttribute(attributes["score"]) if "state" in attributes: # pragma no branch self._state = self._makeStringAttribute(attributes["state"]) if "state_reason" in attributes: # pragma no branch self._state_reason = self._makeStringAttribute(attributes["state_reason"]) + if "text_matches" in attributes: # pragma no branch + self._text_matches = self._makeDictAttribute(attributes["text_matches"]) + if "timeline_url" in attributes: # pragma no branch + self._timeline_url = self._makeStringAttribute(attributes["timeline_url"]) if "title" in attributes: # pragma no branch self._title = self._makeStringAttribute(attributes["title"]) if "updated_at" in attributes: # pragma no branch @@ -579,5 +671,3 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._url = self._makeStringAttribute(attributes["url"]) if "user" in attributes: # pragma no branch self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) - if "reactions" in attributes: - self._reactions = self._makeDictAttribute(attributes["reactions"]) diff --git a/github/IssueComment.py b/github/IssueComment.py index e801a443d7..018d97b8c0 100644 --- a/github/IssueComment.py +++ b/github/IssueComment.py @@ -25,6 +25,7 @@ # Copyright 2024 Arash Kadkhodaei # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -49,6 +50,7 @@ from datetime import datetime from typing import TYPE_CHECKING, Any +import github.GithubApp import github.GithubObject import github.NamedUser from github import Consts @@ -56,6 +58,8 @@ from github.PaginatedList import PaginatedList if TYPE_CHECKING: + from github.GithubApp import GithubApp + from github.NamedUser import NamedUser from github.Reaction import Reaction @@ -66,33 +70,60 @@ class IssueComment(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/issues#comments + The OpenAPI schema can be found at + - /components/schemas/issue-comment + """ def _initAttributes(self) -> None: + self._author_association: Attribute[str] = NotSet self._body: Attribute[str] = NotSet + self._body_html: Attribute[str] = NotSet + self._body_text: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet + self._html_url: Attribute[str] = NotSet self._id: Attribute[int] = NotSet self._issue_url: Attribute[str] = NotSet self._node_id: Attribute[str] = NotSet + self._performed_via_github_app: Attribute[GithubApp] = NotSet + self._reactions: Attribute[dict] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet - self._html_url: Attribute[str] = NotSet - self._user: Attribute[github.NamedUser.NamedUser] = NotSet - self._reactions: Attribute[dict] = NotSet + self._user: Attribute[NamedUser] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "user": self._user.value}) + @property + def author_association(self) -> str: + self._completeIfNotSet(self._author_association) + return self._author_association.value + @property def body(self) -> str: self._completeIfNotSet(self._body) return self._body.value + @property + def body_html(self) -> str: + self._completeIfNotSet(self._body_html) + return self._body_html.value + + @property + def body_text(self) -> str: + self._completeIfNotSet(self._body_text) + return self._body_text.value + @property def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value + @property + def html_url(self) -> str: + self._completeIfNotSet(self._html_url) + return self._html_url.value + @property def id(self) -> int: self._completeIfNotSet(self._id) @@ -108,6 +139,16 @@ def node_id(self) -> str: self._completeIfNotSet(self._node_id) return self._node_id.value + @property + def performed_via_github_app(self) -> GithubApp: + self._completeIfNotSet(self._performed_via_github_app) + return self._performed_via_github_app.value + + @property + def reactions(self) -> dict: + self._completeIfNotSet(self._reactions) + return self._reactions.value + @property def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) @@ -119,20 +160,10 @@ def url(self) -> str: return self._url.value @property - def html_url(self) -> str: - self._completeIfNotSet(self._html_url) - return self._html_url.value - - @property - def user(self) -> github.NamedUser.NamedUser: + def user(self) -> NamedUser: self._completeIfNotSet(self._user) return self._user.value - @property - def reactions(self) -> dict: - self._completeIfNotSet(self._reactions) - return self._reactions.value - def delete(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/issues/comments/{id} `_ @@ -226,23 +257,33 @@ def unminimize(self) -> bool: return data["unminimizedComment"]["isMinimized"] is False def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "author_association" in attributes: # pragma no branch + self._author_association = self._makeStringAttribute(attributes["author_association"]) if "body" in attributes: # pragma no branch self._body = self._makeStringAttribute(attributes["body"]) + if "body_html" in attributes: # pragma no branch + self._body_html = self._makeStringAttribute(attributes["body_html"]) + if "body_text" in attributes: # pragma no branch + self._body_text = self._makeStringAttribute(attributes["body_text"]) if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "html_url" in attributes: # pragma no branch + self._html_url = self._makeStringAttribute(attributes["html_url"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) if "issue_url" in attributes: # pragma no branch self._issue_url = self._makeStringAttribute(attributes["issue_url"]) if "node_id" in attributes: # pragma no branch self._node_id = self._makeStringAttribute(attributes["node_id"]) + if "performed_via_github_app" in attributes: # pragma no branch + self._performed_via_github_app = self._makeClassAttribute( + github.GithubApp.GithubApp, attributes["performed_via_github_app"] + ) + if "reactions" in attributes: + self._reactions = self._makeDictAttribute(attributes["reactions"]) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) - if "html_url" in attributes: # pragma no branch - self._html_url = self._makeStringAttribute(attributes["html_url"]) if "user" in attributes: # pragma no branch self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) - if "reactions" in attributes: - self._reactions = self._makeDictAttribute(attributes["reactions"]) diff --git a/github/IssueEvent.py b/github/IssueEvent.py index c46c422fd1..0ea4bb2aac 100644 --- a/github/IssueEvent.py +++ b/github/IssueEvent.py @@ -20,6 +20,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -42,15 +43,25 @@ from __future__ import annotations from datetime import datetime -from typing import Any +from typing import TYPE_CHECKING, Any +import github.GithubApp import github.GithubObject import github.Issue import github.Label import github.Milestone import github.NamedUser +import github.Team from github.GithubObject import Attribute, CompletableGithubObject, NotSet +if TYPE_CHECKING: + from github.GithubApp import GithubApp + from github.Issue import Issue + from github.Label import Label + from github.Milestone import Milestone + from github.NamedUser import NamedUser + from github.Team import Team + class IssueEvent(CompletableGithubObject): """ @@ -59,46 +70,79 @@ class IssueEvent(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/issues#events + The OpenAPI schema can be found at + - /components/schemas/issue-event + - /components/schemas/issue-event-for-issue + """ def _initAttributes(self) -> None: - self._actor: Attribute[github.NamedUser.NamedUser] = NotSet + self._actor: Attribute[NamedUser] = NotSet + self._assignee: Attribute[NamedUser] = NotSet + self._assigner: Attribute[NamedUser] = NotSet + self._author_association: Attribute[dict[str, Any]] = NotSet self._commit_id: Attribute[str] = NotSet + self._commit_url: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet + self._dismissed_review: Attribute[dict] = NotSet self._event: Attribute[str] = NotSet self._id: Attribute[int] = NotSet - self._issue: Attribute[github.Issue.Issue] = NotSet - self._url: Attribute[str] = NotSet + self._issue: Attribute[Issue] = NotSet + self._label: Attribute[Label] = NotSet + self._lock_reason: Attribute[str] = NotSet + self._milestone: Attribute[Milestone] = NotSet self._node_id: Attribute[str] = NotSet - self._commit_url: Attribute[str] = NotSet - self._label: Attribute[github.Label.Label] = NotSet - self._assignee: Attribute[github.NamedUser.NamedUser] = NotSet - self._assigner: Attribute[github.NamedUser.NamedUser] = NotSet - self._review_requester: Attribute[github.NamedUser.NamedUser] = NotSet - self._requested_reviewer: Attribute[github.NamedUser.NamedUser] = NotSet - self._milestone: Attribute[github.Milestone.Milestone] = NotSet + self._performed_via_github_app: Attribute[GithubApp] = NotSet + self._project_card: Attribute[dict[str, Any]] = NotSet self._rename: Attribute[dict] = NotSet - self._dismissed_review: Attribute[dict] = NotSet - self._lock_reason: Attribute[str] = NotSet + self._requested_reviewer: Attribute[NamedUser] = NotSet + self._requested_team: Attribute[Team] = NotSet + self._review_requester: Attribute[NamedUser] = NotSet + self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value}) @property - def actor(self) -> github.NamedUser.NamedUser: + def actor(self) -> NamedUser: self._completeIfNotSet(self._actor) return self._actor.value + @property + def assignee(self) -> NamedUser: + self._completeIfNotSet(self._assignee) + return self._assignee.value + + @property + def assigner(self) -> NamedUser: + self._completeIfNotSet(self._assigner) + return self._assigner.value + + @property + def author_association(self) -> dict[str, Any]: + self._completeIfNotSet(self._author_association) + return self._author_association.value + @property def commit_id(self) -> str: self._completeIfNotSet(self._commit_id) return self._commit_id.value + @property + def commit_url(self) -> str: + self._completeIfNotSet(self._commit_url) + return self._commit_url.value + @property def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value + @property + def dismissed_review(self) -> dict: + self._completeIfNotSet(self._dismissed_review) + return self._dismissed_review.value + @property def event(self) -> str: self._completeIfNotSet(self._event) @@ -110,108 +154,113 @@ def id(self) -> int: return self._id.value @property - def issue(self) -> github.Issue.Issue: + def issue(self) -> Issue: self._completeIfNotSet(self._issue) return self._issue.value @property - def url(self) -> str: - self._completeIfNotSet(self._url) - return self._url.value + def label(self) -> Label: + self._completeIfNotSet(self._label) + return self._label.value @property - def node_id(self) -> str: - self._completeIfNotSet(self._node_id) - return self._node_id.value + def lock_reason(self) -> str: + self._completeIfNotSet(self._lock_reason) + return self._lock_reason.value @property - def commit_url(self) -> str: - self._completeIfNotSet(self._commit_url) - return self._commit_url.value + def milestone(self) -> Milestone: + self._completeIfNotSet(self._milestone) + return self._milestone.value @property - def label(self) -> github.Label.Label: - self._completeIfNotSet(self._label) - return self._label.value + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value @property - def assignee(self) -> github.NamedUser.NamedUser: - self._completeIfNotSet(self._assignee) - return self._assignee.value + def performed_via_github_app(self) -> GithubApp: + self._completeIfNotSet(self._performed_via_github_app) + return self._performed_via_github_app.value @property - def assigner(self) -> github.NamedUser.NamedUser: - self._completeIfNotSet(self._assigner) - return self._assigner.value + def project_card(self) -> dict[str, Any]: + self._completeIfNotSet(self._project_card) + return self._project_card.value @property - def review_requester(self) -> github.NamedUser.NamedUser: - self._completeIfNotSet(self._review_requester) - return self._review_requester.value + def rename(self) -> dict: + self._completeIfNotSet(self._rename) + return self._rename.value @property - def requested_reviewer(self) -> github.NamedUser.NamedUser: + def requested_reviewer(self) -> NamedUser: self._completeIfNotSet(self._requested_reviewer) return self._requested_reviewer.value @property - def milestone(self) -> github.Milestone.Milestone: - self._completeIfNotSet(self._milestone) - return self._milestone.value - - @property - def rename(self) -> dict: - self._completeIfNotSet(self._rename) - return self._rename.value + def requested_team(self) -> Team: + self._completeIfNotSet(self._requested_team) + return self._requested_team.value @property - def dismissed_review(self) -> dict: - self._completeIfNotSet(self._dismissed_review) - return self._dismissed_review.value + def review_requester(self) -> NamedUser: + self._completeIfNotSet(self._review_requester) + return self._review_requester.value @property - def lock_reason(self) -> str: - self._completeIfNotSet(self._lock_reason) - return self._lock_reason.value + def url(self) -> str: + self._completeIfNotSet(self._url) + return self._url.value def _useAttributes(self, attributes: dict[str, Any]) -> None: if "actor" in attributes: # pragma no branch self._actor = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["actor"]) + if "assignee" in attributes: # pragma no branch + self._assignee = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["assignee"]) + if "assigner" in attributes: # pragma no branch + self._assigner = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["assigner"]) + if "author_association" in attributes: # pragma no branch + self._author_association = self._makeDictAttribute(attributes["author_association"]) if "commit_id" in attributes: # pragma no branch self._commit_id = self._makeStringAttribute(attributes["commit_id"]) + if "commit_url" in attributes: # pragma no branch + self._commit_url = self._makeStringAttribute(attributes["commit_url"]) if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "dismissed_review" in attributes: # pragma no branch + self._dismissed_review = self._makeDictAttribute(attributes["dismissed_review"]) if "event" in attributes: # pragma no branch self._event = self._makeStringAttribute(attributes["event"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) if "issue" in attributes: # pragma no branch self._issue = self._makeClassAttribute(github.Issue.Issue, attributes["issue"]) - if "url" in attributes: # pragma no branch - self._url = self._makeStringAttribute(attributes["url"]) - if "node_id" in attributes: # pragma no branch - self._node_id = self._makeStringAttribute(attributes["node_id"]) - if "commit_url" in attributes: # pragma no branch - self._commit_url = self._makeStringAttribute(attributes["commit_url"]) if "label" in attributes: # pragma no branch self._label = self._makeClassAttribute(github.Label.Label, attributes["label"]) - if "assignee" in attributes: # pragma no branch - self._assignee = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["assignee"]) - if "assigner" in attributes: # pragma no branch - self._assigner = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["assigner"]) - if "review_requester" in attributes: # pragma no branch - self._review_requester = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["review_requester"] + if "lock_reason" in attributes: # pragma no branch + self._lock_reason = self._makeStringAttribute(attributes["lock_reason"]) + if "milestone" in attributes: # pragma no branch + self._milestone = self._makeClassAttribute(github.Milestone.Milestone, attributes["milestone"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) + if "performed_via_github_app" in attributes: # pragma no branch + self._performed_via_github_app = self._makeClassAttribute( + github.GithubApp.GithubApp, attributes["performed_via_github_app"] ) + if "project_card" in attributes: # pragma no branch + self._project_card = self._makeDictAttribute(attributes["project_card"]) + if "rename" in attributes: # pragma no branch + self._rename = self._makeDictAttribute(attributes["rename"]) if "requested_reviewer" in attributes: # pragma no branch self._requested_reviewer = self._makeClassAttribute( github.NamedUser.NamedUser, attributes["requested_reviewer"] ) - if "milestone" in attributes: # pragma no branch - self._milestone = self._makeClassAttribute(github.Milestone.Milestone, attributes["milestone"]) - if "rename" in attributes: # pragma no branch - self._rename = self._makeDictAttribute(attributes["rename"]) - if "dismissed_review" in attributes: # pragma no branch - self._dismissed_review = self._makeDictAttribute(attributes["dismissed_review"]) - if "lock_reason" in attributes: # pragma no branch - self._lock_reason = self._makeStringAttribute(attributes["lock_reason"]) + if "requested_team" in attributes: # pragma no branch + self._requested_team = self._makeClassAttribute(github.Team.Team, attributes["requested_team"]) + if "review_requester" in attributes: # pragma no branch + self._review_requester = self._makeClassAttribute( + github.NamedUser.NamedUser, attributes["review_requester"] + ) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/IssuePullRequest.py b/github/IssuePullRequest.py index be30ea686f..5cd4f8c31c 100644 --- a/github/IssuePullRequest.py +++ b/github/IssuePullRequest.py @@ -15,6 +15,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -35,7 +36,10 @@ ################################################################################ -from typing import Any, Dict +from __future__ import annotations + +from datetime import datetime +from typing import Any from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet @@ -43,12 +47,20 @@ class IssuePullRequest(NonCompletableGithubObject): """ This class represents IssuePullRequests. + + The OpenAPI schema can be found at + - /components/schemas/issue-search-result-item/properties/pull_request + - /components/schemas/issue/properties/pull_request + - /components/schemas/nullable-issue/properties/pull_request + """ def _initAttributes(self) -> None: self._diff_url: Attribute[str] = NotSet self._html_url: Attribute[str] = NotSet + self._merged_at: Attribute[datetime] = NotSet self._patch_url: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet @property def diff_url(self) -> str: @@ -58,14 +70,26 @@ def diff_url(self) -> str: def html_url(self) -> str: return self._html_url.value + @property + def merged_at(self) -> datetime: + return self._merged_at.value + @property def patch_url(self) -> str: return self._patch_url.value - def _useAttributes(self, attributes: Dict[str, Any]) -> None: + @property + def url(self) -> str: + return self._url.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "diff_url" in attributes: # pragma no branch self._diff_url = self._makeStringAttribute(attributes["diff_url"]) if "html_url" in attributes: # pragma no branch self._html_url = self._makeStringAttribute(attributes["html_url"]) + if "merged_at" in attributes: # pragma no branch + self._merged_at = self._makeDatetimeAttribute(attributes["merged_at"]) if "patch_url" in attributes: # pragma no branch self._patch_url = self._makeStringAttribute(attributes["patch_url"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/Label.py b/github/Label.py index 227f24b26b..02aec3539d 100644 --- a/github/Label.py +++ b/github/Label.py @@ -21,6 +21,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -40,8 +41,10 @@ # # ################################################################################ +from __future__ import annotations + import urllib.parse -from typing import Any, Dict +from typing import Any from github import Consts from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt, is_optional @@ -54,32 +57,63 @@ class Label(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/issues#labels + The OpenAPI schema can be found at + - /components/schemas/issue-event-label + - /components/schemas/issue-search-result-item/properties/labels/items + - /components/schemas/issue/properties/labels/items/oneOf/1 + - /components/schemas/label + - /components/schemas/nullable-issue/properties/labels/items/oneOf/1 + - /components/schemas/pull-request-simple/properties/labels/items + - /components/schemas/pull-request/properties/labels/items + """ def _initAttributes(self) -> None: self._color: Attribute[str] = NotSet + self._default: Attribute[bool] = NotSet self._description: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) + @property + def _identity(self) -> str: + return urllib.parse.quote(self.name) + @property def color(self) -> str: self._completeIfNotSet(self._color) return self._color.value + @property + def default(self) -> bool: + self._completeIfNotSet(self._default) + return self._default.value + @property def description(self) -> str: self._completeIfNotSet(self._description) return self._description.value + @property + def id(self) -> int: + self._completeIfNotSet(self._id) + return self._id.value + @property def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def url(self) -> str: self._completeIfNotSet(self._url) @@ -107,16 +141,18 @@ def edit(self, name: str, color: str, description: Opt[str] = NotSet) -> None: ) self._useAttributes(data) - @property - def _identity(self) -> str: - return urllib.parse.quote(self.name) - - def _useAttributes(self, attributes: Dict[str, Any]) -> None: + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "color" in attributes: # pragma no branch self._color = self._makeStringAttribute(attributes["color"]) + if "default" in attributes: # pragma no branch + self._default = self._makeBoolAttribute(attributes["default"]) if "description" in attributes: # pragma no branch self._description = self._makeStringAttribute(attributes["description"]) + 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 "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/License.py b/github/License.py index afcf0cf5e4..f1a1c2257e 100644 --- a/github/License.py +++ b/github/License.py @@ -22,6 +22,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -55,63 +56,74 @@ class License(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/licenses + The OpenAPI schema can be found at + - /components/schemas/license-simple + - /components/schemas/minimal-repository/properties/license + - /components/schemas/nullable-license-simple + """ def _initAttributes(self) -> None: + self._body: Attribute[str] = NotSet + self._conditions: Attribute[list[str]] = NotSet + self._description: Attribute[str] = NotSet + self._html_url: Attribute[str] = NotSet + self._implementation: Attribute[str] = NotSet self._key: Attribute[str] = NotSet + self._limitations: Attribute[list[str]] = NotSet self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet + self._permissions: Attribute[list[str]] = NotSet self._spdx_id: Attribute[str] = NotSet self._url: Attribute[str] = NotSet - self._html_url: Attribute[str] = NotSet - self._description: Attribute[str] = NotSet - self._implementation: Attribute[str] = NotSet - self._body: Attribute[str] = NotSet - self._permissions: Attribute[list[str]] = NotSet - self._conditions: Attribute[list[str]] = NotSet - self._limitations: Attribute[list[str]] = NotSet def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) @property - def key(self) -> str: - self._completeIfNotSet(self._key) - return self._key.value - - @property - def name(self) -> str: - self._completeIfNotSet(self._name) - return self._name.value + def body(self) -> str: + self._completeIfNotSet(self._body) + return self._body.value @property - def spdx_id(self) -> str: - self._completeIfNotSet(self._spdx_id) - return self._spdx_id.value + def conditions(self) -> list[str]: + self._completeIfNotSet(self._conditions) + return self._conditions.value @property - def url(self) -> str: - self._completeIfNotSet(self._url) - return self._url.value + def description(self) -> str: + self._completeIfNotSet(self._description) + return self._description.value @property def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value - @property - def description(self) -> str: - self._completeIfNotSet(self._description) - return self._description.value - @property def implementation(self) -> str: self._completeIfNotSet(self._implementation) return self._implementation.value @property - def body(self) -> str: - self._completeIfNotSet(self._body) - return self._body.value + def key(self) -> str: + self._completeIfNotSet(self._key) + return self._key.value + + @property + def limitations(self) -> list[str]: + self._completeIfNotSet(self._limitations) + return self._limitations.value + + @property + def name(self) -> str: + self._completeIfNotSet(self._name) + return self._name.value + + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value @property def permissions(self) -> list[str]: @@ -119,35 +131,37 @@ def permissions(self) -> list[str]: return self._permissions.value @property - def conditions(self) -> list[str]: - self._completeIfNotSet(self._conditions) - return self._conditions.value + def spdx_id(self) -> str: + self._completeIfNotSet(self._spdx_id) + return self._spdx_id.value @property - def limitations(self) -> list[str]: - self._completeIfNotSet(self._limitations) - return self._limitations.value + def url(self) -> str: + self._completeIfNotSet(self._url) + return self._url.value def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "body" in attributes: # pragma no branch + self._body = self._makeStringAttribute(attributes["body"]) + if "conditions" in attributes: # pragma no branch + self._conditions = self._makeListOfStringsAttribute(attributes["conditions"]) + if "description" in attributes: # pragma no branch + self._description = self._makeStringAttribute(attributes["description"]) + if "html_url" in attributes: # pragma no branch + self._html_url = self._makeStringAttribute(attributes["html_url"]) + if "implementation" in attributes: # pragma no branch + self._implementation = self._makeStringAttribute(attributes["implementation"]) if "key" in attributes: # pragma no branch self._key = self._makeStringAttribute(attributes["key"]) + if "limitations" in attributes: # pragma no branch + self._limitations = self._makeListOfStringsAttribute(attributes["limitations"]) 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 "permissions" in attributes: # pragma no branch + self._permissions = self._makeListOfStringsAttribute(attributes["permissions"]) if "spdx_id" in attributes: # pragma no branch self._spdx_id = self._makeStringAttribute(attributes["spdx_id"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) - if "html_url" in attributes: # pragma no branch - self._html_url = self._makeStringAttribute(attributes["html_url"]) - if "description" in attributes: # pragma no branch - self._description = self._makeStringAttribute(attributes["description"]) - if "implementation" in attributes: # pragma no branch - self._implementation = self._makeStringAttribute(attributes["implementation"]) - if "body" in attributes: # pragma no branch - self._body = self._makeStringAttribute(attributes["body"]) - if "permissions" in attributes: # pragma no branch - self._permissions = self._makeListOfStringsAttribute(attributes["permissions"]) - if "conditions" in attributes: # pragma no branch - self._conditions = self._makeListOfStringsAttribute(attributes["conditions"]) - if "limitations" in attributes: # pragma no branch - self._limitations = self._makeListOfStringsAttribute(attributes["limitations"]) diff --git a/github/MainClass.py b/github/MainClass.py index 75e7304f8a..1983857366 100644 --- a/github/MainClass.py +++ b/github/MainClass.py @@ -72,6 +72,8 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Min RK # +# Copyright 2025 Enrico Minack # +# Copyright 2025 blyedev <63808441+blyedev@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -118,7 +120,7 @@ import github.Topic from github import Consts from github.GithubIntegration import GithubIntegration -from github.GithubObject import GithubObject, NotSet, Opt, is_defined +from github.GithubObject import CompletableGithubObject, GithubObject, NotSet, Opt, is_defined from github.GithubRetry import GithubRetry from github.HookDelivery import HookDelivery, HookDeliverySummary from github.HookDescription import HookDescription @@ -183,6 +185,8 @@ def __init__( seconds_between_requests: float | None = Consts.DEFAULT_SECONDS_BETWEEN_REQUESTS, seconds_between_writes: float | None = Consts.DEFAULT_SECONDS_BETWEEN_WRITES, auth: github.Auth.Auth | None = None, + # v3: set lazy = True as the default + lazy: bool = False, ) -> None: """ :param login_or_token: string deprecated, use auth=github.Auth.Login(...) or auth=github.Auth.Token(...) instead @@ -201,6 +205,8 @@ def __init__( :param seconds_between_requests: float :param seconds_between_writes: float :param auth: authentication method + :param lazy: completable objects created from this instance are lazy, + as well as completable objects created from those, and so on """ assert login_or_token is None or isinstance(login_or_token, str), login_or_token @@ -216,6 +222,7 @@ def __init__( assert seconds_between_requests is None or seconds_between_requests >= 0 assert seconds_between_writes is None or seconds_between_writes >= 0 assert auth is None or isinstance(auth, github.Auth.Auth), auth + assert isinstance(lazy, bool), lazy if password is not None: warnings.warn( @@ -256,8 +263,22 @@ def __init__( pool_size, seconds_between_requests, seconds_between_writes, + lazy, ) + def withLazy(self, lazy: bool) -> Github: + """ + Create a Github instance with identical configuration but the given lazy setting. + + :param lazy: completable objects created from this instance are lazy, as well as completable objects created + from those, and so on + :return: new Github instance + + """ + kwargs = self.__requester.kwargs + kwargs.update(lazy=lazy) + return Github(**kwargs) + def close(self) -> None: """Close connections to the server. Alternatively, use the Github object as a context manager: @@ -332,7 +353,7 @@ def get_rate_limit(self) -> RateLimit: """ headers, data = self.__requester.requestJsonAndCheck("GET", "/rate_limit") - return RateLimit(self.__requester, headers, data["resources"], True) + return RateLimit(self.__requester, headers, data["resources"]) @property def oauth_scopes(self) -> list[str] | None: @@ -372,12 +393,17 @@ def get_user(self, login: Opt[str] = NotSet) -> NamedUser | AuthenticatedUser: :calls: `GET /users/{user} `_ or `GET /user `_ """ if login is NotSet: - return github.AuthenticatedUser.AuthenticatedUser(self.__requester, {}, {"url": "/user"}, completed=False) + url = "/user" + # always return a lazy completable AuthenticatedUser + # v3: given github.Github(lazy=True) is now default, remove completed=False here + return github.AuthenticatedUser.AuthenticatedUser(self.__requester, url=url, completed=False) else: assert isinstance(login, str), login login = urllib.parse.quote(login) - headers, data = self.__requester.requestJsonAndCheck("GET", f"/users/{login}") - return github.NamedUser.NamedUser(self.__requester, headers, data, completed=True) + url = f"/users/{login}" + # always return a completed NamedUser + # v3: remove complete() here and make this as lazy as github.Github is + return github.NamedUser.NamedUser(self.__requester, url=url).complete() def get_user_by_id(self, user_id: int) -> NamedUser: """ @@ -399,13 +425,13 @@ def get_users(self, since: Opt[int] = NotSet) -> PaginatedList[NamedUser]: url_parameters["since"] = since return PaginatedList(github.NamedUser.NamedUser, self.__requester, "/users", url_parameters) - def get_organization(self, login: str) -> Organization: + def get_organization(self, org: str) -> Organization: """ :calls: `GET /orgs/{org} `_ """ - assert isinstance(login, str), login - login = urllib.parse.quote(login) - headers, data = self.__requester.requestJsonAndCheck("GET", f"/orgs/{login}") + assert isinstance(org, str), org + org = urllib.parse.quote(org) + headers, data = self.__requester.requestJsonAndCheck("GET", f"/orgs/{org}") return github.Organization.Organization(self.__requester, headers, data, completed=True) def get_organizations(self, since: Opt[int] = NotSet) -> PaginatedList[Organization]: @@ -523,7 +549,7 @@ def get_global_advisory(self, ghsa_id: str) -> GlobalAdvisory: assert isinstance(ghsa_id, str), ghsa_id ghsa_id = urllib.parse.quote(ghsa_id) headers, data = self.__requester.requestJsonAndCheck("GET", f"/advisories/{ghsa_id}") - return github.GlobalAdvisory.GlobalAdvisory(self.__requester, headers, data, completed=True) + return github.GlobalAdvisory.GlobalAdvisory(self.__requester, headers, data) def get_global_advisories( self, @@ -884,7 +910,7 @@ def get_hook(self, name: str) -> HookDescription: assert isinstance(name, str), name name = urllib.parse.quote(name) headers, attributes = self.__requester.requestJsonAndCheck("GET", f"/hooks/{name}") - return HookDescription(self.__requester, headers, attributes, completed=True) + return HookDescription(self.__requester, headers, attributes) def get_hooks(self) -> list[HookDescription]: """ @@ -892,7 +918,7 @@ def get_hooks(self) -> list[HookDescription]: :rtype: list of :class:`github.HookDescription.HookDescription` """ headers, data = self.__requester.requestJsonAndCheck("GET", "/hooks") - return [HookDescription(self.__requester, headers, attributes, completed=True) for attributes in data] + return [HookDescription(self.__requester, headers, attributes) for attributes in data] def get_hook_delivery(self, hook_id: int, delivery_id: int) -> HookDelivery: """ @@ -904,7 +930,7 @@ def get_hook_delivery(self, hook_id: int, delivery_id: int) -> HookDelivery: assert isinstance(hook_id, int), hook_id assert isinstance(delivery_id, int), delivery_id headers, attributes = self.__requester.requestJsonAndCheck("GET", f"/hooks/{hook_id}/deliveries/{delivery_id}") - return HookDelivery(self.__requester, headers, attributes, completed=True) + return HookDelivery(self.__requester, headers, attributes) def get_hook_deliveries(self, hook_id: int) -> list[HookDeliverySummary]: """ @@ -914,7 +940,7 @@ def get_hook_deliveries(self, hook_id: int) -> list[HookDeliverySummary]: """ assert isinstance(hook_id, int), hook_id headers, data = self.__requester.requestJsonAndCheck("GET", f"/hooks/{hook_id}/deliveries") - return [HookDeliverySummary(self.__requester, headers, attributes, completed=True) for attributes in data] + return [HookDeliverySummary(self.__requester, headers, attributes) for attributes in data] def get_gitignore_templates(self) -> list[str]: """ @@ -930,7 +956,7 @@ def get_gitignore_template(self, name: str) -> GitignoreTemplate: assert isinstance(name, str), name name = urllib.parse.quote(name) headers, attributes = self.__requester.requestJsonAndCheck("GET", f"/gitignore/templates/{name}") - return github.GitignoreTemplate.GitignoreTemplate(self.__requester, headers, attributes, completed=True) + return github.GitignoreTemplate.GitignoreTemplate(self.__requester, headers, attributes) def get_emojis(self) -> dict[str, str]: """ @@ -956,7 +982,9 @@ def create_from_raw_data( if headers is None: headers = {} - return klass(self.__requester, headers, raw_data, completed=True) + if issubclass(klass, CompletableGithubObject): + return klass(self.__requester, headers, raw_data, completed=True) # type: ignore + return klass(self.__requester, headers, raw_data) def dump(self, obj: GithubObject, file: BinaryIO, protocol: int = 0) -> None: """ @@ -1007,7 +1035,6 @@ def get_oauth_application(self, client_id: str, client_secret: str) -> Applicati self.__requester, headers={}, attributes={"client_id": client_id, "client_secret": client_secret}, - completed=False, ) def get_app(self, slug: Opt[str] = NotSet) -> GithubApp: diff --git a/github/Membership.py b/github/Membership.py index ef129d5928..900fd94db7 100644 --- a/github/Membership.py +++ b/github/Membership.py @@ -22,6 +22,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -61,28 +62,37 @@ class Membership(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/orgs + The OpenAPI schema can be found at + - /components/schemas/org-membership + """ def _initAttributes(self) -> None: - self._url: Attribute[str] = NotSet - self._state: Attribute[str] = NotSet - self._role: Attribute[str] = NotSet - self._organization_url: Attribute[str] = NotSet self._organization: Attribute[Organization] = NotSet + self._organization_url: Attribute[str] = NotSet + self._permissions: Attribute[dict[str, Any]] = NotSet + self._role: Attribute[str] = NotSet + self._state: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet self._user: Attribute[NamedUser] = NotSet def __repr__(self) -> str: return self.get__repr__({"url": self._url.value}) @property - def url(self) -> str: - self._completeIfNotSet(self._url) - return self._url.value + def organization(self) -> Organization: + self._completeIfNotSet(self._organization) + return self._organization.value @property - def state(self) -> str: - self._completeIfNotSet(self._state) - return self._state.value + def organization_url(self) -> str: + self._completeIfNotSet(self._organization_url) + return self._organization_url.value + + @property + def permissions(self) -> dict[str, Any]: + self._completeIfNotSet(self._permissions) + return self._permissions.value @property def role(self) -> str: @@ -90,14 +100,14 @@ def role(self) -> str: return self._role.value @property - def organization_url(self) -> str: - self._completeIfNotSet(self._organization_url) - return self._organization_url.value + def state(self) -> str: + self._completeIfNotSet(self._state) + return self._state.value @property - def organization(self) -> Organization: - self._completeIfNotSet(self._organization) - return self._organization.value + def url(self) -> str: + self._completeIfNotSet(self._url) + return self._url.value @property def user(self) -> NamedUser: @@ -105,15 +115,17 @@ def user(self) -> NamedUser: return self._user.value def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "url" in attributes: # pragma no branch - self._url = self._makeStringAttribute(attributes["url"]) - if "state" in attributes: # pragma no branch - self._state = self._makeStringAttribute(attributes["state"]) - if "role" in attributes: # pragma no branch - self._role = self._makeStringAttribute(attributes["role"]) - if "organization_url" in attributes: # pragma no branch - self._organization_url = self._makeStringAttribute(attributes["organization_url"]) if "organization" in attributes: # pragma no branch self._organization = self._makeClassAttribute(github.Organization.Organization, attributes["organization"]) + if "organization_url" in attributes: # pragma no branch + self._organization_url = self._makeStringAttribute(attributes["organization_url"]) + if "permissions" in attributes: # pragma no branch + self._permissions = self._makeDictAttribute(attributes["permissions"]) + if "role" in attributes: # pragma no branch + self._role = self._makeStringAttribute(attributes["role"]) + if "state" in attributes: # pragma no branch + self._state = self._makeStringAttribute(attributes["state"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) if "user" in attributes: # pragma no branch self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) diff --git a/github/MergedUpstream.py b/github/MergedUpstream.py new file mode 100644 index 0000000000..fbb0390432 --- /dev/null +++ b/github/MergedUpstream.py @@ -0,0 +1,68 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2024 Enrico Minack # +# Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2024 Thomas Cooper # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Mikhail f. Shiryaev # +# # +# 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 . # +# # +################################################################################ + + +from typing import Any, Dict + +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class MergedUpstream(NonCompletableGithubObject): + """ + This class represents a result of merge-upstream call. + + The OpenAPI schema can be found at + - /components/schemas/merged-upstream + + """ + + def _initAttributes(self) -> None: + self._merge_type: Attribute[str] = NotSet + self._base_branch: Attribute[str] = NotSet + self._message: Attribute[str] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"message": self._message.value}) + + @property + def merge_type(self) -> str: + return self._merge_type.value + + @property + def base_branch(self) -> str: + return self._base_branch.value + + @property + def message(self) -> str: + return self._message.value + + def _useAttributes(self, attributes: Dict[str, Any]) -> None: + if "merge_type" in attributes: # pragma no branch + self._merge_type = self._makeStringAttribute(attributes["merge_type"]) + if "base_branch" in attributes: # pragma no branch + self._base_branch = self._makeStringAttribute(attributes["base_branch"]) + if "message" in attributes: # pragma no branch + self._message = self._makeStringAttribute(attributes["message"]) diff --git a/github/Migration.py b/github/Migration.py index 6f1d185a43..f5de8e6923 100644 --- a/github/Migration.py +++ b/github/Migration.py @@ -24,6 +24,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -64,29 +65,73 @@ class Migration(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/migrations + The OpenAPI schema can be found at + - /components/schemas/migration + """ def _initAttributes(self) -> None: - self._id: Attribute[int] = NotSet - self._owner: Attribute[github.NamedUser.NamedUser] = NotSet + self._archive_url: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._exclude: Attribute[list[str]] = NotSet + self._exclude_attachments: Attribute[bool] = NotSet + self._exclude_git_data: Attribute[bool] = NotSet + self._exclude_metadata: Attribute[bool] = NotSet + self._exclude_owner_projects: Attribute[bool] = NotSet + self._exclude_releases: Attribute[bool] = NotSet self._guid: Attribute[str] = NotSet - self._state: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet self._lock_repositories: Attribute[bool] = NotSet - self._exclude_attachments: Attribute[bool] = NotSet + self._node_id: Attribute[str] = NotSet + self._org_metadata_only: Attribute[bool] = NotSet + self._owner: Attribute[github.NamedUser.NamedUser] = NotSet self._repositories: Attribute[list[github.Repository.Repository]] = NotSet + self._state: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"state": self._state.value, "url": self._url.value}) @property - def id(self) -> int: - return self._id.value + def archive_url(self) -> str: + self._completeIfNotSet(self._archive_url) + return self._archive_url.value @property - def owner(self) -> github.NamedUser.NamedUser: - self._completeIfNotSet(self._owner) - return self._owner.value + def created_at(self) -> datetime: + self._completeIfNotSet(self._created_at) + return self._created_at.value + + @property + def exclude(self) -> list[str]: + self._completeIfNotSet(self._exclude) + return self._exclude.value + + @property + def exclude_attachments(self) -> bool: + self._completeIfNotSet(self._exclude_attachments) + return self._exclude_attachments.value + + @property + def exclude_git_data(self) -> bool: + self._completeIfNotSet(self._exclude_git_data) + return self._exclude_git_data.value + + @property + def exclude_metadata(self) -> bool: + self._completeIfNotSet(self._exclude_metadata) + return self._exclude_metadata.value + + @property + def exclude_owner_projects(self) -> bool: + self._completeIfNotSet(self._exclude_owner_projects) + return self._exclude_owner_projects.value + + @property + def exclude_releases(self) -> bool: + self._completeIfNotSet(self._exclude_releases) + return self._exclude_releases.value @property def guid(self) -> str: @@ -94,9 +139,8 @@ def guid(self) -> str: return self._guid.value @property - def state(self) -> str: - self._completeIfNotSet(self._guid) - return self._state.value + def id(self) -> int: + return self._id.value @property def lock_repositories(self) -> bool: @@ -104,9 +148,19 @@ def lock_repositories(self) -> bool: return self._lock_repositories.value @property - def exclude_attachments(self) -> bool: - self._completeIfNotSet(self._exclude_attachments) - return self._exclude_attachments.value + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + + @property + def org_metadata_only(self) -> bool: + self._completeIfNotSet(self._org_metadata_only) + return self._org_metadata_only.value + + @property + def owner(self) -> github.NamedUser.NamedUser: + self._completeIfNotSet(self._owner) + return self._owner.value @property def repositories(self) -> list[github.Repository.Repository]: @@ -114,20 +168,20 @@ def repositories(self) -> list[github.Repository.Repository]: return self._repositories.value @property - def url(self) -> str: - self._completeIfNotSet(self._url) - return self._url.value - - @property - def created_at(self) -> datetime: - self._completeIfNotSet(self._created_at) - return self._created_at.value + def state(self) -> str: + self._completeIfNotSet(self._guid) + return self._state.value @property def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value + @property + def url(self) -> str: + self._completeIfNotSet(self._url) + return self._url.value + def get_status(self) -> str: """ :calls: `GET /user/migrations/{migration_id} `_ @@ -172,25 +226,41 @@ def unlock_repo(self, repo_name: str) -> None: ) def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "id" in attributes: - self._id = self._makeIntAttribute(attributes["id"]) - if "owner" in attributes: - self._owner = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["owner"]) + if "archive_url" in attributes: # pragma no branch + self._archive_url = self._makeStringAttribute(attributes["archive_url"]) + if "created_at" in attributes: + self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "exclude" in attributes: # pragma no branch + self._exclude = self._makeListOfStringsAttribute(attributes["exclude"]) + if "exclude_attachments" in attributes: + self._exclude_attachments = self._makeBoolAttribute(attributes["exclude_attachments"]) + if "exclude_git_data" in attributes: # pragma no branch + self._exclude_git_data = self._makeBoolAttribute(attributes["exclude_git_data"]) + if "exclude_metadata" in attributes: # pragma no branch + self._exclude_metadata = self._makeBoolAttribute(attributes["exclude_metadata"]) + if "exclude_owner_projects" in attributes: # pragma no branch + self._exclude_owner_projects = self._makeBoolAttribute(attributes["exclude_owner_projects"]) + if "exclude_releases" in attributes: # pragma no branch + self._exclude_releases = self._makeBoolAttribute(attributes["exclude_releases"]) if "guid" in attributes: self._guid = self._makeStringAttribute(attributes["guid"]) - if "state" in attributes: - self._state = self._makeStringAttribute(attributes["state"]) + if "id" in attributes: + self._id = self._makeIntAttribute(attributes["id"]) if "lock_repositories" in attributes: self._lock_repositories = self._makeBoolAttribute(attributes["lock_repositories"]) - if "exclude_attachments" in attributes: - self._exclude_attachments = self._makeBoolAttribute(attributes["exclude_attachments"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) + if "org_metadata_only" in attributes: # pragma no branch + self._org_metadata_only = self._makeBoolAttribute(attributes["org_metadata_only"]) + if "owner" in attributes: + self._owner = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["owner"]) if "repositories" in attributes: self._repositories = self._makeListOfClassesAttribute( github.Repository.Repository, attributes["repositories"] ) - if "url" in attributes: - self._url = self._makeStringAttribute(attributes["url"]) - if "created_at" in attributes: - self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "state" in attributes: + self._state = self._makeStringAttribute(attributes["state"]) if "updated_at" in attributes: self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) + if "url" in attributes: + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/Milestone.py b/github/Milestone.py index 78f9844695..844f8e35b0 100644 --- a/github/Milestone.py +++ b/github/Milestone.py @@ -20,6 +20,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -59,16 +60,24 @@ class Milestone(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/issues#milestones + The OpenAPI schema can be found at + - /components/schemas/issue-event-milestone + - /components/schemas/milestone + - /components/schemas/nullable-milestone + """ def _initAttributes(self) -> None: + self._closed_at: Attribute[datetime] = NotSet self._closed_issues: Attribute[int] = NotSet self._created_at: Attribute[datetime] = NotSet self._creator: Attribute[github.NamedUser.NamedUser] = NotSet self._description: Attribute[str] = NotSet self._due_on: Attribute[datetime] = NotSet + self._html_url: Attribute[str] = NotSet self._id: Attribute[int] = NotSet self._labels_url: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet self._number: Attribute[int] = NotSet self._open_issues: Attribute[int] = NotSet self._state: Attribute[str] = NotSet @@ -79,6 +88,15 @@ def _initAttributes(self) -> None: def __repr__(self) -> str: return self.get__repr__({"number": self._number.value, "title": self._title.value}) + @property + def _identity(self) -> int: + return self.number + + @property + def closed_at(self) -> datetime: + self._completeIfNotSet(self._closed_at) + return self._closed_at.value + @property def closed_issues(self) -> int: self._completeIfNotSet(self._closed_issues) @@ -104,6 +122,11 @@ def due_on(self) -> datetime | None: self._completeIfNotSet(self._due_on) return self._due_on.value + @property + def html_url(self) -> str: + self._completeIfNotSet(self._html_url) + return self._html_url.value + @property def id(self) -> int: self._completeIfNotSet(self._id) @@ -114,6 +137,11 @@ def labels_url(self) -> str: self._completeIfNotSet(self._labels_url) return self._labels_url.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def number(self) -> int: self._completeIfNotSet(self._number) @@ -180,11 +208,9 @@ def get_labels(self) -> PaginatedList[github.Label.Label]: """ return PaginatedList(github.Label.Label, self._requester, f"{self.url}/labels", None) - @property - def _identity(self) -> int: - return self.number - def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "closed_at" in attributes: # pragma no branch + self._closed_at = self._makeDatetimeAttribute(attributes["closed_at"]) if "closed_issues" in attributes: # pragma no branch self._closed_issues = self._makeIntAttribute(attributes["closed_issues"]) if "created_at" in attributes: # pragma no branch @@ -195,10 +221,14 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._description = self._makeStringAttribute(attributes["description"]) if "due_on" in attributes: # pragma no branch self._due_on = self._makeDatetimeAttribute(attributes["due_on"]) + if "html_url" in attributes: # pragma no branch + self._html_url = self._makeStringAttribute(attributes["html_url"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) if "labels_url" in attributes: # pragma no branch self._labels_url = self._makeStringAttribute(attributes["labels_url"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "number" in attributes: # pragma no branch self._number = self._makeIntAttribute(attributes["number"]) if "open_issues" in attributes: # pragma no branch diff --git a/github/NamedEnterpriseUser.py b/github/NamedEnterpriseUser.py index 8545ff7b5d..f0f1100eba 100644 --- a/github/NamedEnterpriseUser.py +++ b/github/NamedEnterpriseUser.py @@ -4,6 +4,7 @@ # Copyright 2023 YugoHino # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -38,37 +39,37 @@ class NamedEnterpriseUser(CompletableGithubObject): """ def _initAttributes(self) -> None: + self._enterprise_server_primary_emails: Attribute[list] = NotSet + self._enterprise_server_user: Attribute[bool] = NotSet + self._enterprise_server_user_ids: Attribute[list] = NotSet + self._github_com_enterprise_roles: Attribute[list] = NotSet self._github_com_login: Attribute[str] = NotSet + self._github_com_member_roles: Attribute[list] = NotSet self._github_com_name: Attribute[str] = NotSet - self._enterprise_server_user_ids: Attribute[list] = NotSet - self._github_com_user: Attribute[bool] = NotSet - self._enterprise_server_user: Attribute[bool] = NotSet - self._visual_studio_subscription_user: Attribute[bool] = NotSet - self._license_type: Attribute[str] = NotSet + self._github_com_orgs_with_pending_invites: Attribute[list] = NotSet self._github_com_profile: Attribute[str] = NotSet - self._github_com_member_roles: Attribute[list] = NotSet - self._github_com_enterprise_roles: Attribute[list] = NotSet - self._github_com_verified_domain_emails: Attribute[list] = NotSet self._github_com_saml_name_id: Attribute[str] = NotSet - self._github_com_orgs_with_pending_invites: Attribute[list] = NotSet self._github_com_two_factor_auth: Attribute[bool] = NotSet - self._enterprise_server_primary_emails: Attribute[list] = NotSet + self._github_com_user: Attribute[bool] = NotSet + self._github_com_verified_domain_emails: Attribute[list] = NotSet + self._license_type: Attribute[str] = NotSet + self._total_user_accounts: Attribute[int] = NotSet self._visual_studio_license_status: Attribute[str] = NotSet self._visual_studio_subscription_email: Attribute[str] = NotSet - self._total_user_accounts: Attribute[int] = NotSet + self._visual_studio_subscription_user: Attribute[bool] = NotSet def __repr__(self) -> str: return self.get__repr__({"login": self._github_com_login.value}) @property - def github_com_login(self) -> str: - self._completeIfNotSet(self._github_com_login) - return self._github_com_login.value + def enterprise_server_primary_emails(self) -> list: + self._completeIfNotSet(self._enterprise_server_primary_emails) + return self._enterprise_server_primary_emails.value @property - def github_com_name(self) -> str: - self._completeIfNotSet(self._github_com_name) - return self._github_com_name.value + def enterprise_server_user(self) -> bool: + self._completeIfNotSet(self._enterprise_server_user) + return self._enterprise_server_user.value @property def enterprise_server_user_ids(self) -> list: @@ -76,24 +77,29 @@ def enterprise_server_user_ids(self) -> list: return self._enterprise_server_user_ids.value @property - def github_com_user(self) -> bool: - self._completeIfNotSet(self._github_com_user) - return self._github_com_user.value + def github_com_enterprise_roles(self) -> list: + self._completeIfNotSet(self._github_com_enterprise_roles) + return self._github_com_enterprise_roles.value @property - def enterprise_server_user(self) -> bool: - self._completeIfNotSet(self._enterprise_server_user) - return self._enterprise_server_user.value + def github_com_login(self) -> str: + self._completeIfNotSet(self._github_com_login) + return self._github_com_login.value @property - def visual_studio_subscription_user(self) -> bool: - self._completeIfNotSet(self._visual_studio_subscription_user) - return self._visual_studio_subscription_user.value + def github_com_member_roles(self) -> list: + self._completeIfNotSet(self._github_com_member_roles) + return self._github_com_member_roles.value @property - def license_type(self) -> str: - self._completeIfNotSet(self._license_type) - return self._license_type.value + def github_com_name(self) -> str: + self._completeIfNotSet(self._github_com_name) + return self._github_com_name.value + + @property + def github_com_orgs_with_pending_invites(self) -> list: + self._completeIfNotSet(self._github_com_orgs_with_pending_invites) + return self._github_com_orgs_with_pending_invites.value @property def github_com_profile(self) -> str: @@ -101,14 +107,19 @@ def github_com_profile(self) -> str: return self._github_com_profile.value @property - def github_com_member_roles(self) -> list: - self._completeIfNotSet(self._github_com_member_roles) - return self._github_com_member_roles.value + def github_com_saml_name_id(self) -> str: + self._completeIfNotSet(self._github_com_saml_name_id) + return self._github_com_saml_name_id.value @property - def github_com_enterprise_roles(self) -> list: - self._completeIfNotSet(self._github_com_enterprise_roles) - return self._github_com_enterprise_roles.value + def github_com_two_factor_auth(self) -> bool: + self._completeIfNotSet(self._github_com_two_factor_auth) + return self._github_com_two_factor_auth.value + + @property + def github_com_user(self) -> bool: + self._completeIfNotSet(self._github_com_user) + return self._github_com_user.value @property def github_com_verified_domain_emails(self) -> list: @@ -116,24 +127,14 @@ def github_com_verified_domain_emails(self) -> list: return self._github_com_verified_domain_emails.value @property - def github_com_saml_name_id(self) -> str: - self._completeIfNotSet(self._github_com_saml_name_id) - return self._github_com_saml_name_id.value - - @property - def github_com_orgs_with_pending_invites(self) -> list: - self._completeIfNotSet(self._github_com_orgs_with_pending_invites) - return self._github_com_orgs_with_pending_invites.value - - @property - def github_com_two_factor_auth(self) -> bool: - self._completeIfNotSet(self._github_com_two_factor_auth) - return self._github_com_two_factor_auth.value + def license_type(self) -> str: + self._completeIfNotSet(self._license_type) + return self._license_type.value @property - def enterprise_server_primary_emails(self) -> list: - self._completeIfNotSet(self._enterprise_server_primary_emails) - return self._enterprise_server_primary_emails.value + def total_user_accounts(self) -> int: + self._completeIfNotSet(self._total_user_accounts) + return self._total_user_accounts.value @property def visual_studio_license_status(self) -> str: @@ -146,58 +147,58 @@ def visual_studio_subscription_email(self) -> str: return self._visual_studio_subscription_email.value @property - def total_user_accounts(self) -> int: - self._completeIfNotSet(self._total_user_accounts) - return self._total_user_accounts.value + def visual_studio_subscription_user(self) -> bool: + self._completeIfNotSet(self._visual_studio_subscription_user) + return self._visual_studio_subscription_user.value def _useAttributes(self, attributes: Dict[str, Any]) -> None: - if "github_com_login" in attributes: # pragma no branch - self._github_com_login = self._makeStringAttribute(attributes["github_com_login"]) - if "github_com_name" in attributes: # pragma no branch - self._github_com_name = self._makeStringAttribute(attributes["github_com_name"]) - if "enterprise_server_user_ids" in attributes: # pragma no branch - self._enterprise_server_user_ids = self._makeListOfStringsAttribute( - attributes["enterprise_server_user_ids"] + if "enterprise_server_primary_emails" in attributes: # pragma no branch + self._enterprise_server_primary_emails = self._makeListOfStringsAttribute( + attributes["enterprise_server_primary_emails"] ) - if "github_com_user" in attributes: # pragma no branch - self._github_com_user = self._makeBoolAttribute(attributes["github_com_user"]) if "enterprise_server_user" in attributes: # pragma no branch self._enterprise_server_user = self._makeBoolAttribute(attributes["enterprise_server_user"]) - if "visual_studio_subscription_user" in attributes: # pragma no branch - self._visual_studio_subscription_user = self._makeBoolAttribute( - attributes["visual_studio_subscription_user"] + if "enterprise_server_user_ids" in attributes: # pragma no branch + self._enterprise_server_user_ids = self._makeListOfStringsAttribute( + attributes["enterprise_server_user_ids"] ) - if "license_type" in attributes: # pragma no branch - self._license_type = self._makeStringAttribute(attributes["license_type"]) - if "github_com_profile" in attributes: # pragma no branch - self._github_com_profile = self._makeStringAttribute(attributes["github_com_profile"]) - if "github_com_member_roles" in attributes: # pragma no branch - self._github_com_member_roles = self._makeListOfStringsAttribute(attributes["github_com_member_roles"]) if "github_com_enterprise_roles" in attributes: # pragma no branch self._github_com_enterprise_roles = self._makeListOfStringsAttribute( attributes["github_com_enterprise_roles"] ) - if "github_com_verified_domain_emails" in attributes: # pragma no branch - self._github_com_verified_domain_emails = self._makeListOfStringsAttribute( - attributes["github_com_verified_domain_emails"] - ) - if "github_com_saml_name_id" in attributes: # pragma no branch - self._github_com_saml_name_id = self._makeStringAttribute(attributes["github_com_saml_name_id"]) + if "github_com_login" in attributes: # pragma no branch + self._github_com_login = self._makeStringAttribute(attributes["github_com_login"]) + if "github_com_member_roles" in attributes: # pragma no branch + self._github_com_member_roles = self._makeListOfStringsAttribute(attributes["github_com_member_roles"]) + if "github_com_name" in attributes: # pragma no branch + self._github_com_name = self._makeStringAttribute(attributes["github_com_name"]) if "github_com_orgs_with_pending_invites" in attributes: # pragma no branch self._github_com_orgs_with_pending_invites = self._makeListOfStringsAttribute( attributes["github_com_orgs_with_pending_invites"] ) + if "github_com_profile" in attributes: # pragma no branch + self._github_com_profile = self._makeStringAttribute(attributes["github_com_profile"]) + if "github_com_saml_name_id" in attributes: # pragma no branch + self._github_com_saml_name_id = self._makeStringAttribute(attributes["github_com_saml_name_id"]) if "github_com_two_factor_auth" in attributes: # pragma no branch self._github_com_two_factor_auth = self._makeBoolAttribute(attributes["github_com_two_factor_auth"]) - if "enterprise_server_primary_emails" in attributes: # pragma no branch - self._enterprise_server_primary_emails = self._makeListOfStringsAttribute( - attributes["enterprise_server_primary_emails"] + if "github_com_user" in attributes: # pragma no branch + self._github_com_user = self._makeBoolAttribute(attributes["github_com_user"]) + if "github_com_verified_domain_emails" in attributes: # pragma no branch + self._github_com_verified_domain_emails = self._makeListOfStringsAttribute( + attributes["github_com_verified_domain_emails"] ) + if "license_type" in attributes: # pragma no branch + self._license_type = self._makeStringAttribute(attributes["license_type"]) + if "total_user_accounts" in attributes: # pragma no branch + self._total_user_accounts = self._makeIntAttribute(attributes["total_user_accounts"]) if "visual_studio_license_status" in attributes: # pragma no branch self._visual_studio_license_status = self._makeStringAttribute(attributes["visual_studio_license_status"]) if "visual_studio_subscription_email" in attributes: # pragma no branch self._visual_studio_subscription_email = self._makeStringAttribute( attributes["visual_studio_subscription_email"] ) - if "total_user_accounts" in attributes: # pragma no branch - self._total_user_accounts = self._makeIntAttribute(attributes["total_user_accounts"]) + if "visual_studio_subscription_user" in attributes: # pragma no branch + self._visual_studio_subscription_user = self._makeBoolAttribute( + attributes["visual_studio_subscription_user"] + ) diff --git a/github/NamedUser.py b/github/NamedUser.py index 63c5ef79e4..d79229c2be 100644 --- a/github/NamedUser.py +++ b/github/NamedUser.py @@ -33,6 +33,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -89,6 +90,15 @@ class NamedUser(github.GithubObject.CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/users#get-a-user + The OpenAPI schema can be found at + - /components/schemas/actor + - /components/schemas/collaborator + - /components/schemas/contributor + - /components/schemas/nullable-simple-user + - /components/schemas/public-user + - /components/schemas/simple-user + - /components/schemas/user-search-result-item + """ def _initAttributes(self) -> None: @@ -100,6 +110,7 @@ def _initAttributes(self) -> None: self._contributions: Attribute[int] = NotSet self._created_at: Attribute[datetime] = NotSet self._disk_usage: Attribute[int] = NotSet + self._display_login: Attribute[str] = NotSet self._email: Attribute[str | None] = NotSet self._events_url: Attribute[str] = NotSet self._followers: Attribute[int] = NotSet @@ -117,6 +128,7 @@ def _initAttributes(self) -> None: self._login: Attribute[str] = NotSet self._name: Attribute[str] = NotSet self._node_id: Attribute[str] = NotSet + self._notification_email: Attribute[str] = NotSet self._organizations_url: Attribute[str] = NotSet self._owned_private_repos: Attribute[int] = NotSet self._permissions: Attribute[Permissions] = NotSet @@ -127,35 +139,34 @@ def _initAttributes(self) -> None: self._received_events_url: Attribute[str] = NotSet self._repos_url: Attribute[str] = NotSet self._role: Attribute[str] = NotSet + self._role_name: Attribute[str] = NotSet + self._score: Attribute[float] = NotSet self._site_admin: Attribute[bool] = NotSet + self._starred_at: Attribute[str] = NotSet self._starred_url: Attribute[str] = NotSet self._subscriptions_url: Attribute[str] = NotSet self._suspended_at: Attribute[datetime | None] = NotSet self._team_count: Attribute[int] = NotSet + self._text_matches: Attribute[dict[str, Any]] = NotSet self._total_private_repos: Attribute[int] = NotSet self._twitter_username: Attribute[str | None] = NotSet self._type: Attribute[str] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet + self._user_view_type: Attribute[str] = NotSet - def __repr__(self) -> str: - return self.get__repr__({"login": self._login.value}) - - @property - def node_id(self) -> str: - self._completeIfNotSet(self._node_id) - return self._node_id.value - - @property - def twitter_username(self) -> str | None: - self._completeIfNotSet(self._twitter_username) - return self._twitter_username.value + def __eq__(self, other: Any) -> bool: + return isinstance(other, type(self)) and self.login == other.login and self.id == other.id def __hash__(self) -> int: return hash((self.id, self.login)) - def __eq__(self, other: Any) -> bool: - return isinstance(other, type(self)) and self.login == other.login and self.id == other.id + def __repr__(self) -> str: + return self.get__repr__({"login": self._login.value}) + + @property + def _identity(self) -> str: + return self.login @property def avatar_url(self) -> str: @@ -197,6 +208,10 @@ def disk_usage(self) -> int: self._completeIfNotSet(self._disk_usage) return self._disk_usage.value + @property + def display_login(self) -> str: + return self._display_login.value + @property def email(self) -> str | None: self._completeIfNotSet(self._email) @@ -277,6 +292,15 @@ def name(self) -> str | None: self._completeIfNotSet(self._name) return self._name.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + + @property + def notification_email(self) -> str: + return self._notification_email.value + @property def organizations_url(self) -> str: self._completeIfNotSet(self._organizations_url) @@ -327,11 +351,23 @@ def role(self) -> str: self._completeIfNotSet(self._role) return self._role.value + @property + def role_name(self) -> str: + return self._role_name.value + + @property + def score(self) -> float: + return self._score.value + @property def site_admin(self) -> bool: self._completeIfNotSet(self._site_admin) return self._site_admin.value + @property + def starred_at(self) -> str: + return self._starred_at.value + @property def starred_url(self) -> str: self._completeIfNotSet(self._starred_url) @@ -352,11 +388,20 @@ def team_count(self) -> int: self._completeIfNotSet(self._team_count) return self._team_count.value + @property + def text_matches(self) -> dict[str, Any]: + return self._text_matches.value + @property def total_private_repos(self) -> int | None: self._completeIfNotSet(self._total_private_repos) return self._total_private_repos.value + @property + def twitter_username(self) -> str | None: + self._completeIfNotSet(self._twitter_username) + return self._twitter_username.value + @property def type(self) -> str: self._completeIfNotSet(self._type) @@ -372,6 +417,10 @@ def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value + @property + def user_view_type(self) -> str: + return self._user_view_type.value + def get_events(self) -> PaginatedList[Event]: """ :calls: `GET /users/{user}/events `_ @@ -526,10 +575,6 @@ def has_in_following(self, following: NamedUser) -> bool: status, headers, data = self._requester.requestJson("GET", f"{self.url}/following/{following._identity}") return status == 204 - @property - def _identity(self) -> str: - return self.login - def get_organization_membership(self, org: str | Organization) -> Membership: """ :calls: `GET /orgs/{org}/memberships/{username} `_ @@ -558,6 +603,8 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "disk_usage" in attributes: # pragma no branch self._disk_usage = self._makeIntAttribute(attributes["disk_usage"]) + if "display_login" in attributes: # pragma no branch + self._display_login = self._makeStringAttribute(attributes["display_login"]) if "email" in attributes: # pragma no branch self._email = self._makeStringAttribute(attributes["email"]) if "events_url" in attributes: # pragma no branch @@ -592,6 +639,8 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._name = self._makeStringAttribute(attributes["name"]) if "node_id" in attributes: # pragma no branch self._node_id = self._makeStringAttribute(attributes["node_id"]) + if "notification_email" in attributes: # pragma no branch + self._notification_email = self._makeStringAttribute(attributes["notification_email"]) if "organizations_url" in attributes: # pragma no branch self._organizations_url = self._makeStringAttribute(attributes["organizations_url"]) if "owned_private_repos" in attributes: # pragma no branch @@ -612,8 +661,14 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._repos_url = self._makeStringAttribute(attributes["repos_url"]) if "role" in attributes: # pragma no branch self._role = self._makeStringAttribute(attributes["role"]) + if "role_name" in attributes: # pragma no branch + self._role_name = self._makeStringAttribute(attributes["role_name"]) + if "score" in attributes: # pragma no branch + self._score = self._makeFloatAttribute(attributes["score"]) if "site_admin" in attributes: # pragma no branch self._site_admin = self._makeBoolAttribute(attributes["site_admin"]) + if "starred_at" in attributes: # pragma no branch + self._starred_at = self._makeStringAttribute(attributes["starred_at"]) if "starred_url" in attributes: # pragma no branch self._starred_url = self._makeStringAttribute(attributes["starred_url"]) if "subscriptions_url" in attributes: # pragma no branch @@ -622,6 +677,8 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._suspended_at = self._makeDatetimeAttribute(attributes["suspended_at"]) if "team_count" in attributes: self._team_count = self._makeIntAttribute(attributes["team_count"]) + if "text_matches" in attributes: # pragma no branch + self._text_matches = self._makeDictAttribute(attributes["text_matches"]) if "total_private_repos" in attributes: # pragma no branch self._total_private_repos = self._makeIntAttribute(attributes["total_private_repos"]) if "twitter_username" in attributes: # pragma no branch @@ -632,3 +689,5 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) + if "user_view_type" in attributes: # pragma no branch + self._user_view_type = self._makeStringAttribute(attributes["user_view_type"]) diff --git a/github/Notification.py b/github/Notification.py index 96f389e677..24333b8188 100644 --- a/github/Notification.py +++ b/github/Notification.py @@ -22,6 +22,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Matthias Bilger # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -61,14 +62,17 @@ class Notification(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/activity#notifications + The OpenAPI schema can be found at + - /components/schemas/thread + """ def _initAttributes(self) -> None: self._id: Attribute[str] = NotSet self._last_read_at: Attribute[datetime] = NotSet + self._reason: Attribute[str] = NotSet self._repository: Attribute[github.Repository.Repository] = NotSet self._subject: Attribute[github.NotificationSubject.NotificationSubject] = NotSet - self._reason: Attribute[str] = NotSet self._subscription_url: Attribute[str] = NotSet self._unread: Attribute[bool] = NotSet self._updated_at: Attribute[datetime] = NotSet @@ -87,6 +91,11 @@ def last_read_at(self) -> datetime: self._completeIfNotSet(self._last_read_at) return self._last_read_at.value + @property + def reason(self) -> str: + self._completeIfNotSet(self._reason) + return self._reason.value + @property def repository(self) -> github.Repository.Repository: self._completeIfNotSet(self._repository) @@ -97,11 +106,6 @@ def subject(self) -> github.NotificationSubject.NotificationSubject: self._completeIfNotSet(self._subject) return self._subject.value - @property - def reason(self) -> str: - self._completeIfNotSet(self._reason) - return self._reason.value - @property def subscription_url(self) -> str: self._completeIfNotSet(self._subscription_url) @@ -153,14 +157,14 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._id = self._makeStringAttribute(attributes["id"]) if "last_read_at" in attributes: # pragma no branch self._last_read_at = self._makeDatetimeAttribute(attributes["last_read_at"]) + if "reason" in attributes: # pragma no branch + self._reason = self._makeStringAttribute(attributes["reason"]) if "repository" in attributes: # pragma no branch self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) if "subject" in attributes: # pragma no branch self._subject = self._makeClassAttribute( github.NotificationSubject.NotificationSubject, attributes["subject"] ) - if "reason" in attributes: # pragma no branch - self._reason = self._makeStringAttribute(attributes["reason"]) if "subscription_url" in attributes: # pragma no branch self._subscription_url = self._makeStringAttribute(attributes["subscription_url"]) if "unread" in attributes: # pragma no branch diff --git a/github/NotificationSubject.py b/github/NotificationSubject.py index 0e88c3de99..38ab68bd93 100644 --- a/github/NotificationSubject.py +++ b/github/NotificationSubject.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -51,39 +52,42 @@ class NotificationSubject(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/activity#list-notifications-for-the-authenticated-user + The OpenAPI schema can be found at + - /components/schemas/thread/properties/subject + """ def _initAttributes(self) -> None: - self._title: Attribute[str] = NotSet - self._url: Attribute[str] = NotSet self._latest_comment_url: Attribute[str] = NotSet + self._title: Attribute[str] = NotSet self._type: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"title": self._title.value}) - @property - def title(self) -> str: - return self._title.value - - @property - def url(self) -> str: - return self._url.value - @property def latest_comment_url(self) -> str: return self._latest_comment_url.value + @property + def title(self) -> str: + return self._title.value + @property def type(self) -> str: return self._type.value + @property + def url(self) -> str: + return self._url.value + def _useAttributes(self, attributes: Dict[str, Any]) -> None: - if "title" in attributes: # pragma no branch - self._title = self._makeStringAttribute(attributes["title"]) - if "url" in attributes: # pragma no branch - self._url = self._makeStringAttribute(attributes["url"]) if "latest_comment_url" in attributes: # pragma no branch self._latest_comment_url = self._makeStringAttribute(attributes["latest_comment_url"]) + if "title" in attributes: # pragma no branch + self._title = self._makeStringAttribute(attributes["title"]) if "type" in attributes: # pragma no branch self._type = self._makeStringAttribute(attributes["type"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/Organization.py b/github/Organization.py index e035cfb227..105597548c 100644 --- a/github/Organization.py +++ b/github/Organization.py @@ -59,8 +59,11 @@ # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Mohamed Mostafa <112487260+mohy01@users.noreply.github.com> # # Copyright 2024 Oskar Jansson <56458534+janssonoskar@users.noreply.github.com># +# Copyright 2024 Pasha Fateev # # Copyright 2024 Thomas Cooper # # Copyright 2024 Thomas Crowley <15927917+thomascrowley@users.noreply.github.com># +# Copyright 2025 Bill Napier # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -86,6 +89,10 @@ from datetime import datetime from typing import TYPE_CHECKING, Any +import github.CodeSecurityConfig +import github.CodeSecurityConfigRepository +import github.Copilot +import github.DefaultCodeSecurityConfig import github.Event import github.GithubObject import github.HookDelivery @@ -112,6 +119,10 @@ from github.PaginatedList import PaginatedList if TYPE_CHECKING: + from github.CodeSecurityConfig import CodeSecurityConfig + from github.CodeSecurityConfigRepository import CodeSecurityConfigRepository + from github.Copilot import Copilot + from github.DefaultCodeSecurityConfig import DefaultCodeSecurityConfig from github.Event import Event from github.Hook import Hook from github.Installation import Installation @@ -141,36 +152,56 @@ class Organization(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/orgs + The OpenAPI schema can be found at + - /components/schemas/actor + - /components/schemas/organization-full + - /components/schemas/organization-simple + - /components/schemas/team-organization + """ def _initAttributes(self) -> None: + self._advanced_security_enabled_for_new_repositories: Attribute[bool] = NotSet self._archived_at: Attribute[datetime] = NotSet - self._default_repository_permission: Attribute[str] = NotSet - self._has_organization_projects: Attribute[bool] = NotSet - self._has_repository_projects: Attribute[bool] = NotSet - self._hooks_url: Attribute[str] = NotSet - self._issues_url: Attribute[str] = NotSet - self._members_can_create_repositories: Attribute[bool] = NotSet - self._two_factor_requirement_enabled: Attribute[bool] = NotSet self._avatar_url: Attribute[str] = NotSet self._billing_email: Attribute[str] = NotSet self._blog: Attribute[str | None] = NotSet self._collaborators: Attribute[int] = NotSet self._company: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet + self._default_repository_permission: Attribute[str] = NotSet + self._dependabot_alerts_enabled_for_new_repositories: Attribute[bool] = NotSet + self._dependabot_security_updates_enabled_for_new_repositories: Attribute[bool] = NotSet + self._dependency_graph_enabled_for_new_repositories: Attribute[bool] = NotSet self._description: Attribute[str] = NotSet self._disk_usage: Attribute[int] = NotSet + self._display_login: Attribute[str] = NotSet self._email: Attribute[str] = NotSet self._events_url: Attribute[str] = NotSet self._followers: Attribute[int] = NotSet self._following: Attribute[int] = NotSet self._gravatar_id: Attribute[str] = NotSet + self._has_organization_projects: Attribute[bool] = NotSet + self._has_repository_projects: Attribute[bool] = NotSet + self._hooks_url: Attribute[str] = NotSet self._html_url: Attribute[str] = NotSet self._id: Attribute[int] = NotSet + self._is_verified: Attribute[bool] = NotSet + self._issues_url: Attribute[str] = NotSet self._location: Attribute[str] = NotSet self._login: Attribute[str] = NotSet + self._members_allowed_repository_creation_type: Attribute[str] = NotSet + self._members_can_create_internal_repositories: Attribute[bool] = NotSet + self._members_can_create_pages: Attribute[bool] = NotSet + self._members_can_create_private_pages: Attribute[bool] = NotSet + self._members_can_create_private_repositories: Attribute[bool] = NotSet + self._members_can_create_public_pages: Attribute[bool] = NotSet + self._members_can_create_public_repositories: Attribute[bool] = NotSet + self._members_can_create_repositories: Attribute[bool] = NotSet + self._members_can_fork_private_repositories: Attribute[bool] = NotSet self._members_url: Attribute[str] = NotSet self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet self._owned_private_repos: Attribute[int] = NotSet self._plan: Attribute[Plan] = NotSet self._private_gists: Attribute[int] = NotSet @@ -178,14 +209,26 @@ def _initAttributes(self) -> None: self._public_members_url: Attribute[str] = NotSet self._public_repos: Attribute[int] = NotSet self._repos_url: Attribute[str] = NotSet + self._secret_scanning_enabled_for_new_repositories: Attribute[bool] = NotSet + self._secret_scanning_push_protection_custom_link: Attribute[str] = NotSet + self._secret_scanning_push_protection_custom_link_enabled: Attribute[bool] = NotSet + self._secret_scanning_push_protection_enabled_for_new_repositories: Attribute[bool] = NotSet self._total_private_repos: Attribute[int] = NotSet + self._twitter_username: Attribute[str] = NotSet + self._two_factor_requirement_enabled: Attribute[bool] = NotSet self._type: Attribute[str] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet + self._web_commit_signoff_required: Attribute[bool] = NotSet def __repr__(self) -> str: return self.get__repr__({"login": self._login.value}) + @property + def advanced_security_enabled_for_new_repositories(self) -> bool: + self._completeIfNotSet(self._advanced_security_enabled_for_new_repositories) + return self._advanced_security_enabled_for_new_repositories.value + @property def archived_at(self) -> datetime: self._completeIfNotSet(self._archived_at) @@ -226,6 +269,21 @@ def default_repository_permission(self) -> str: self._completeIfNotSet(self._default_repository_permission) return self._default_repository_permission.value + @property + def dependabot_alerts_enabled_for_new_repositories(self) -> bool: + self._completeIfNotSet(self._dependabot_alerts_enabled_for_new_repositories) + return self._dependabot_alerts_enabled_for_new_repositories.value + + @property + def dependabot_security_updates_enabled_for_new_repositories(self) -> bool: + self._completeIfNotSet(self._dependabot_security_updates_enabled_for_new_repositories) + return self._dependabot_security_updates_enabled_for_new_repositories.value + + @property + def dependency_graph_enabled_for_new_repositories(self) -> bool: + self._completeIfNotSet(self._dependency_graph_enabled_for_new_repositories) + return self._dependency_graph_enabled_for_new_repositories.value + @property def description(self) -> str: self._completeIfNotSet(self._description) @@ -236,6 +294,11 @@ def disk_usage(self) -> int: self._completeIfNotSet(self._disk_usage) return self._disk_usage.value + @property + def display_login(self) -> str: + self._completeIfNotSet(self._display_login) + return self._display_login.value + @property def email(self) -> str | None: self._completeIfNotSet(self._email) @@ -286,6 +349,11 @@ def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value + @property + def is_verified(self) -> bool: + self._completeIfNotSet(self._is_verified) + return self._is_verified.value + @property def issues_url(self) -> str: self._completeIfNotSet(self._issues_url) @@ -301,11 +369,51 @@ def login(self) -> str: self._completeIfNotSet(self._login) return self._login.value + @property + def members_allowed_repository_creation_type(self) -> str: + self._completeIfNotSet(self._members_allowed_repository_creation_type) + return self._members_allowed_repository_creation_type.value + + @property + def members_can_create_internal_repositories(self) -> bool: + self._completeIfNotSet(self._members_can_create_internal_repositories) + return self._members_can_create_internal_repositories.value + + @property + def members_can_create_pages(self) -> bool: + self._completeIfNotSet(self._members_can_create_pages) + return self._members_can_create_pages.value + + @property + def members_can_create_private_pages(self) -> bool: + self._completeIfNotSet(self._members_can_create_private_pages) + return self._members_can_create_private_pages.value + + @property + def members_can_create_private_repositories(self) -> bool: + self._completeIfNotSet(self._members_can_create_private_repositories) + return self._members_can_create_private_repositories.value + + @property + def members_can_create_public_pages(self) -> bool: + self._completeIfNotSet(self._members_can_create_public_pages) + return self._members_can_create_public_pages.value + + @property + def members_can_create_public_repositories(self) -> bool: + self._completeIfNotSet(self._members_can_create_public_repositories) + return self._members_can_create_public_repositories.value + @property def members_can_create_repositories(self) -> bool: self._completeIfNotSet(self._members_can_create_repositories) return self._members_can_create_repositories.value + @property + def members_can_fork_private_repositories(self) -> bool: + self._completeIfNotSet(self._members_can_fork_private_repositories) + return self._members_can_fork_private_repositories.value + @property def members_url(self) -> str: self._completeIfNotSet(self._members_url) @@ -316,6 +424,11 @@ def name(self) -> str | None: self._completeIfNotSet(self._name) return self._name.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def owned_private_repos(self) -> int: self._completeIfNotSet(self._owned_private_repos) @@ -351,11 +464,36 @@ def repos_url(self) -> str: self._completeIfNotSet(self._repos_url) return self._repos_url.value + @property + def secret_scanning_enabled_for_new_repositories(self) -> bool: + self._completeIfNotSet(self._secret_scanning_enabled_for_new_repositories) + return self._secret_scanning_enabled_for_new_repositories.value + + @property + def secret_scanning_push_protection_custom_link(self) -> str: + self._completeIfNotSet(self._secret_scanning_push_protection_custom_link) + return self._secret_scanning_push_protection_custom_link.value + + @property + def secret_scanning_push_protection_custom_link_enabled(self) -> bool: + self._completeIfNotSet(self._secret_scanning_push_protection_custom_link_enabled) + return self._secret_scanning_push_protection_custom_link_enabled.value + + @property + def secret_scanning_push_protection_enabled_for_new_repositories(self) -> bool: + self._completeIfNotSet(self._secret_scanning_push_protection_enabled_for_new_repositories) + return self._secret_scanning_push_protection_enabled_for_new_repositories.value + @property def total_private_repos(self) -> int: self._completeIfNotSet(self._total_private_repos) return self._total_private_repos.value + @property + def twitter_username(self) -> str: + self._completeIfNotSet(self._twitter_username) + return self._twitter_username.value + @property def two_factor_requirement_enabled(self) -> bool: self._completeIfNotSet(self._two_factor_requirement_enabled) @@ -376,6 +514,11 @@ def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value + @property + def web_commit_signoff_required(self) -> bool: + self._completeIfNotSet(self._web_commit_signoff_required) + return self._web_commit_signoff_required.value + def add_to_members(self, member: NamedUser, role: Opt[str] = NotSet) -> None: """ :calls: `PUT /orgs/{org}/memberships/{user} `_ @@ -910,7 +1053,7 @@ def get_hook_delivery(self, hook_id: int, delivery_id: int) -> github.HookDelive headers, data = self._requester.requestJsonAndCheck( "GET", f"{self.url}/hooks/{hook_id}/deliveries/{delivery_id}" ) - return github.HookDelivery.HookDelivery(self._requester, headers, data, completed=True) + return github.HookDelivery.HookDelivery(self._requester, headers, data) def get_hook_deliveries(self, hook_id: int) -> PaginatedList[github.HookDelivery.HookDeliverySummary]: """ @@ -1053,6 +1196,12 @@ def get_public_key(self, secret_type: str = "actions") -> PublicKey: headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/{secret_type}/secrets/public-key") return github.PublicKey.PublicKey(self._requester, headers, data, completed=True) + def get_copilot(self) -> Copilot: + """ + :calls: Various Copilot-related endpoints for this organization :rtype: :class:`github.Copilot.Copilot` + """ + return github.Copilot.Copilot(self._requester, self.login) + def get_repo(self, name: str) -> Repository: """ :calls: `GET /repos/{owner}/{repo} `_ @@ -1366,7 +1515,6 @@ def get_custom_property(self, property_name: str) -> OrganizationCustomProperty: requester=self._requester, headers=headers, attributes=data, - completed=False, ) def create_custom_properties(self, properties: list[CustomProperty]) -> list[OrganizationCustomProperty]: @@ -1384,7 +1532,7 @@ def create_custom_properties(self, properties: list[CustomProperty]) -> list[Org ) return [ github.OrganizationCustomProperty.OrganizationCustomProperty( - requester=self._requester, headers=headers, attributes=property, completed=True + requester=self._requester, headers=headers, attributes=property ) for property in data ] @@ -1405,7 +1553,7 @@ def create_custom_property(self, property: CustomProperty) -> OrganizationCustom "PUT", f"{self.url}/properties/schema/{property_name}", input=post_parameters ) return github.OrganizationCustomProperty.OrganizationCustomProperty( - requester=self._requester, headers=headers, attributes=data, completed=True + requester=self._requester, headers=headers, attributes=data ) def remove_custom_property(self, property_name: str) -> None: @@ -1451,7 +1599,253 @@ def create_custom_property_values( } self._requester.requestJsonAndCheck("PATCH", f"{self.url}/properties/values", input=patch_parameters) + def get_code_security_configs(self, target_type: Opt[str] = NotSet) -> PaginatedList[CodeSecurityConfig]: + """ + :calls: `GET /orgs/{org}/code-security/configurations `_ + :rtype: :class:`CodeSecurityConfig` + """ + return PaginatedList( + contentClass=github.CodeSecurityConfig.CodeSecurityConfig, + requester=self._requester, + firstUrl=f"{self.url}/code-security/configurations", + firstParams=NotSet.remove_unset_items({"target_type": target_type}), + ) + + def create_code_security_config( + self, + name: str, + description: str, + advanced_security: Opt[str] = NotSet, + dependency_graph: Opt[str] = NotSet, + dependency_graph_autosubmit_action: Opt[str] = NotSet, + dependabot_alerts: Opt[str] = NotSet, + dependabot_security_updates: Opt[str] = NotSet, + code_scanning_default_setup: Opt[str] = NotSet, + secret_scanning: Opt[str] = NotSet, + secret_scanning_push_protection: Opt[str] = NotSet, + secret_scanning_delegated_bypass: Opt[str] = NotSet, + secret_scanning_validity_checks: Opt[str] = NotSet, + secret_scanning_non_provider_patterns: Opt[str] = NotSet, + private_vulnerability_reporting: Opt[str] = NotSet, + enforcement: Opt[str] = NotSet, + ) -> CodeSecurityConfig: + """ + :calls: `POST /orgs/{org}/code-security/configurations `_ + :rtype: :class:`PaginatedList` of dict + """ + assert isinstance(name, str), name + assert isinstance(description, str), description + assert is_optional(advanced_security, str), advanced_security + assert is_optional(dependency_graph, str), dependency_graph + assert is_optional(dependency_graph_autosubmit_action, str), dependency_graph_autosubmit_action + assert is_optional(dependabot_alerts, str), dependabot_alerts + assert is_optional(dependabot_security_updates, str), dependabot_security_updates + assert is_optional(code_scanning_default_setup, str), code_scanning_default_setup + assert is_optional(secret_scanning, str), secret_scanning + assert is_optional(secret_scanning_push_protection, str), secret_scanning_push_protection + assert is_optional(secret_scanning_delegated_bypass, str), secret_scanning_delegated_bypass + assert is_optional(secret_scanning_validity_checks, str), secret_scanning_validity_checks + assert is_optional(secret_scanning_non_provider_patterns, str), secret_scanning_non_provider_patterns + assert is_optional(private_vulnerability_reporting, str), private_vulnerability_reporting + assert is_optional(enforcement, str), enforcement + post_parameters = NotSet.remove_unset_items( + { + "name": name, + "description": description, + "advanced_security": advanced_security, + "dependency_graph": dependency_graph, + "dependency_graph_autosubmit_action": dependency_graph_autosubmit_action, + "dependabot_alerts": dependabot_alerts, + "dependabot_security_updates": dependabot_security_updates, + "code_scanning_default_setup": code_scanning_default_setup, + "secret_scanning": secret_scanning, + "secret_scanning_push_protection": secret_scanning_push_protection, + "secret_scanning_delegated_bypass": secret_scanning_delegated_bypass, + "secret_scanning_validity_checks": secret_scanning_validity_checks, + "secret_scanning_non_provider_patterns": secret_scanning_non_provider_patterns, + "private_vulnerability_reporting": private_vulnerability_reporting, + "enforcement": enforcement, + } + ) + + headers, data = self._requester.requestJsonAndCheck( + "POST", + f"{self.url}/code-security/configurations", + input=post_parameters, + headers={"Accept": Consts.repoVisibilityPreview}, + ) + return github.CodeSecurityConfig.CodeSecurityConfig(self._requester, headers, data) + + def edit_code_security_config( + self, + id: int, + name: Opt[str] = NotSet, + description: Opt[str] = NotSet, + advanced_security: Opt[str] = NotSet, + dependency_graph: Opt[str] = NotSet, + dependency_graph_autosubmit_action: Opt[str] = NotSet, + dependabot_alerts: Opt[str] = NotSet, + dependabot_security_updates: Opt[str] = NotSet, + code_scanning_default_setup: Opt[str] = NotSet, + secret_scanning: Opt[str] = NotSet, + secret_scanning_push_protection: Opt[str] = NotSet, + secret_scanning_delegated_bypass: Opt[str] = NotSet, + secret_scanning_validity_checks: Opt[str] = NotSet, + secret_scanning_non_provider_patterns: Opt[str] = NotSet, + private_vulnerability_reporting: Opt[str] = NotSet, + enforcement: Opt[str] = NotSet, + ) -> CodeSecurityConfig: + """ + :calls: `PATCH /orgs/{org}/code-security/configurations/{configuration_id} `_ + """ + assert isinstance(id, int), id + assert is_optional(name, str), name + assert is_optional(description, str), description + assert is_optional(advanced_security, str), advanced_security + assert is_optional(dependency_graph, str), dependency_graph + assert is_optional(dependency_graph_autosubmit_action, str), dependency_graph_autosubmit_action + assert is_optional(dependabot_alerts, str), dependabot_alerts + assert is_optional(dependabot_security_updates, str), dependabot_security_updates + assert is_optional(code_scanning_default_setup, str), code_scanning_default_setup + assert is_optional(secret_scanning, str), secret_scanning + assert is_optional(secret_scanning_push_protection, str), secret_scanning_push_protection + assert is_optional(secret_scanning_delegated_bypass, str), secret_scanning_delegated_bypass + assert is_optional(secret_scanning_validity_checks, str), secret_scanning_validity_checks + assert is_optional(secret_scanning_non_provider_patterns, str), secret_scanning_non_provider_patterns + assert is_optional(private_vulnerability_reporting, str), private_vulnerability_reporting + assert is_optional(enforcement, str), enforcement + post_parameters = NotSet.remove_unset_items( + { + "name": name, + "description": description, + "advanced_security": advanced_security, + "dependency_graph": dependency_graph, + "dependency_graph_autosubmit_action": dependency_graph_autosubmit_action, + "dependabot_alerts": dependabot_alerts, + "dependabot_security_updates": dependabot_security_updates, + "code_scanning_default_setup": code_scanning_default_setup, + "secret_scanning": secret_scanning, + "secret_scanning_push_protection": secret_scanning_push_protection, + "secret_scanning_delegated_bypass": secret_scanning_delegated_bypass, + "secret_scanning_validity_checks": secret_scanning_validity_checks, + "secret_scanning_non_provider_patterns": secret_scanning_non_provider_patterns, + "private_vulnerability_reporting": private_vulnerability_reporting, + "enforcement": enforcement, + } + ) + + headers, data = self._requester.requestJsonAndCheck( + "PATCH", f"{self.url}/code-security/configurations/{id}", input=post_parameters + ) + return github.CodeSecurityConfig.CodeSecurityConfig(self._requester, headers, data) + + def delete_code_security_config(self, id: int) -> None: + """ + :calls: `DELETE /orgs/{org}/code-security/configurations/{configuration_id} `_ + :param id: integer + :rtype: None` + """ + assert isinstance(id, int), id + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/code-security/configurations/{id}") + + def get_code_security_config(self, id: int) -> CodeSecurityConfig: + """ + :calls: `GET /orgs/{org}/code-security/configurations/{configuration_id} `_ + :param id: configuration_id + :rtype: CodeSecurityConfig + """ + assert isinstance(id, int), id + + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/code-security/configurations/{id}") + return github.CodeSecurityConfig.CodeSecurityConfig(self._requester, headers, data) + + def set_default_code_security_config(self, id: int, default_for_new_repos: Opt[str] = NotSet) -> None: + """ + :calls: `PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults `_ + """ + assert isinstance(id, int), id + assert is_optional(default_for_new_repos, str), default_for_new_repos + put_parameters = NotSet.remove_unset_items({"default_for_new_repos": default_for_new_repos}) + headers, data = self._requester.requestJsonAndCheck( + "PUT", f"{self.url}/code-security/configurations/{id}/defaults", input=put_parameters + ) + + def get_default_code_security_configs(self) -> PaginatedList[DefaultCodeSecurityConfig]: + """ + :calls: `GET /orgs/{org}/code-security/configurations/defaults `_ + :rtype: :class:`github.DefaultCodeSecurityConfig.DefaultCodeSecurityConfig` + """ + return PaginatedList( + contentClass=github.DefaultCodeSecurityConfig.DefaultCodeSecurityConfig, + requester=self._requester, + firstUrl=f"{self.url}/code-security/configurations/defaults", + firstParams=None, + ) + + def attach_security_config_to_repositories( + self, id: int, scope: str, selected_repository_ids: Opt[list[int]] = NotSet + ) -> None: + """ + :calls: `POST /orgs/{org}/code-security/configurations/{configuration_id}/attach `_ + """ + assert isinstance(id, int), id + assert isinstance(scope, str), scope + assert is_optional(selected_repository_ids, list), selected_repository_ids + post_parameters: dict[str, Any] = NotSet.remove_unset_items( + { + "scope": scope, + "selected_repository_ids": selected_repository_ids, + } + ) + + headers, data = self._requester.requestJsonAndCheck( + "POST", + f"/orgs/{self.login}/code-security/configurations/{id}/attach", + input=post_parameters, + headers={"Accept": Consts.repoVisibilityPreview}, + ) + + def detach_security_config_from_repositories(self, selected_repository_ids: list[int]) -> None: + """ + :calls: `DELETE /orgs/{org}/code-security/configurations/detach `_ + """ + assert isinstance(selected_repository_ids, list), selected_repository_ids + delete_parameters: dict[str, Any] = NotSet.remove_unset_items( + { + "selected_repository_ids": selected_repository_ids, + } + ) + headers, data = self._requester.requestJsonAndCheck( + "DELETE", + f"/orgs/{self.login}/code-security/configurations/detach", + input=delete_parameters, + headers={"Accept": Consts.repoVisibilityPreview}, + ) + + def get_repos_for_code_security_config( + self, id: int, status: Opt[str] = NotSet + ) -> PaginatedList[CodeSecurityConfigRepository]: + """ + :calls: `GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories `_ + """ + assert isinstance(id, int), id + assert is_optional(status, str), status + + url_parameters = NotSet.remove_unset_items({"status": status}) + + return PaginatedList( + github.CodeSecurityConfigRepository.CodeSecurityConfigRepository, + self._requester, + f"{self.url}/code-security/configurations/{id}/repositories", + url_parameters, + headers={"Accept": Consts.repoVisibilityPreview}, + ) + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "advanced_security_enabled_for_new_repositories" in attributes: # pragma no branch + self._advanced_security_enabled_for_new_repositories = self._makeBoolAttribute( + attributes["advanced_security_enabled_for_new_repositories"] + ) if "archived_at" in attributes: # pragma no branch assert attributes["archived_at"] is None or isinstance(attributes["archived_at"], str), attributes[ "archived_at" @@ -1471,10 +1865,24 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "default_repository_permission" in attributes: # pragma no branch self._default_repository_permission = self._makeStringAttribute(attributes["default_repository_permission"]) + if "dependabot_alerts_enabled_for_new_repositories" in attributes: # pragma no branch + self._dependabot_alerts_enabled_for_new_repositories = self._makeBoolAttribute( + attributes["dependabot_alerts_enabled_for_new_repositories"] + ) + if "dependabot_security_updates_enabled_for_new_repositories" in attributes: # pragma no branch + self._dependabot_security_updates_enabled_for_new_repositories = self._makeBoolAttribute( + attributes["dependabot_security_updates_enabled_for_new_repositories"] + ) + if "dependency_graph_enabled_for_new_repositories" in attributes: # pragma no branch + self._dependency_graph_enabled_for_new_repositories = self._makeBoolAttribute( + attributes["dependency_graph_enabled_for_new_repositories"] + ) if "description" in attributes: # pragma no branch self._description = self._makeStringAttribute(attributes["description"]) if "disk_usage" in attributes: # pragma no branch self._disk_usage = self._makeIntAttribute(attributes["disk_usage"]) + if "display_login" in attributes: # pragma no branch + self._display_login = self._makeStringAttribute(attributes["display_login"]) if "email" in attributes: # pragma no branch self._email = self._makeStringAttribute(attributes["email"]) if "events_url" in attributes: # pragma no branch @@ -1495,20 +1903,54 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._html_url = self._makeStringAttribute(attributes["html_url"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) + if "is_verified" in attributes: # pragma no branch + self._is_verified = self._makeBoolAttribute(attributes["is_verified"]) if "issues_url" in attributes: # pragma no branch self._issues_url = self._makeStringAttribute(attributes["issues_url"]) if "location" in attributes: # pragma no branch self._location = self._makeStringAttribute(attributes["location"]) if "login" in attributes: # pragma no branch self._login = self._makeStringAttribute(attributes["login"]) + if "members_allowed_repository_creation_type" in attributes: # pragma no branch + self._members_allowed_repository_creation_type = self._makeStringAttribute( + attributes["members_allowed_repository_creation_type"] + ) + if "members_can_create_internal_repositories" in attributes: # pragma no branch + self._members_can_create_internal_repositories = self._makeBoolAttribute( + attributes["members_can_create_internal_repositories"] + ) + if "members_can_create_pages" in attributes: # pragma no branch + self._members_can_create_pages = self._makeBoolAttribute(attributes["members_can_create_pages"]) + if "members_can_create_private_pages" in attributes: # pragma no branch + self._members_can_create_private_pages = self._makeBoolAttribute( + attributes["members_can_create_private_pages"] + ) + if "members_can_create_private_repositories" in attributes: # pragma no branch + self._members_can_create_private_repositories = self._makeBoolAttribute( + attributes["members_can_create_private_repositories"] + ) + if "members_can_create_public_pages" in attributes: # pragma no branch + self._members_can_create_public_pages = self._makeBoolAttribute( + attributes["members_can_create_public_pages"] + ) + if "members_can_create_public_repositories" in attributes: # pragma no branch + self._members_can_create_public_repositories = self._makeBoolAttribute( + attributes["members_can_create_public_repositories"] + ) if "members_can_create_repositories" in attributes: # pragma no branch self._members_can_create_repositories = self._makeBoolAttribute( attributes["members_can_create_repositories"] ) + if "members_can_fork_private_repositories" in attributes: # pragma no branch + self._members_can_fork_private_repositories = self._makeBoolAttribute( + attributes["members_can_fork_private_repositories"] + ) if "members_url" in attributes: # pragma no branch self._members_url = self._makeStringAttribute(attributes["members_url"]) 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 "owned_private_repos" in attributes: # pragma no branch self._owned_private_repos = self._makeIntAttribute(attributes["owned_private_repos"]) if "plan" in attributes: # pragma no branch @@ -1523,8 +1965,26 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._public_repos = self._makeIntAttribute(attributes["public_repos"]) if "repos_url" in attributes: # pragma no branch self._repos_url = self._makeStringAttribute(attributes["repos_url"]) + if "secret_scanning_enabled_for_new_repositories" in attributes: # pragma no branch + self._secret_scanning_enabled_for_new_repositories = self._makeBoolAttribute( + attributes["secret_scanning_enabled_for_new_repositories"] + ) + if "secret_scanning_push_protection_custom_link" in attributes: # pragma no branch + self._secret_scanning_push_protection_custom_link = self._makeStringAttribute( + attributes["secret_scanning_push_protection_custom_link"] + ) + if "secret_scanning_push_protection_custom_link_enabled" in attributes: # pragma no branch + self._secret_scanning_push_protection_custom_link_enabled = self._makeBoolAttribute( + attributes["secret_scanning_push_protection_custom_link_enabled"] + ) + if "secret_scanning_push_protection_enabled_for_new_repositories" in attributes: # pragma no branch + self._secret_scanning_push_protection_enabled_for_new_repositories = self._makeBoolAttribute( + attributes["secret_scanning_push_protection_enabled_for_new_repositories"] + ) if "total_private_repos" in attributes: # pragma no branch self._total_private_repos = self._makeIntAttribute(attributes["total_private_repos"]) + if "twitter_username" in attributes: # pragma no branch + self._twitter_username = self._makeStringAttribute(attributes["twitter_username"]) if "two_factor_requirement_enabled" in attributes: # pragma no branch self._two_factor_requirement_enabled = self._makeBoolAttribute(attributes["two_factor_requirement_enabled"]) if "type" in attributes: # pragma no branch @@ -1533,3 +1993,5 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) + if "web_commit_signoff_required" in attributes: # pragma no branch + self._web_commit_signoff_required = self._makeBoolAttribute(attributes["web_commit_signoff_required"]) diff --git a/github/OrganizationCustomProperty.py b/github/OrganizationCustomProperty.py index aaca11a67b..53f935ba1f 100644 --- a/github/OrganizationCustomProperty.py +++ b/github/OrganizationCustomProperty.py @@ -1,6 +1,8 @@ ############################ Copyrights and license ############################ # # # Copyright 2024 Jacky Lam # +# Copyright 2024 Kian-Meng Ang # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -76,19 +78,24 @@ class OrganizationCustomProperty(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/orgs/custom-properties - """ + The OpenAPI schema can be found at + - /components/schemas/custom-property - @property - def property_name(self) -> str: - return self._property_name.value + """ - @property - def value_type(self) -> str: - return self._value_type.value + def _initAttributes(self) -> None: + self._allowed_values: Attribute[list[str]] = NotSet + self._default_value: Attribute[str | list[str]] = NotSet + self._description: Attribute[str] = NotSet + self._property_name: Attribute[str] = NotSet + self._required: Attribute[bool] = NotSet + self._url: Attribute[str] = NotSet + self._value_type: Attribute[str] = NotSet + self._values_editable_by: Attribute[str] = NotSet @property - def required(self) -> Opt[bool | None]: - return self._required.value + def allowed_values(self) -> Opt[list[str] | None]: + return self._allowed_values.value @property def default_value(self) -> Opt[str | list[str] | None]: @@ -99,33 +106,40 @@ def description(self) -> Opt[str | None]: return self._description.value @property - def allowed_values(self) -> Opt[list[str] | None]: - return self._allowed_values.value + def property_name(self) -> str: + return self._property_name.value + + @property + def required(self) -> Opt[bool | None]: + return self._required.value + + @property + def url(self) -> str: + return self._url.value + + @property + def value_type(self) -> str: + return self._value_type.value @property def values_editable_by(self) -> Opt[str | None]: return self._values_editable_by.value - def _initAttributes(self) -> None: - self._property_name: Attribute[str] = NotSet - self._value_type: Attribute[str] = NotSet - self._required: Attribute[bool] = NotSet - self._default_value: Attribute[str | list[str]] = NotSet - self._description: Attribute[str] = NotSet - self._allowed_values: Attribute[list[str]] = NotSet - self._values_editable_by: Attribute[str] = NotSet - def _useAttributes(self, attributes: dict[str, Any]) -> None: - self._property_name = self._makeStringAttribute(attributes["property_name"]) - self._value_type = self._makeStringAttribute(attributes["value_type"]) - if "required" in attributes: - self._required = self._makeBoolAttribute(attributes["required"]) + if "allowed_values" in attributes: + self._allowed_values = self._makeListOfStringsAttribute(attributes["allowed_values"]) if "default_value" in attributes: self._default_value = self._makeStringAttribute(attributes["default_value"]) if "description" in attributes: self._description = self._makeStringAttribute(attributes["description"]) - if "allowed_values" in attributes: - self._allowed_values = self._makeListOfStringsAttribute(attributes["allowed_values"]) + if "property_name" in attributes: # pragma no branch + self._property_name = self._makeStringAttribute(attributes["property_name"]) + if "required" in attributes: + self._required = self._makeBoolAttribute(attributes["required"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) + if "value_type" in attributes: # pragma no branch + self._value_type = self._makeStringAttribute(attributes["value_type"]) if "values_editable_by" in attributes: self._values_editable_by = self._makeStringAttribute(attributes["values_editable_by"]) @@ -139,27 +153,27 @@ class RepositoryCustomPropertyValues(NonCompletableGithubObject): """ - @property - def respository_id(self) -> int: - return self._repository_id.value + def _initAttributes(self) -> None: + self._properties: Attribute[dict[str, str]] = NotSet + self._repository_full_name: Attribute[str] = NotSet + self._repository_id: Attribute[int] = NotSet + self._repository_name: Attribute[str] = NotSet @property - def repository_name(self) -> str: - return self._repository_name.value + def properties(self) -> dict[str, str]: + return self._properties.value @property def repository_full_name(self) -> str: return self._repository_full_name.value @property - def properties(self) -> dict[str, str]: - return self._properties.value + def repository_name(self) -> str: + return self._repository_name.value - def _initAttributes(self) -> None: - self._repository_id: Attribute[int] = NotSet - self._repository_name: Attribute[str] = NotSet - self._repository_full_name: Attribute[str] = NotSet - self._properties: Attribute[dict[str, str]] = NotSet + @property + def repository_id(self) -> int: + return self._repository_id.value def _useAttributes(self, attributes: dict[str, Any]) -> None: self._repository_id = self._makeIntAttribute(attributes["repository_id"]) diff --git a/github/OrganizationDependabotAlert.py b/github/OrganizationDependabotAlert.py index 27f2ff4d22..ec1fcb1486 100644 --- a/github/OrganizationDependabotAlert.py +++ b/github/OrganizationDependabotAlert.py @@ -3,6 +3,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Thomas Cooper # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -38,6 +39,9 @@ class OrganizationDependabotAlert(DependabotAlert): The reference can be found here https://docs.github.com/en/rest/dependabot/alerts#list-dependabot-alerts-for-an-organization + The OpenAPI schema can be found at + - /components/schemas/dependabot-alert-with-repository + """ def _initAttributes(self) -> None: diff --git a/github/OrganizationSecret.py b/github/OrganizationSecret.py index 56b999e83b..1a0cbd1d39 100644 --- a/github/OrganizationSecret.py +++ b/github/OrganizationSecret.py @@ -5,6 +5,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Thomas Crowley <15927917+thomascrowley@users.noreply.github.com># +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -43,13 +44,13 @@ class OrganizationSecret(Secret): """ def _initAttributes(self) -> None: - self._name: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet - self._updated_at: Attribute[datetime] = NotSet - self._visibility: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet self._selected_repositories: Attribute[PaginatedList[Repository]] = NotSet self._selected_repositories_url: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet + self._visibility: Attribute[str] = NotSet @property def visibility(self) -> str: @@ -123,15 +124,15 @@ def remove_repo(self, repo: Repository) -> bool: return True def _useAttributes(self, attributes: Dict[str, Any]) -> None: - if "name" in attributes: - self._name = self._makeStringAttribute(attributes["name"]) if "created_at" in attributes: self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) - if "updated_at" in attributes: - self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) - if "visibility" in attributes: - self._visibility = self._makeStringAttribute(attributes["visibility"]) + if "name" in attributes: + self._name = self._makeStringAttribute(attributes["name"]) if "selected_repositories_url" in attributes: self._selected_repositories_url = self._makeStringAttribute(attributes["selected_repositories_url"]) + if "updated_at" in attributes: + self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: self._url = self._makeStringAttribute(attributes["url"]) + if "visibility" in attributes: + self._visibility = self._makeStringAttribute(attributes["visibility"]) diff --git a/github/OrganizationVariable.py b/github/OrganizationVariable.py index 8bf0b62027..8abd430868 100644 --- a/github/OrganizationVariable.py +++ b/github/OrganizationVariable.py @@ -4,6 +4,7 @@ # Copyright 2023 Mauricio Alejandro Martínez Pacheco # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -42,13 +43,13 @@ class OrganizationVariable(Variable): """ def _initAttributes(self) -> None: - self._name: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet - self._updated_at: Attribute[datetime] = NotSet - self._visibility: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet self._selected_repositories: Attribute[PaginatedList[Repository]] = NotSet self._selected_repositories_url: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet + self._visibility: Attribute[str] = NotSet @property def visibility(self) -> str: @@ -119,15 +120,15 @@ def remove_repo(self, repo: Repository) -> bool: return True def _useAttributes(self, attributes: Dict[str, Any]) -> None: - if "name" in attributes: - self._name = self._makeStringAttribute(attributes["name"]) if "created_at" in attributes: self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) - if "updated_at" in attributes: - self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) - if "visibility" in attributes: - self._visibility = self._makeStringAttribute(attributes["visibility"]) + if "name" in attributes: + self._name = self._makeStringAttribute(attributes["name"]) if "selected_repositories_url" in attributes: self._selected_repositories_url = self._makeStringAttribute(attributes["selected_repositories_url"]) + if "updated_at" in attributes: + self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: self._url = self._makeStringAttribute(attributes["url"]) + if "visibility" in attributes: + self._visibility = self._makeStringAttribute(attributes["visibility"]) diff --git a/github/PaginatedList.py b/github/PaginatedList.py index d599b4e8b8..cbbe4caae3 100644 --- a/github/PaginatedList.py +++ b/github/PaginatedList.py @@ -354,7 +354,7 @@ def _getPage(self, data: Any, headers: Optional[Dict[str, Union[str, int]]]) -> self.__totalCount = data.get(self.__total_count_item) data = data[self.__list_item] content = [ - self.__contentClass(self.__requester, headers, self._transformAttributes(element), completed=False) # type: ignore + self.__contentClass(self.__requester, headers, self._transformAttributes(element)) # type: ignore for element in data if element is not None ] @@ -385,11 +385,7 @@ def _getPage(self, data: Any, headers: Optional[Dict[str, Union[str, int]]]) -> nodes = data["nodes"] if self._reversed: nodes = nodes[::-1] - return [ - self.__contentClass(self.__requester, {}, element, completed=False) - for element in nodes - if element is not None - ] + return [self.__contentClass(self.__requester, {}, element) for element in nodes if element is not None] def __parseLinkHeader(self, headers: Dict[str, Union[str, int]]) -> Dict[str, str]: links = {} @@ -418,10 +414,7 @@ def get_page(self, page: int) -> List[T]: if self.__list_item in data: self.__totalCount = data.get("total_count") data = data[self.__list_item] - return [ - self.__contentClass(self.__requester, headers, self._transformAttributes(element), completed=False) - for element in data - ] + return [self.__contentClass(self.__requester, headers, self._transformAttributes(element)) for element in data] @classmethod def override_attributes(cls, overrides: Dict[str, Any]) -> Callable[[Dict[str, Any]], Dict[str, Any]]: diff --git a/github/Path.py b/github/Path.py index a77a5d350d..07e036af09 100644 --- a/github/Path.py +++ b/github/Path.py @@ -18,6 +18,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -49,12 +50,15 @@ class Path(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#traffic + The OpenAPI schema can be found at + - /components/schemas/content-traffic + """ def _initAttributes(self) -> None: + self._count: Attribute[int] = NotSet self._path: Attribute[str] = NotSet self._title: Attribute[str] = NotSet - self._count: Attribute[int] = NotSet self._uniques: Attribute[int] = NotSet def __repr__(self) -> str: @@ -67,6 +71,10 @@ def __repr__(self) -> str: } ) + @property + def count(self) -> int: + return self._count.value + @property def path(self) -> str: return self._path.value @@ -75,20 +83,16 @@ def path(self) -> str: def title(self) -> str: return self._title.value - @property - def count(self) -> int: - return self._count.value - @property def uniques(self) -> int: return self._uniques.value def _useAttributes(self, attributes: Dict[str, Any]) -> None: + if "count" in attributes: # pragma no branch + self._count = self._makeIntAttribute(attributes["count"]) if "path" in attributes: # pragma no branch self._path = self._makeStringAttribute(attributes["path"]) if "title" in attributes: # pragma no branch self._title = self._makeStringAttribute(attributes["title"]) - if "count" in attributes: # pragma no branch - self._count = self._makeIntAttribute(attributes["count"]) if "uniques" in attributes: # pragma no branch self._uniques = self._makeIntAttribute(attributes["uniques"]) diff --git a/github/Permissions.py b/github/Permissions.py index c8a67f75bf..4abba20551 100644 --- a/github/Permissions.py +++ b/github/Permissions.py @@ -17,6 +17,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -44,6 +45,15 @@ class Permissions(NonCompletableGithubObject): """ This class represents Permissions. + + The OpenAPI schema can be found at + - /components/schemas/collaborator/properties/permissions + - /components/schemas/full-repository/properties/permissions + - /components/schemas/minimal-repository/properties/permissions + - /components/schemas/repo-search-result-item/properties/permissions + - /components/schemas/repository/properties/permissions + - /components/schemas/team/properties/permissions + """ def _initAttributes(self) -> None: diff --git a/github/Plan.py b/github/Plan.py index db60c8ec0a..e1f1a39d9b 100644 --- a/github/Plan.py +++ b/github/Plan.py @@ -17,6 +17,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -44,15 +45,21 @@ class Plan(NonCompletableGithubObject): """ This class represents Plans. + + The OpenAPI schema can be found at + - /components/schemas/organization-full/properties/plan + - /components/schemas/public-user/properties/plan + - /components/schemas/team-organization/properties/plan + """ def _initAttributes(self) -> None: self._collaborators: Attribute[int] = NotSet + self._filled_seats: Attribute[int] = NotSet self._name: Attribute[str] = NotSet self._private_repos: Attribute[int] = NotSet - self._space: Attribute[int] = NotSet - self._filled_seats: Attribute[int] = NotSet self._seats: Attribute[int] = NotSet + self._space: Attribute[int] = NotSet def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) @@ -61,6 +68,10 @@ def __repr__(self) -> str: def collaborators(self) -> int: return self._collaborators.value + @property + def filled_seats(self) -> int: + return self._filled_seats.value + @property def name(self) -> str: return self._name.value @@ -69,28 +80,24 @@ def name(self) -> str: def private_repos(self) -> int: return self._private_repos.value - @property - def space(self) -> int: - return self._space.value - - @property - def filled_seats(self) -> int: - return self._filled_seats.value - @property def seats(self) -> int: return self._seats.value + @property + def space(self) -> int: + return self._space.value + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "collaborators" in attributes: # pragma no branch self._collaborators = self._makeIntAttribute(attributes["collaborators"]) + if "filled_seats" in attributes: # pragma no branch + self._filled_seats = self._makeIntAttribute(attributes["filled_seats"]) if "name" in attributes: # pragma no branch self._name = self._makeStringAttribute(attributes["name"]) if "private_repos" in attributes: # pragma no branch self._private_repos = self._makeIntAttribute(attributes["private_repos"]) - if "space" in attributes: # pragma no branch - self._space = self._makeIntAttribute(attributes["space"]) if "seats" in attributes: # pragma no branch self._seats = self._makeIntAttribute(attributes["seats"]) - if "filled_seats" in attributes: # pragma no branch - self._filled_seats = self._makeIntAttribute(attributes["filled_seats"]) + if "space" in attributes: # pragma no branch + self._space = self._makeIntAttribute(attributes["space"]) diff --git a/github/Project.py b/github/Project.py index 97cb19c7fa..900e76a540 100644 --- a/github/Project.py +++ b/github/Project.py @@ -25,6 +25,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -64,6 +65,9 @@ class Project(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/projects + The OpenAPI schema can be found at + - /components/schemas/project + """ def _initAttributes(self) -> None: @@ -76,7 +80,9 @@ def _initAttributes(self) -> None: self._name: Attribute[str] = NotSet self._node_id: Attribute[str] = NotSet self._number: Attribute[int] = NotSet + self._organization_permission: Attribute[str] = NotSet self._owner_url: Attribute[str] = NotSet + self._private: Attribute[bool] = NotSet self._state: Attribute[str] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet @@ -129,11 +135,21 @@ def number(self) -> int: self._completeIfNotSet(self._number) return self._number.value + @property + def organization_permission(self) -> str: + self._completeIfNotSet(self._organization_permission) + return self._organization_permission.value + @property def owner_url(self) -> str: self._completeIfNotSet(self._owner_url) return self._owner_url.value + @property + def private(self) -> bool: + self._completeIfNotSet(self._private) + return self._private.value + @property def state(self) -> str: self._completeIfNotSet(self._state) @@ -235,8 +251,12 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._node_id = self._makeStringAttribute(attributes["node_id"]) if "number" in attributes: # pragma no branch self._number = self._makeIntAttribute(attributes["number"]) + if "organization_permission" in attributes: # pragma no branch + self._organization_permission = self._makeStringAttribute(attributes["organization_permission"]) if "owner_url" in attributes: # pragma no branch self._owner_url = self._makeStringAttribute(attributes["owner_url"]) + if "private" in attributes: # pragma no branch + self._private = self._makeBoolAttribute(attributes["private"]) if "state" in attributes: # pragma no branch self._state = self._makeStringAttribute(attributes["state"]) if "updated_at" in attributes: # pragma no branch diff --git a/github/ProjectCard.py b/github/ProjectCard.py index 29e94bf1c2..34e2ce94be 100644 --- a/github/ProjectCard.py +++ b/github/ProjectCard.py @@ -24,6 +24,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -69,6 +70,12 @@ class ProjectCard(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/projects#cards + The OpenAPI schema can be found at + - /components/schemas/project-card + - /components/schemas/validation-error + - /components/schemas/validation-error-simple + - /paths/"/projects/columns/{column_id}/cards"/post/responses/503/content/"application/json"/schema + """ def _initAttributes(self) -> None: diff --git a/github/ProjectColumn.py b/github/ProjectColumn.py index c8ac784d6f..ad4cfb4fb9 100644 --- a/github/ProjectColumn.py +++ b/github/ProjectColumn.py @@ -27,6 +27,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -67,6 +68,9 @@ class ProjectColumn(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/projects#columns + The OpenAPI schema can be found at + - /components/schemas/project-column + """ def _initAttributes(self) -> None: diff --git a/github/PublicKey.py b/github/PublicKey.py index 42d1d98a90..8459b3d0d4 100644 --- a/github/PublicKey.py +++ b/github/PublicKey.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -68,15 +69,32 @@ class PublicKey(CompletableGithubObject): or here https://docs.github.com/en/rest/reference/actions#get-a-repository-public-key + The OpenAPI schema can be found at + - /components/schemas/actions-public-key + """ def _initAttributes(self) -> None: - self._key_id: Attribute[str | int] = NotSet + self._created_at: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet self._key: Attribute[str] = NotSet + self._key_id: Attribute[str | int] = NotSet + self._title: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"key_id": self._key_id.value, "key": self._key.value}) + @property + def created_at(self) -> str: + self._completeIfNotSet(self._created_at) + return self._created_at.value + + @property + def id(self) -> int: + self._completeIfNotSet(self._id) + return self._id.value + @property def key(self) -> str: self._completeIfNotSet(self._key) @@ -87,7 +105,24 @@ def key_id(self) -> str | int: self._completeIfNotSet(self._key_id) return self._key_id.value + @property + def title(self) -> str: + self._completeIfNotSet(self._title) + return self._title.value + + @property + def url(self) -> str: + self._completeIfNotSet(self._url) + return self._url.value + + def encrypt(self, unencrypted_value: str) -> str: + return encrypt(self._key.value, unencrypted_value) + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "created_at" in attributes: # pragma no branch + self._created_at = self._makeStringAttribute(attributes["created_at"]) + if "id" in attributes: # pragma no branch + self._id = self._makeIntAttribute(attributes["id"]) if "key" in attributes: # pragma no branch self._key = self._makeStringAttribute(attributes["key"]) if "key_id" in attributes: # pragma no branch @@ -95,6 +130,7 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._key_id = self._makeStringAttribute(attributes["key_id"]) else: self._key_id = self._makeIntAttribute(attributes["key_id"]) - - def encrypt(self, unencrypted_value: str) -> str: - return encrypt(self._key.value, unencrypted_value) + if "title" in attributes: # pragma no branch + self._title = self._makeStringAttribute(attributes["title"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/PullRequest.py b/github/PullRequest.py index f46322f1c8..5bcf95817e 100644 --- a/github/PullRequest.py +++ b/github/PullRequest.py @@ -49,6 +49,10 @@ # Copyright 2024 Evan Fetsko # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Kobbi Gal <85439776+kgal-pan@users.noreply.github.com> # +# Copyright 2025 Bruno Didot # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Ryan Peach # +# Copyright 2025 a-sido # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -104,8 +108,19 @@ from github.PaginatedList import PaginatedList if TYPE_CHECKING: + from github.Commit import Commit + from github.File import File from github.GitRef import GitRef + from github.IssueComment import IssueComment + from github.IssueEvent import IssueEvent + from github.Label import Label + from github.Milestone import Milestone from github.NamedUser import NamedUser + from github.PullRequestComment import PullRequestComment + from github.PullRequestMergeStatus import PullRequestMergeStatus + from github.PullRequestPart import PullRequestPart + from github.PullRequestReview import PullRequestReview + from github.Team import Team class ReviewComment(TypedDict): @@ -125,13 +140,22 @@ class PullRequest(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/pulls + The OpenAPI schema can be found at + - /components/schemas/pull-request + - /components/schemas/pull-request-minimal + - /components/schemas/pull-request-simple + """ def _initAttributes(self) -> None: + self.__links: Attribute[dict[str, Any]] = NotSet + self._active_lock_reason: Attribute[str] = NotSet self._additions: Attribute[int] = NotSet - self._assignee: Attribute[github.NamedUser.NamedUser] = NotSet + self._assignee: Attribute[NamedUser] = NotSet self._assignees: Attribute[list[NamedUser]] = NotSet - self._base: Attribute[github.PullRequestPart.PullRequestPart] = NotSet + self._author_association: Attribute[str] = NotSet + self._auto_merge: Attribute[dict[str, Any]] = NotSet + self._base: Attribute[PullRequestPart] = NotSet self._body: Attribute[str] = NotSet self._changed_files: Attribute[int] = NotSet self._closed_at: Attribute[datetime | None] = NotSet @@ -143,53 +167,76 @@ def _initAttributes(self) -> None: self._deletions: Attribute[int] = NotSet self._diff_url: Attribute[str] = NotSet self._draft: Attribute[bool] = NotSet - self._head: Attribute[github.PullRequestPart.PullRequestPart] = NotSet + self._head: Attribute[PullRequestPart] = NotSet self._html_url: Attribute[str] = NotSet self._id: Attribute[int] = NotSet self._issue_url: Attribute[str] = NotSet - self._labels: Attribute[list[github.Label.Label]] = NotSet + self._labels: Attribute[list[Label]] = NotSet + self._locked: Attribute[bool] = NotSet + self._maintainer_can_modify: Attribute[bool] = NotSet self._merge_commit_sha: Attribute[str] = NotSet self._mergeable: Attribute[bool] = NotSet self._mergeable_state: Attribute[str] = NotSet self._merged: Attribute[bool] = NotSet self._merged_at: Attribute[datetime | None] = NotSet - self._merged_by: Attribute[github.NamedUser.NamedUser] = NotSet - self._milestone: Attribute[github.Milestone.Milestone] = NotSet + self._merged_by: Attribute[NamedUser] = NotSet + self._milestone: Attribute[Milestone] = NotSet + self._node_id: Attribute[str] = NotSet self._number: Attribute[int] = NotSet self._patch_url: Attribute[str] = NotSet self._rebaseable: Attribute[bool] = NotSet self._requested_reviewers: Attribute[list[NamedUser]] = NotSet + self._requested_teams: Attribute[list[Team]] = NotSet self._review_comment_url: Attribute[str] = NotSet self._review_comments: Attribute[int] = NotSet self._review_comments_url: Attribute[str] = NotSet self._state: Attribute[str] = NotSet + self._statuses_url: Attribute[str] = NotSet self._title: Attribute[str] = NotSet self._updated_at: Attribute[datetime | None] = NotSet self._url: Attribute[str] = NotSet - self._user: Attribute[github.NamedUser.NamedUser] = NotSet - self._maintainer_can_modify: Attribute[bool] = NotSet - self._node_id: Attribute[str] = NotSet + self._user: Attribute[NamedUser] = NotSet def __repr__(self) -> str: return self.get__repr__({"number": self._number.value, "title": self._title.value}) + @property + def _links(self) -> dict[str, Any]: + self._completeIfNotSet(self.__links) + return self.__links.value + + @property + def active_lock_reason(self) -> str: + self._completeIfNotSet(self._active_lock_reason) + return self._active_lock_reason.value + @property def additions(self) -> int: self._completeIfNotSet(self._additions) return self._additions.value @property - def assignee(self) -> github.NamedUser.NamedUser: + def assignee(self) -> NamedUser: self._completeIfNotSet(self._assignee) return self._assignee.value @property - def assignees(self) -> list[github.NamedUser.NamedUser]: + def assignees(self) -> list[NamedUser]: self._completeIfNotSet(self._assignees) return self._assignees.value @property - def base(self) -> github.PullRequestPart.PullRequestPart: + def author_association(self) -> str: + self._completeIfNotSet(self._author_association) + return self._author_association.value + + @property + def auto_merge(self) -> dict[str, Any]: + self._completeIfNotSet(self._auto_merge) + return self._auto_merge.value + + @property + def base(self) -> PullRequestPart: self._completeIfNotSet(self._base) return self._base.value @@ -249,7 +296,7 @@ def draft(self) -> bool: return self._draft.value @property - def head(self) -> github.PullRequestPart.PullRequestPart: + def head(self) -> PullRequestPart: self._completeIfNotSet(self._head) return self._head.value @@ -269,10 +316,20 @@ def issue_url(self) -> str: return self._issue_url.value @property - def labels(self) -> list[github.Label.Label]: + def labels(self) -> list[Label]: self._completeIfNotSet(self._labels) return self._labels.value + @property + def locked(self) -> bool: + self._completeIfNotSet(self._locked) + return self._locked.value + + @property + def maintainer_can_modify(self) -> bool: + self._completeIfNotSet(self._maintainer_can_modify) + return self._maintainer_can_modify.value + @property def merge_commit_sha(self) -> str: self._completeIfNotSet(self._merge_commit_sha) @@ -299,15 +356,20 @@ def merged_at(self) -> datetime | None: return self._merged_at.value @property - def merged_by(self) -> github.NamedUser.NamedUser: + def merged_by(self) -> NamedUser: self._completeIfNotSet(self._merged_by) return self._merged_by.value @property - def milestone(self) -> github.Milestone.Milestone: + def milestone(self) -> Milestone: self._completeIfNotSet(self._milestone) return self._milestone.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def number(self) -> int: self._completeIfNotSet(self._number) @@ -323,6 +385,16 @@ def rebaseable(self) -> bool: self._completeIfNotSet(self._rebaseable) return self._rebaseable.value + @property + def requested_reviewers(self) -> list[NamedUser]: + self._completeIfNotSet(self._requested_reviewers) + return self._requested_reviewers.value + + @property + def requested_teams(self) -> list[Team]: + self._completeIfNotSet(self._requested_teams) + return self._requested_teams.value + @property def review_comment_url(self) -> str: self._completeIfNotSet(self._review_comment_url) @@ -343,6 +415,11 @@ def state(self) -> str: self._completeIfNotSet(self._state) return self._state.value + @property + def statuses_url(self) -> str: + self._completeIfNotSet(self._statuses_url) + return self._statuses_url.value + @property def title(self) -> str: self._completeIfNotSet(self._title) @@ -353,16 +430,6 @@ def updated_at(self) -> datetime | None: self._completeIfNotSet(self._updated_at) return self._updated_at.value - @property - def requested_reviewers(self) -> list[github.NamedUser.NamedUser]: - self._completeIfNotSet(self._requested_reviewers) - return self._requested_reviewers.value - - @property - def requested_teams(self) -> list[github.Team.Team]: - self._completeIfNotSet(self._requested_teams) - return self._requested_teams.value - @property def url(self) -> str: self._completeIfNotSet(self._url) @@ -373,16 +440,6 @@ def user(self) -> NamedUser: self._completeIfNotSet(self._user) return self._user.value - @property - def maintainer_can_modify(self) -> bool: - self._completeIfNotSet(self._maintainer_can_modify) - return self._maintainer_can_modify.value - - @property - def node_id(self) -> str: - self._completeIfNotSet(self._node_id) - return self._node_id.value - def as_issue(self) -> Issue: """ :calls: `GET /repos/{owner}/{repo}/issues/{number} `_ @@ -390,9 +447,7 @@ def as_issue(self) -> Issue: headers, data = self._requester.requestJsonAndCheck("GET", self.issue_url) return github.Issue.Issue(self._requester, headers, data, completed=True) - def create_comment( - self, body: str, commit: github.Commit.Commit, path: str, position: int - ) -> github.PullRequestComment.PullRequestComment: + def create_comment(self, body: str, commit: github.Commit.Commit, path: str, position: int) -> PullRequestComment: """ :calls: `POST /repos/{owner}/{repo}/pulls/{number}/comments `_ """ @@ -407,11 +462,11 @@ def create_review_comment( line: Opt[int] = NotSet, side: Opt[str] = NotSet, start_line: Opt[int] = NotSet, - start_side: Opt[int] = NotSet, + start_side: Opt[str] = NotSet, in_reply_to: Opt[int] = NotSet, subject_type: Opt[str] = NotSet, as_suggestion: bool = False, - ) -> github.PullRequestComment.PullRequestComment: + ) -> PullRequestComment: """ :calls: `POST /repos/{owner}/{repo}/pulls/{number}/comments `_ """ @@ -452,7 +507,7 @@ def create_review_comment( headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/comments", input=post_parameters) return github.PullRequestComment.PullRequestComment(self._requester, headers, data, completed=True) - def create_review_comment_reply(self, comment_id: int, body: str) -> github.PullRequestComment.PullRequestComment: + def create_review_comment_reply(self, comment_id: int, body: str) -> PullRequestComment: """ :calls: `POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies `_ """ @@ -466,7 +521,7 @@ def create_review_comment_reply(self, comment_id: int, body: str) -> github.Pull ) return github.PullRequestComment.PullRequestComment(self._requester, headers, data, completed=True) - def create_issue_comment(self, body: str) -> github.IssueComment.IssueComment: + def create_issue_comment(self, body: str) -> IssueComment: """ :calls: `POST /repos/{owner}/{repo}/issues/{number}/comments `_ """ @@ -483,7 +538,7 @@ def create_review( body: Opt[str] = NotSet, event: Opt[str] = NotSet, comments: Opt[list[ReviewComment]] = NotSet, - ) -> github.PullRequestReview.PullRequestReview: + ) -> PullRequestReview: """ :calls: `POST /repos/{owner}/{repo}/pulls/{number}/reviews `_ """ @@ -500,7 +555,7 @@ def create_review( else: post_parameters["comments"] = [] headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/reviews", input=post_parameters) - return github.PullRequestReview.PullRequestReview(self._requester, headers, data, completed=True) + return github.PullRequestReview.PullRequestReview(self._requester, headers, data) def create_review_request( self, @@ -513,6 +568,11 @@ def create_review_request( assert is_optional(reviewers, str) or is_optional_list(reviewers, str), reviewers assert is_optional(team_reviewers, str) or is_optional_list(team_reviewers, str), team_reviewers + if isinstance(reviewers, str): + reviewers = [reviewers] + if isinstance(team_reviewers, str): + team_reviewers = [team_reviewers] + post_parameters = NotSet.remove_unset_items({"reviewers": reviewers, "team_reviewers": team_reviewers}) headers, data = self._requester.requestJsonAndCheck( @@ -530,6 +590,11 @@ def delete_review_request( assert is_optional(reviewers, str) or is_optional_list(reviewers, str), reviewers assert is_optional(team_reviewers, str) or is_optional_list(team_reviewers, str), team_reviewers + if isinstance(reviewers, str): + reviewers = [reviewers] + if isinstance(team_reviewers, str): + team_reviewers = [team_reviewers] + post_parameters = NotSet.remove_unset_items({"reviewers": reviewers, "team_reviewers": team_reviewers}) headers, data = self._requester.requestJsonAndCheck( @@ -559,13 +624,13 @@ def edit( headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def get_comment(self, id: int) -> github.PullRequestComment.PullRequestComment: + def get_comment(self, id: int) -> PullRequestComment: """ :calls: `GET /repos/{owner}/{repo}/pulls/comments/{number} `_ """ return self.get_review_comment(id) - def get_review_comment(self, id: int) -> github.PullRequestComment.PullRequestComment: + def get_review_comment(self, id: int) -> PullRequestComment: """ :calls: `GET /repos/{owner}/{repo}/pulls/comments/{number} `_ """ @@ -578,7 +643,7 @@ def get_comments( sort: Opt[str] = NotSet, direction: Opt[str] = NotSet, since: Opt[datetime] = NotSet, - ) -> PaginatedList[github.PullRequestComment.PullRequestComment]: + ) -> PaginatedList[PullRequestComment]: """ Warning: this only returns review comments. For normal conversation comments, use get_issue_comments. @@ -596,7 +661,7 @@ def get_review_comments( sort: Opt[str] = NotSet, direction: Opt[str] = NotSet, since: Opt[datetime] = NotSet, - ) -> PaginatedList[github.PullRequestComment.PullRequestComment]: + ) -> PaginatedList[PullRequestComment]: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number}/comments `_ :param sort: string 'created' or 'updated' @@ -618,7 +683,7 @@ def get_review_comments( url_parameters, ) - def get_single_review_comments(self, id: int) -> PaginatedList[github.PullRequestComment.PullRequestComment]: + def get_single_review_comments(self, id: int) -> PaginatedList[PullRequestComment]: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number}/review/{id}/comments `_ """ @@ -630,19 +695,19 @@ def get_single_review_comments(self, id: int) -> PaginatedList[github.PullReques None, ) - def get_commits(self) -> PaginatedList[github.Commit.Commit]: + def get_commits(self) -> PaginatedList[Commit]: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number}/commits `_ """ return PaginatedList(github.Commit.Commit, self._requester, f"{self.url}/commits", None) - def get_files(self) -> PaginatedList[github.File.File]: + def get_files(self) -> PaginatedList[File]: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number}/files `_ """ return PaginatedList(github.File.File, self._requester, f"{self.url}/files", None) - def get_issue_comment(self, id: int) -> github.IssueComment.IssueComment: + def get_issue_comment(self, id: int) -> IssueComment: """ :calls: `GET /repos/{owner}/{repo}/issues/comments/{id} `_ """ @@ -650,7 +715,7 @@ def get_issue_comment(self, id: int) -> github.IssueComment.IssueComment: headers, data = self._requester.requestJsonAndCheck("GET", f"{self._parentUrl(self.issue_url)}/comments/{id}") return github.IssueComment.IssueComment(self._requester, headers, data, completed=True) - def get_issue_comments(self) -> PaginatedList[github.IssueComment.IssueComment]: + def get_issue_comments(self) -> PaginatedList[IssueComment]: """ :calls: `GET /repos/{owner}/{repo}/issues/{number}/comments `_ """ @@ -661,7 +726,7 @@ def get_issue_comments(self) -> PaginatedList[github.IssueComment.IssueComment]: None, ) - def get_issue_events(self) -> PaginatedList[github.IssueEvent.IssueEvent]: + def get_issue_events(self) -> PaginatedList[IssueEvent]: """ :calls: `GET /repos/{owner}/{repo}/issues/{issue_number}/events `_ :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.IssueEvent.IssueEvent` @@ -674,7 +739,7 @@ def get_issue_events(self) -> PaginatedList[github.IssueEvent.IssueEvent]: headers={"Accept": Consts.mediaTypeLockReasonPreview}, ) - def get_review(self, id: int) -> github.PullRequestReview.PullRequestReview: + def get_review(self, id: int) -> PullRequestReview: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number}/reviews/{id} `_ :param id: integer @@ -685,9 +750,9 @@ def get_review(self, id: int) -> github.PullRequestReview.PullRequestReview: "GET", f"{self.url}/reviews/{id}", ) - return github.PullRequestReview.PullRequestReview(self._requester, headers, data, completed=True) + return github.PullRequestReview.PullRequestReview(self._requester, headers, data) - def get_reviews(self) -> PaginatedList[github.PullRequestReview.PullRequestReview]: + def get_reviews(self) -> PaginatedList[PullRequestReview]: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number}/reviews `_ :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.PullRequestReview.PullRequestReview` @@ -699,7 +764,7 @@ def get_reviews(self) -> PaginatedList[github.PullRequestReview.PullRequestRevie None, ) - def get_review_requests(self) -> tuple[PaginatedList[NamedUser], PaginatedList[github.Team.Team]]: + def get_review_requests(self) -> tuple[PaginatedList[NamedUser], PaginatedList[Team]]: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number}/requested_reviewers `_ :rtype: tuple of :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` and of :class:`github.PaginatedList.PaginatedList` of :class:`github.Team.Team` @@ -721,7 +786,7 @@ def get_review_requests(self) -> tuple[PaginatedList[NamedUser], PaginatedList[g ), ) - def get_labels(self) -> PaginatedList[github.Label.Label]: + def get_labels(self) -> PaginatedList[Label]: """ :calls: `GET /repos/{owner}/{repo}/issues/{number}/labels `_ """ @@ -855,7 +920,7 @@ def merge( merge_method: Opt[str] = NotSet, sha: Opt[str] = NotSet, delete_branch: bool = False, - ) -> github.PullRequestMergeStatus.PullRequestMergeStatus: + ) -> PullRequestMergeStatus: """ :calls: `PUT /repos/{owner}/{repo}/pulls/{number}/merge `_ """ @@ -870,7 +935,7 @@ def merge( if delete_branch: self.delete_branch() - return github.PullRequestMergeStatus.PullRequestMergeStatus(self._requester, headers, data, completed=True) + return github.PullRequestMergeStatus.PullRequestMergeStatus(self._requester, headers, data) def add_to_assignees(self, *assignees: github.NamedUser.NamedUser | str) -> None: """ @@ -920,7 +985,61 @@ def update_branch(self, expected_head_sha: Opt[str] = NotSet) -> bool: ) return status == 202 + def convert_to_draft( + self, + client_mutation_id: Opt[str] = NotSet, + ) -> dict[str, Any]: + """ + :calls: `POST /graphql `_ to convert pull request to draft + + """ + assert is_optional(client_mutation_id, str), client_mutation_id + + # Define the variables + variables = { + "pullRequestId": self.node_id, + "clientMutationId": client_mutation_id, + } + + # Make the request + _, data = self._requester.graphql_named_mutation( + mutation_name="convertPullRequestToDraft", + mutation_input=NotSet.remove_unset_items(variables), + output_schema="clientMutationId pullRequest { isDraft }", + ) + self._useAttributes({"draft": data["pullRequest"]["isDraft"]}) + return data + + def mark_ready_for_review( + self, + client_mutation_id: Opt[str] = NotSet, + ) -> dict[str, Any]: + """ + :calls: `POST /graphql `_ to mark pull request ready for review + + """ + assert is_optional(client_mutation_id, str), client_mutation_id + + # Define the variables + variables = { + "pullRequestId": self.node_id, + "clientMutationId": client_mutation_id, + } + + # Make the request + _, data = self._requester.graphql_named_mutation( + mutation_name="markPullRequestReadyForReview", + mutation_input=NotSet.remove_unset_items(variables), + output_schema="clientMutationId pullRequest { isDraft }", + ) + self._useAttributes({"draft": data["pullRequest"]["isDraft"]}) + return data + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "_links" in attributes: # pragma no branch + self.__links = self._makeDictAttribute(attributes["_links"]) + if "active_lock_reason" in attributes: # pragma no branch + self._active_lock_reason = self._makeStringAttribute(attributes["active_lock_reason"]) if "additions" in attributes: # pragma no branch self._additions = self._makeIntAttribute(attributes["additions"]) if "assignee" in attributes: # pragma no branch @@ -932,6 +1051,10 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._assignees = self._makeListOfClassesAttribute(github.NamedUser.NamedUser, [attributes["assignee"]]) else: self._assignees = self._makeListOfClassesAttribute(github.NamedUser.NamedUser, []) + if "author_association" in attributes: # pragma no branch + self._author_association = self._makeStringAttribute(attributes["author_association"]) + if "auto_merge" in attributes: # pragma no branch + self._auto_merge = self._makeDictAttribute(attributes["auto_merge"]) if "base" in attributes: # pragma no branch self._base = self._makeClassAttribute(github.PullRequestPart.PullRequestPart, attributes["base"]) if "body" in attributes: # pragma no branch @@ -966,6 +1089,8 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._issue_url = self._makeStringAttribute(attributes["issue_url"]) if "labels" in attributes: # pragma no branch self._labels = self._makeListOfClassesAttribute(github.Label.Label, attributes["labels"]) + if "locked" in attributes: # pragma no branch + self._locked = self._makeBoolAttribute(attributes["locked"]) if "maintainer_can_modify" in attributes: # pragma no branch self._maintainer_can_modify = self._makeBoolAttribute(attributes["maintainer_can_modify"]) if "merge_commit_sha" in attributes: # pragma no branch @@ -982,12 +1107,20 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._merged_by = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["merged_by"]) if "milestone" in attributes: # pragma no branch self._milestone = self._makeClassAttribute(github.Milestone.Milestone, attributes["milestone"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "number" in attributes: # pragma no branch self._number = self._makeIntAttribute(attributes["number"]) if "patch_url" in attributes: # pragma no branch self._patch_url = self._makeStringAttribute(attributes["patch_url"]) if "rebaseable" in attributes: # pragma no branch self._rebaseable = self._makeBoolAttribute(attributes["rebaseable"]) + if "requested_reviewers" in attributes: + self._requested_reviewers = self._makeListOfClassesAttribute( + github.NamedUser.NamedUser, attributes["requested_reviewers"] + ) + if "requested_teams" in attributes: + self._requested_teams = self._makeListOfClassesAttribute(github.Team.Team, attributes["requested_teams"]) if "review_comment_url" in attributes: # pragma no branch self._review_comment_url = self._makeStringAttribute(attributes["review_comment_url"]) if "review_comments" in attributes: # pragma no branch @@ -996,6 +1129,8 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._review_comments_url = self._makeStringAttribute(attributes["review_comments_url"]) if "state" in attributes: # pragma no branch self._state = self._makeStringAttribute(attributes["state"]) + if "statuses_url" in attributes: # pragma no branch + self._statuses_url = self._makeStringAttribute(attributes["statuses_url"]) if "title" in attributes: # pragma no branch self._title = self._makeStringAttribute(attributes["title"]) if "updated_at" in attributes: # pragma no branch @@ -1004,11 +1139,3 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._url = self._makeStringAttribute(attributes["url"]) if "user" in attributes: # pragma no branch self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) - if "requested_reviewers" in attributes: - self._requested_reviewers = self._makeListOfClassesAttribute( - github.NamedUser.NamedUser, attributes["requested_reviewers"] - ) - if "requested_teams" in attributes: - self._requested_teams = self._makeListOfClassesAttribute(github.Team.Team, attributes["requested_teams"]) - if "node_id" in attributes: # pragma no branch - self._node_id = self._makeStringAttribute(attributes["node_id"]) diff --git a/github/PullRequestComment.py b/github/PullRequestComment.py index ac0c22d371..4b90ec7431 100644 --- a/github/PullRequestComment.py +++ b/github/PullRequestComment.py @@ -26,6 +26,7 @@ # Copyright 2024 Den Stroebel # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -65,34 +66,70 @@ class PullRequestComment(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/pulls#review-comments + The OpenAPI schema can be found at + - /components/schemas/pull-request-review-comment + """ def _initAttributes(self) -> None: + self.__links: Attribute[dict[str, Any]] = NotSet + self._author_association: Attribute[str] = NotSet self._body: Attribute[str] = NotSet + self._body_html: Attribute[str] = NotSet + self._body_text: Attribute[str] = NotSet self._commit_id: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet self._diff_hunk: Attribute[str] = NotSet + self._html_url: Attribute[str] = NotSet self._id: Attribute[int] = NotSet self._in_reply_to_id: Attribute[int] = NotSet + self._line: Attribute[int] = NotSet + self._node_id: Attribute[str] = NotSet self._original_commit_id: Attribute[str] = NotSet + self._original_line: Attribute[int] = NotSet self._original_position: Attribute[int] = NotSet + self._original_start_line: Attribute[int] = NotSet self._path: Attribute[str] = NotSet self._position: Attribute[int] = NotSet - self._pull_request_url: Attribute[str] = NotSet self._pull_request_review_id: Attribute[int] = NotSet + self._pull_request_url: Attribute[str] = NotSet + self._reactions: Attribute[dict[str, Any]] = NotSet + self._side: Attribute[str] = NotSet + self._start_line: Attribute[int] = NotSet + self._start_side: Attribute[str] = NotSet + self._subject_type: Attribute[str] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet - self._html_url: Attribute[str] = NotSet self._user: Attribute[github.NamedUser.NamedUser] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "user": self._user.value}) + @property + def _links(self) -> dict[str, Any]: + self._completeIfNotSet(self.__links) + return self.__links.value + + @property + def author_association(self) -> str: + self._completeIfNotSet(self._author_association) + return self._author_association.value + @property def body(self) -> str: self._completeIfNotSet(self._body) return self._body.value + @property + def body_html(self) -> str: + self._completeIfNotSet(self._body_html) + return self._body_html.value + + @property + def body_text(self) -> str: + self._completeIfNotSet(self._body_text) + return self._body_text.value + @property def commit_id(self) -> str: self._completeIfNotSet(self._commit_id) @@ -108,6 +145,11 @@ def diff_hunk(self) -> str: self._completeIfNotSet(self._diff_hunk) return self._diff_hunk.value + @property + def html_url(self) -> str: + self._completeIfNotSet(self._html_url) + return self._html_url.value + @property def id(self) -> int: self._completeIfNotSet(self._id) @@ -118,16 +160,36 @@ def in_reply_to_id(self) -> int: self._completeIfNotSet(self._in_reply_to_id) return self._in_reply_to_id.value + @property + def line(self) -> int: + self._completeIfNotSet(self._line) + return self._line.value + + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def original_commit_id(self) -> str: self._completeIfNotSet(self._original_commit_id) return self._original_commit_id.value + @property + def original_line(self) -> int: + self._completeIfNotSet(self._original_line) + return self._original_line.value + @property def original_position(self) -> int: self._completeIfNotSet(self._original_position) return self._original_position.value + @property + def original_start_line(self) -> int: + self._completeIfNotSet(self._original_start_line) + return self._original_start_line.value + @property def path(self) -> str: self._completeIfNotSet(self._path) @@ -148,6 +210,31 @@ def pull_request_url(self) -> str: self._completeIfNotSet(self._pull_request_url) return self._pull_request_url.value + @property + def reactions(self) -> dict[str, Any]: + self._completeIfNotSet(self._reactions) + return self._reactions.value + + @property + def side(self) -> str: + self._completeIfNotSet(self._side) + return self._side.value + + @property + def start_line(self) -> int: + self._completeIfNotSet(self._start_line) + return self._start_line.value + + @property + def start_side(self) -> str: + self._completeIfNotSet(self._start_side) + return self._start_side.value + + @property + def subject_type(self) -> str: + self._completeIfNotSet(self._subject_type) + return self._subject_type.value + @property def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) @@ -158,11 +245,6 @@ def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - @property - def html_url(self) -> str: - self._completeIfNotSet(self._html_url) - return self._html_url.value - @property def user(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._user) @@ -237,22 +319,40 @@ def delete_reaction(self, reaction_id: int) -> bool: return status == 204 def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "_links" in attributes: # pragma no branch + self.__links = self._makeDictAttribute(attributes["_links"]) + if "author_association" in attributes: # pragma no branch + self._author_association = self._makeStringAttribute(attributes["author_association"]) if "body" in attributes: # pragma no branch self._body = self._makeStringAttribute(attributes["body"]) + if "body_html" in attributes: # pragma no branch + self._body_html = self._makeStringAttribute(attributes["body_html"]) + if "body_text" in attributes: # pragma no branch + self._body_text = self._makeStringAttribute(attributes["body_text"]) if "commit_id" in attributes: # pragma no branch self._commit_id = self._makeStringAttribute(attributes["commit_id"]) if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "diff_hunk" in attributes: # pragma no branch self._diff_hunk = self._makeStringAttribute(attributes["diff_hunk"]) + if "html_url" in attributes: # pragma no branch + self._html_url = self._makeStringAttribute(attributes["html_url"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) if "in_reply_to_id" in attributes: # pragma no branch self._in_reply_to_id = self._makeIntAttribute(attributes["in_reply_to_id"]) + if "line" in attributes: # pragma no branch + self._line = self._makeIntAttribute(attributes["line"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "original_commit_id" in attributes: # pragma no branch self._original_commit_id = self._makeStringAttribute(attributes["original_commit_id"]) + if "original_line" in attributes: # pragma no branch + self._original_line = self._makeIntAttribute(attributes["original_line"]) if "original_position" in attributes: # pragma no branch self._original_position = self._makeIntAttribute(attributes["original_position"]) + if "original_start_line" in attributes: # pragma no branch + self._original_start_line = self._makeIntAttribute(attributes["original_start_line"]) if "path" in attributes: # pragma no branch self._path = self._makeStringAttribute(attributes["path"]) if "position" in attributes: # pragma no branch @@ -261,11 +361,19 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._pull_request_review_id = self._makeIntAttribute(attributes["pull_request_review_id"]) if "pull_request_url" in attributes: # pragma no branch self._pull_request_url = self._makeStringAttribute(attributes["pull_request_url"]) + if "reactions" in attributes: # pragma no branch + self._reactions = self._makeDictAttribute(attributes["reactions"]) + if "side" in attributes: # pragma no branch + self._side = self._makeStringAttribute(attributes["side"]) + if "start_line" in attributes: # pragma no branch + self._start_line = self._makeIntAttribute(attributes["start_line"]) + if "start_side" in attributes: # pragma no branch + self._start_side = self._makeStringAttribute(attributes["start_side"]) + if "subject_type" in attributes: # pragma no branch + self._subject_type = self._makeStringAttribute(attributes["subject_type"]) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) - if "html_url" in attributes: # pragma no branch - self._html_url = self._makeStringAttribute(attributes["html_url"]) if "user" in attributes: # pragma no branch self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) diff --git a/github/PullRequestPart.py b/github/PullRequestPart.py index b18012553e..7cc64bbf18 100644 --- a/github/PullRequestPart.py +++ b/github/PullRequestPart.py @@ -17,6 +17,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -52,6 +53,15 @@ class PullRequestPart(NonCompletableGithubObject): """ This class represents PullRequestParts. + + The OpenAPI schema can be found at + - /components/schemas/pull-request-minimal/properties/base + - /components/schemas/pull-request-minimal/properties/head + - /components/schemas/pull-request-simple/properties/base + - /components/schemas/pull-request-simple/properties/head + - /components/schemas/pull-request/properties/base + - /components/schemas/pull-request/properties/head + """ def _initAttributes(self) -> None: diff --git a/github/PullRequestReview.py b/github/PullRequestReview.py index 5c8c8c2395..0bf5e56650 100644 --- a/github/PullRequestReview.py +++ b/github/PullRequestReview.py @@ -23,6 +23,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -62,26 +63,18 @@ class PullRequestReview(NonCompletableGithubObject): """ def _initAttributes(self) -> None: - self._id: Attribute[int] = NotSet - self._user: Attribute[github.NamedUser.NamedUser] = NotSet self._body: Attribute[str] = NotSet self._commit_id: Attribute[str] = NotSet - self._state: Attribute[str] = NotSet self._html_url: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet self._pull_request_url: Attribute[str] = NotSet + self._state: Attribute[str] = NotSet self._submitted_at: Attribute[datetime] = NotSet + self._user: Attribute[github.NamedUser.NamedUser] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "user": self._user.value}) - @property - def id(self) -> int: - return self._id.value - - @property - def user(self) -> github.NamedUser.NamedUser: - return self._user.value - @property def body(self) -> str: return self._body.value @@ -90,22 +83,30 @@ def body(self) -> str: def commit_id(self) -> str: return self._commit_id.value - @property - def state(self) -> str: - return self._state.value - @property def html_url(self) -> str: return self._html_url.value + @property + def id(self) -> int: + return self._id.value + @property def pull_request_url(self) -> str: return self._pull_request_url.value + @property + def state(self) -> str: + return self._state.value + @property def submitted_at(self) -> datetime: return self._submitted_at.value + @property + def user(self) -> github.NamedUser.NamedUser: + return self._user.value + def dismiss(self, message: str) -> None: """ :calls: `PUT /repos/{owner}/{repo}/pulls/{number}/reviews/{review_id}/dismissals `_ @@ -141,19 +142,19 @@ def edit(self, body: str) -> None: self._useAttributes(data) def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "id" in attributes: # pragma no branch - self._id = self._makeIntAttribute(attributes["id"]) - if "user" in attributes: # pragma no branch - self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) if "body" in attributes: # pragma no branch self._body = self._makeStringAttribute(attributes["body"]) if "commit_id" in attributes: # pragma no branch self._commit_id = self._makeStringAttribute(attributes["commit_id"]) - if "state" in attributes: # pragma no branch - self._state = self._makeStringAttribute(attributes["state"]) if "html_url" in attributes: # pragma no branch self._html_url = self._makeStringAttribute(attributes["html_url"]) + if "id" in attributes: # pragma no branch + self._id = self._makeIntAttribute(attributes["id"]) if "pull_request_url" in attributes: # pragma no branch self._pull_request_url = self._makeStringAttribute(attributes["pull_request_url"]) + if "state" in attributes: # pragma no branch + self._state = self._makeStringAttribute(attributes["state"]) if "submitted_at" in attributes: # pragma no branch self._submitted_at = self._makeDatetimeAttribute(attributes["submitted_at"]) + if "user" in attributes: # pragma no branch + self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) diff --git a/github/Rate.py b/github/Rate.py index b0fb6ffdc7..6f634350bf 100644 --- a/github/Rate.py +++ b/github/Rate.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -51,6 +52,9 @@ class Rate(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/rate-limit + The OpenAPI schema can be found at + - /components/schemas/rate-limit + """ def _initAttributes(self) -> None: diff --git a/github/RateLimit.py b/github/RateLimit.py index cf290b626b..434562c0f8 100644 --- a/github/RateLimit.py +++ b/github/RateLimit.py @@ -16,8 +16,10 @@ # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2023 Trim21 # +# Copyright 2024 Bill Napier # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -55,16 +57,47 @@ class RateLimit(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/rate-limit + The OpenAPI schema can be found at + - /components/schemas/rate-limit-overview/properties/resources + """ def _initAttributes(self) -> None: + self._actions_runner_registration: Attribute[Rate] = NotSet + self._code_scanning_upload: Attribute[Rate] = NotSet + self._code_search: Attribute[Rate] = NotSet self._core: Attribute[Rate] = NotSet - self._search: Attribute[Rate] = NotSet + self._dependency_snapshots: Attribute[Rate] = NotSet self._graphql: Attribute[Rate] = NotSet + self._integration_manifest: Attribute[Rate] = NotSet + self._scim: Attribute[Rate] = NotSet + self._search: Attribute[Rate] = NotSet + self._source_import: Attribute[Rate] = NotSet def __repr__(self) -> str: return self.get__repr__({"core": self._core.value}) + @property + def actions_runner_registration(self) -> Rate: + """ + Rate limit for registering self-hosted runners in GitHub Actions. + """ + return self._actions_runner_registration.value + + @property + def code_scanning_upload(self) -> Rate: + """ + Rate limit for uploading SARIF results to code scanning. + """ + return self._code_scanning_upload.value + + @property + def code_search(self) -> Rate: + """ + Rate limit for the REST API for searching code. + """ + return self._code_search.value + @property def core(self) -> Rate: """ @@ -73,11 +106,11 @@ def core(self) -> Rate: return self._core.value @property - def search(self) -> Rate: + def dependency_snapshots(self) -> Rate: """ - Rate limit for the Search API. + Rate limit for submitting snapshots to the dependency graph. """ - return self._search.value + return self._dependency_snapshots.value @property def graphql(self) -> Rate: @@ -86,10 +119,48 @@ def graphql(self) -> Rate: """ return self._graphql.value + @property + def integration_manifest(self) -> Rate: + """ + Rate limit for POST /app-manifests/{code}/conversions operation. + """ + return self._integration_manifest.value + + @property + def scim(self) -> github.Rate.Rate: + return self._scim.value + + @property + def search(self) -> Rate: + """ + Rate limit for the Search API. + """ + return self._search.value + + @property + def source_import(self) -> github.Rate.Rate: + return self._source_import.value + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "actions_runner_registration" in attributes: # pragma no branch + self._actions_runner_registration = self._makeClassAttribute( + github.Rate.Rate, attributes["actions_runner_registration"] + ) + if "code_scanning_upload" in attributes: # pragma no branch + self._code_scanning_upload = self._makeClassAttribute(github.Rate.Rate, attributes["code_scanning_upload"]) + if "code_search" in attributes: # pragma no branch + self._code_search = self._makeClassAttribute(github.Rate.Rate, attributes["code_search"]) if "core" in attributes: # pragma no branch self._core = self._makeClassAttribute(github.Rate.Rate, attributes["core"]) - if "search" in attributes: # pragma no branch - self._search = self._makeClassAttribute(github.Rate.Rate, attributes["search"]) + if "dependency_snapshots" in attributes: # pragma no branch + self._dependency_snapshots = self._makeClassAttribute(github.Rate.Rate, attributes["dependency_snapshots"]) if "graphql" in attributes: # pragma no branch self._graphql = self._makeClassAttribute(github.Rate.Rate, attributes["graphql"]) + if "integration_manifest" in attributes: # pragma no branch + self._integration_manifest = self._makeClassAttribute(github.Rate.Rate, attributes["integration_manifest"]) + if "scim" in attributes: # pragma no branch + self._scim = self._makeClassAttribute(github.Rate.Rate, attributes["scim"]) + if "search" in attributes: # pragma no branch + self._search = self._makeClassAttribute(github.Rate.Rate, attributes["search"]) + if "source_import" in attributes: # pragma no branch + self._source_import = self._makeClassAttribute(github.Rate.Rate, attributes["source_import"]) diff --git a/github/Referrer.py b/github/Referrer.py index 3c90f2d0ef..268c32f3bb 100644 --- a/github/Referrer.py +++ b/github/Referrer.py @@ -18,6 +18,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -49,11 +50,14 @@ class Referrer(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#traffic + The OpenAPI schema can be found at + - /components/schemas/referrer-traffic + """ def _initAttributes(self) -> None: - self._referrer: Attribute[str] = NotSet self._count: Attribute[int] = NotSet + self._referrer: Attribute[str] = NotSet self._uniques: Attribute[int] = NotSet def __repr__(self) -> str: @@ -65,22 +69,22 @@ def __repr__(self) -> str: } ) - @property - def referrer(self) -> str: - return self._referrer.value - @property def count(self) -> int: return self._count.value + @property + def referrer(self) -> str: + return self._referrer.value + @property def uniques(self) -> int: return self._uniques.value def _useAttributes(self, attributes: Dict[str, Any]) -> None: - if "referrer" in attributes: # pragma no branch - self._referrer = self._makeStringAttribute(attributes["referrer"]) if "count" in attributes: # pragma no branch self._count = self._makeIntAttribute(attributes["count"]) + if "referrer" in attributes: # pragma no branch + self._referrer = self._makeStringAttribute(attributes["referrer"]) if "uniques" in attributes: # pragma no branch self._uniques = self._makeIntAttribute(attributes["uniques"]) diff --git a/github/RepoCodeSecurityConfig.py b/github/RepoCodeSecurityConfig.py new file mode 100644 index 0000000000..29c1c7e1cb --- /dev/null +++ b/github/RepoCodeSecurityConfig.py @@ -0,0 +1,87 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Justin Kufro # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # +# Copyright 2024 Enrico Minack # +# Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Bill Napier # +# Copyright 2025 Enrico Minack # +# # +# 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 . # +# # +################################################################################ + +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + +import github.CodeSecurityConfig +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + +if TYPE_CHECKING: + pass + + +class RepoCodeSecurityConfig(NonCompletableGithubObject): + """ + This class represents Configurations for Code Security for a Repository. + + The reference can be found here + https://docs.github.com/en/rest/code-security/configurations. + + """ + + def _initAttributes(self) -> None: + self._configuration: Attribute[github.CodeSecurityConfig.CodeSecurityConfig] = NotSet + self._status: Attribute[str] = NotSet + + def __repr__(self) -> str: + return self.get__repr__( + { + "configuration": self.configuration, + } + ) + + @property + def configuration(self) -> github.CodeSecurityConfig.CodeSecurityConfig: + return self._configuration.value + + @property + def status(self) -> str: + return self._status.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "configuration" in attributes: # pragma no branch + self._configuration = self._makeClassAttribute( + github.CodeSecurityConfig.CodeSecurityConfig, attributes["configuration"] + ) + if "status" in attributes: # pragma no branch + self._status = self._makeStringAttribute(attributes["status"]) diff --git a/github/Repository.py b/github/Repository.py index b82572be50..66d0afc9c7 100644 --- a/github/Repository.py +++ b/github/Repository.py @@ -130,10 +130,15 @@ # Copyright 2024 Heitor de Bittencourt # # Copyright 2024 Jacky Lam # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2024 Sebastien NICOT # # Copyright 2024 Sebastián Ramírez # # Copyright 2024 Thomas Cooper # # Copyright 2024 Thomas Crowley <15927917+thomascrowley@users.noreply.github.com># # Copyright 2024 jodelasur <34933233+jodelasur@users.noreply.github.com> # +# Copyright 2025 Bill Napier # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Mikhail f. Shiryaev # +# Copyright 2025 Tan An Nie <121005973+tanannie22@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -202,6 +207,7 @@ import github.IssueEvent import github.Label import github.License +import github.MergedUpstream import github.Milestone import github.NamedUser import github.Notification @@ -214,6 +220,7 @@ import github.PullRequest import github.PullRequestComment import github.Referrer +import github.RepoCodeSecurityConfig import github.RepositoryAdvisory import github.RepositoryDiscussion import github.RepositoryKey @@ -265,7 +272,9 @@ from github.DependabotAlert import DependabotAlert from github.Deployment import Deployment from github.Download import Download - from github.EnvironmentDeploymentBranchPolicy import EnvironmentDeploymentBranchPolicyParams + from github.EnvironmentDeploymentBranchPolicy import ( + EnvironmentDeploymentBranchPolicyParams, + ) from github.EnvironmentProtectionRuleReviewer import ReviewerParams from github.Event import Event from github.GitBlob import GitBlob @@ -284,6 +293,7 @@ from github.IssueEvent import IssueEvent from github.Label import Label from github.License import License + from github.MergedUpstream import MergedUpstream from github.Milestone import Milestone from github.NamedUser import NamedUser from github.Notification import Notification @@ -295,6 +305,7 @@ from github.PullRequest import PullRequest from github.PullRequestComment import PullRequestComment from github.Referrer import Referrer + from github.RepoCodeSecurityConfig import RepoCodeSecurityConfig from github.RepositoryDiscussion import RepositoryDiscussion from github.RepositoryKey import RepositoryKey from github.RepositoryPreferences import RepositoryPreferences @@ -321,11 +332,132 @@ class Repository(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos + The OpenAPI schema can be found at + - /components/schemas/event/properties/repo + - /components/schemas/full-repository + - /components/schemas/minimal-repository + - /components/schemas/nullable-repository + - /components/schemas/pull-request-minimal/properties/base/properties/repo + - /components/schemas/pull-request-minimal/properties/head/properties/repo + - /components/schemas/repository + - /components/schemas/simple-repository + """ + def _initAttributes(self) -> None: + self._allow_auto_merge: Attribute[bool] = NotSet + self._allow_forking: Attribute[bool] = NotSet + self._allow_merge_commit: Attribute[bool] = NotSet + self._allow_rebase_merge: Attribute[bool] = NotSet + self._allow_squash_merge: Attribute[bool] = NotSet + self._allow_update_branch: Attribute[bool] = NotSet + self._anonymous_access_enabled: Attribute[bool] = NotSet + self._archive_url: Attribute[str] = NotSet + self._archived: Attribute[bool] = NotSet + self._assignees_url: Attribute[str] = NotSet + self._blobs_url: Attribute[str] = NotSet + self._branches_url: Attribute[str] = NotSet + self._clone_url: Attribute[str] = NotSet + self._code_of_conduct: Attribute[dict[str, Any]] = NotSet + self._collaborators_url: Attribute[str] = NotSet + self._comments_url: Attribute[str] = NotSet + self._commits_url: Attribute[str] = NotSet + self._compare_url: Attribute[str] = NotSet + self._contents_url: Attribute[str] = NotSet + self._contributors_url: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._custom_properties: Attribute[dict[str, None | str | list]] = NotSet # type: ignore + self._default_branch: Attribute[str] = NotSet + self._delete_branch_on_merge: Attribute[bool] = NotSet + self._deployments_url: Attribute[str] = NotSet + self._description: Attribute[str] = NotSet + self._disabled: Attribute[bool] = NotSet + self._downloads_url: Attribute[str] = NotSet + self._events_url: Attribute[str] = NotSet + self._fork: Attribute[bool] = NotSet + self._forks: Attribute[int] = NotSet + self._forks_count: Attribute[int] = NotSet + self._forks_url: Attribute[str] = NotSet + self._full_name: Attribute[str] = NotSet + self._git_commits_url: Attribute[str] = NotSet + self._git_refs_url: Attribute[str] = NotSet + self._git_tags_url: Attribute[str] = NotSet + self._git_url: Attribute[str] = NotSet + self._has_discussions: Attribute[bool] = NotSet + self._has_downloads: Attribute[bool] = NotSet + self._has_issues: Attribute[bool] = NotSet + self._has_pages: Attribute[bool] = NotSet + self._has_projects: Attribute[bool] = NotSet + self._has_wiki: Attribute[bool] = NotSet + self._homepage: Attribute[str] = NotSet + self._hooks_url: Attribute[str] = NotSet + self._html_url: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet + self._is_template: Attribute[bool] = NotSet + self._issue_comment_url: Attribute[str] = NotSet + self._issue_events_url: Attribute[str] = NotSet + self._issues_url: Attribute[str] = NotSet + self._keys_url: Attribute[str] = NotSet + self._labels_url: Attribute[str] = NotSet + self._language: Attribute[str] = NotSet + self._languages_url: Attribute[str] = NotSet + self._license: Attribute[License] = NotSet + self._master_branch: Attribute[str] = NotSet + self._merge_commit_message: Attribute[str] = NotSet + self._merge_commit_title: Attribute[str] = NotSet + self._merges_url: Attribute[str] = NotSet + self._milestones_url: Attribute[str] = NotSet + self._mirror_url: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + self._network_count: Attribute[int] = NotSet + self._node_id: Attribute[str] = NotSet + self._notifications_url: Attribute[str] = NotSet + self._open_issues: Attribute[int] = NotSet + self._open_issues_count: Attribute[int] = NotSet + self._organization: Attribute[Organization] = NotSet + self._owner: Attribute[NamedUser] = NotSet + self._parent: Attribute[Repository] = NotSet + self._permissions: Attribute[Permissions] = NotSet + self._private: Attribute[bool] = NotSet + self._pulls_url: Attribute[str] = NotSet + self._pushed_at: Attribute[datetime] = NotSet + self._releases_url: Attribute[str] = NotSet + self._role_name: Attribute[str] = NotSet + self._security_and_analysis: Attribute[SecurityAndAnalysis] = NotSet + self._size: Attribute[int] = NotSet + self._source: Attribute[Repository] = NotSet + self._squash_merge_commit_message: Attribute[str] = NotSet + self._squash_merge_commit_title: Attribute[str] = NotSet + self._ssh_url: Attribute[str] = NotSet + self._stargazers_count: Attribute[int] = NotSet + self._stargazers_url: Attribute[str] = NotSet + self._starred_at: Attribute[str] = NotSet + self._statuses_url: Attribute[str] = NotSet + self._subscribers_count: Attribute[int] = NotSet + self._subscribers_url: Attribute[str] = NotSet + self._subscription_url: Attribute[str] = NotSet + self._svn_url: Attribute[str] = NotSet + self._tags_url: Attribute[str] = NotSet + self._teams_url: Attribute[str] = NotSet + self._temp_clone_token: Attribute[str] = NotSet + self._template_repository: Attribute[Repository] = NotSet + self._topics: Attribute[list[str]] = NotSet + self._trees_url: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._url: Attribute[str] = NotSet + self._use_squash_pr_title_as_default: Attribute[bool] = NotSet + self._visibility: Attribute[str] = NotSet + self._watchers: Attribute[int] = NotSet + self._watchers_count: Attribute[int] = NotSet + self._web_commit_signoff_required: Attribute[bool] = NotSet + def __repr__(self) -> str: return self.get__repr__({"full_name": self._full_name.value}) + @property + def _identity(self) -> str: + return f"{self.owner.login}/{self.name}" + @property def allow_auto_merge(self) -> bool: """ @@ -375,12 +507,9 @@ def allow_update_branch(self) -> bool: return self._allow_update_branch.value @property - def archived(self) -> bool: - """ - :type: bool - """ - self._completeIfNotSet(self._archived) - return self._archived.value + def anonymous_access_enabled(self) -> bool: + self._completeIfNotSet(self._anonymous_access_enabled) + return self._anonymous_access_enabled.value @property def archive_url(self) -> str: @@ -390,6 +519,14 @@ def archive_url(self) -> str: self._completeIfNotSet(self._archive_url) return self._archive_url.value + @property + def archived(self) -> bool: + """ + :type: bool + """ + self._completeIfNotSet(self._archived) + return self._archived.value + @property def assignees_url(self) -> str: """ @@ -422,6 +559,11 @@ def clone_url(self) -> str: self._completeIfNotSet(self._clone_url) return self._clone_url.value + @property + def code_of_conduct(self) -> dict[str, Any]: + self._completeIfNotSet(self._code_of_conduct) + return self._code_of_conduct.value + @property def collaborators_url(self) -> str: """ @@ -518,6 +660,11 @@ def description(self) -> str: self._completeIfNotSet(self._description) return self._description.value + @property + def disabled(self) -> bool: + self._completeIfNotSet(self._disabled) + return self._disabled.value + @property def downloads_url(self) -> str: """ @@ -606,6 +753,14 @@ def git_url(self) -> str: self._completeIfNotSet(self._git_url) return self._git_url.value + @property + def has_discussions(self) -> bool: + """ + :type: bool + """ + self._completeIfNotSet(self._has_discussions) + return self._has_discussions.value + @property def has_downloads(self) -> bool: """ @@ -646,14 +801,6 @@ def has_wiki(self) -> bool: self._completeIfNotSet(self._has_wiki) return self._has_wiki.value - @property - def has_discussions(self) -> bool: - """ - :type: bool - """ - self._completeIfNotSet(self._has_discussions) - return self._has_discussions.value - @property def homepage(self) -> str: """ @@ -816,6 +963,11 @@ def network_count(self) -> int: self._completeIfNotSet(self._network_count) return self._network_count.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def notifications_url(self) -> str: """ @@ -904,6 +1056,11 @@ def releases_url(self) -> str: self._completeIfNotSet(self._releases_url) return self._releases_url.value + @property + def role_name(self) -> str: + self._completeIfNotSet(self._role_name) + return self._role_name.value + @property def security_and_analysis(self) -> SecurityAndAnalysis: """ @@ -968,6 +1125,11 @@ def stargazers_url(self) -> str: self._completeIfNotSet(self._stargazers_url) return self._stargazers_url.value + @property + def starred_at(self) -> str: + self._completeIfNotSet(self._starred_at) + return self._starred_at.value + @property def statuses_url(self) -> str: """ @@ -976,14 +1138,6 @@ def statuses_url(self) -> str: self._completeIfNotSet(self._statuses_url) return self._statuses_url.value - @property - def subscribers_url(self) -> str: - """ - :type: string - """ - self._completeIfNotSet(self._subscribers_url) - return self._subscribers_url.value - @property def subscribers_count(self) -> int: """ @@ -992,6 +1146,14 @@ def subscribers_count(self) -> int: self._completeIfNotSet(self._subscribers_count) return self._subscribers_count.value + @property + def subscribers_url(self) -> str: + """ + :type: string + """ + self._completeIfNotSet(self._subscribers_url) + return self._subscribers_url.value + @property def subscription_url(self) -> str: """ @@ -1024,6 +1186,16 @@ def teams_url(self) -> str: self._completeIfNotSet(self._teams_url) return self._teams_url.value + @property + def temp_clone_token(self) -> str: + self._completeIfNotSet(self._temp_clone_token) + return self._temp_clone_token.value + + @property + def template_repository(self) -> github.Repository.Repository: + self._completeIfNotSet(self._template_repository) + return self._template_repository.value + @property def topics(self) -> list[str]: """ @@ -1188,7 +1360,7 @@ def create_autolink( headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/autolinks", input=post_parameters) - return github.Autolink.Autolink(self._requester, headers, data, completed=True) + return github.Autolink.Autolink(self._requester, headers, data) def create_git_blob(self, content: str, encoding: str) -> GitBlob: """ @@ -1269,6 +1441,7 @@ def create_git_tag_and_release( draft: bool = False, prerelease: bool = False, generate_release_notes: bool = False, + make_latest: str = "true", ) -> GitRelease: """ Convenience function that calls :meth:`Repository.create_git_tag` and :meth:`Repository.create_git_release`. @@ -1283,6 +1456,7 @@ def create_git_tag_and_release( :param draft: bool :param prerelease: bool :param generate_release_notes: bool + :param make_latest: string :rtype: :class:`github.GitRelease.GitRelease` """ @@ -1295,6 +1469,7 @@ def create_git_tag_and_release( prerelease, generate_release_notes, target_commitish=object, + make_latest=make_latest, ) def create_git_release( @@ -1306,6 +1481,7 @@ def create_git_release( prerelease: bool = False, generate_release_notes: bool = False, target_commitish: Opt[str] = NotSet, + make_latest: str = "true", ) -> GitRelease: """ :calls: `POST /repos/{owner}/{repo}/releases `_ @@ -1316,6 +1492,7 @@ def create_git_release( :param prerelease: bool :param generate_release_notes: bool :param target_commitish: string or :class:`github.Branch.Branch` or :class:`github.Commit.Commit` or :class:`github.GitCommit.GitCommit` + :param make_latest: string :rtype: :class:`github.GitRelease.GitRelease` """ assert isinstance(tag, str), tag @@ -1334,6 +1511,7 @@ def create_git_release( "prerelease": prerelease, "generate_release_notes": generate_release_notes, } + assert make_latest in ["true", "false", "legacy"], make_latest if is_defined(name): post_parameters["name"] = name if is_defined(message): @@ -1344,6 +1522,8 @@ def create_git_release( post_parameters["target_commitish"] = target_commitish.name elif isinstance(target_commitish, (github.Commit.Commit, github.GitCommit.GitCommit)): post_parameters["target_commitish"] = target_commitish.sha + if is_defined(make_latest): + post_parameters["make_latest"] = make_latest headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/releases", input=post_parameters) return github.GitRelease.GitRelease(self._requester, headers, data, completed=True) @@ -1723,7 +1903,7 @@ def __create_repository_advisory( headers, data = self._requester.requestJsonAndCheck( "POST", f"{self.url}/security-advisories", input=post_parameters ) - return github.RepositoryAdvisory.RepositoryAdvisory(self._requester, headers, data, completed=True) + return github.RepositoryAdvisory.RepositoryAdvisory(self._requester, headers, data) def create_repository_dispatch(self, event_type: str, client_payload: Opt[dict[str, Any]] = NotSet) -> bool: """ @@ -2054,7 +2234,7 @@ def get_branch(self, branch: str) -> Branch: assert isinstance(branch, str), branch branch = urllib.parse.quote(branch) headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/branches/{branch}") - return github.Branch.Branch(self._requester, headers, data, completed=True) + return github.Branch.Branch(self._requester, headers, data) def rename_branch(self, branch: str | Branch, new_name: str) -> bool: """ @@ -2210,12 +2390,9 @@ def get_contents(self, path: str, ref: Opt[str] = NotSet) -> list[ContentFile] | "GET", f"{self.url}/contents/{urllib.parse.quote(path)}", parameters=url_parameters, + follow_302_redirect=True, ) - # Handle 302 redirect response - if headers.get("status") == "302 Found" and headers.get("location"): - headers, data = self._requester.requestJsonAndCheck("GET", headers["location"], parameters=url_parameters) - if isinstance(data, list): return [ # Lazy completion only makes sense for files. See discussion @@ -2416,7 +2593,7 @@ def get_top_referrers(self) -> None | list[Referrer]: """ headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/traffic/popular/referrers") if isinstance(data, list): - return [github.Referrer.Referrer(self._requester, headers, item, completed=True) for item in data] + return [github.Referrer.Referrer(self._requester, headers, item) for item in data] def get_top_paths(self) -> None | list[Path]: """ @@ -2425,12 +2602,13 @@ def get_top_paths(self) -> None | list[Path]: """ headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/traffic/popular/paths") if isinstance(data, list): - return [github.Path.Path(self._requester, headers, item, completed=True) for item in data] + return [github.Path.Path(self._requester, headers, item) for item in data] - def get_views_traffic(self, per: Opt[str] = NotSet) -> None | dict[str, int | list[View]]: + def get_views_traffic(self, per: Opt[str] = NotSet) -> View | None: """ :calls: `GET /repos/{owner}/{repo}/traffic/views `_ :param per: string, must be one of day or week, day by default + :rtype: None or list of :class:`github.View.View` """ assert per in ["day", "week", NotSet], "per must be day or week, day by default" url_parameters = dict() @@ -2439,11 +2617,9 @@ def get_views_traffic(self, per: Opt[str] = NotSet) -> None | dict[str, int | li headers, data = self._requester.requestJsonAndCheck( "GET", f"{self.url}/traffic/views", parameters=url_parameters ) - if (isinstance(data, dict)) and ("views" in data) and (isinstance(data["views"], list)): - data["views"] = [github.View.View(self._requester, headers, item, completed=True) for item in data["views"]] - return data + return github.View.View(self._requester, headers, data) - def get_clones_traffic(self, per: Opt[str] = NotSet) -> dict[str, int | list[Clones]] | None: + def get_clones_traffic(self, per: Opt[str] = NotSet) -> Clones | None: """ :calls: `GET /repos/{owner}/{repo}/traffic/clones `_ :param per: string, must be one of day or week, day by default @@ -2454,11 +2630,7 @@ def get_clones_traffic(self, per: Opt[str] = NotSet) -> dict[str, int | list[Clo headers, data = self._requester.requestJsonAndCheck( "GET", f"{self.url}/traffic/clones", parameters=url_parameters ) - if (isinstance(data, dict)) and ("clones" in data) and (isinstance(data["clones"], list)): - data["clones"] = [ - github.Clones.Clones(self._requester, headers, item, completed=True) for item in data["clones"] - ] - return data + return github.Clones.Clones(self._requester, headers, data) def get_projects(self, state: Opt[str] = NotSet) -> PaginatedList[Project]: """ @@ -2563,9 +2735,10 @@ def get_repository_advisory(self, ghsa: str) -> github.RepositoryAdvisory.Reposi :param ghsa: string :rtype: :class:`github.RepositoryAdvisory.RepositoryAdvisory` """ + assert isinstance(ghsa, str), ghsa ghsa = urllib.parse.quote(ghsa) headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/security-advisories/{ghsa}") - return github.RepositoryAdvisory.RepositoryAdvisory(self._requester, headers, data, completed=True) + return github.RepositoryAdvisory.RepositoryAdvisory(self._requester, headers, data) def update_file( self, @@ -2887,7 +3060,7 @@ def get_hook_delivery(self, hook_id: int, delivery_id: int) -> github.HookDelive headers, data = self._requester.requestJsonAndCheck( "GET", f"{self.url}/hooks/{hook_id}/deliveries/{delivery_id}" ) - return github.HookDelivery.HookDelivery(self._requester, headers, data, completed=True) + return github.HookDelivery.HookDelivery(self._requester, headers, data) def get_hook_deliveries(self, hook_id: int) -> PaginatedList[github.HookDelivery.HookDeliverySummary]: """ @@ -3272,7 +3445,7 @@ def get_self_hosted_runner(self, runner_id: int) -> SelfHostedActionsRunner: """ assert isinstance(runner_id, int), runner_id headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/actions/runners/{runner_id}") - return github.SelfHostedActionsRunner.SelfHostedActionsRunner(self._requester, headers, data, completed=True) + return github.SelfHostedActionsRunner.SelfHostedActionsRunner(self._requester, headers, data) def get_self_hosted_runners(self) -> PaginatedList[SelfHostedActionsRunner]: """ @@ -3332,8 +3505,7 @@ def get_stats_contributors(self) -> list[StatsContributor] | None: return None else: return [ - github.StatsContributor.StatsContributor(self._requester, headers, attributes, completed=True) - for attributes in data + github.StatsContributor.StatsContributor(self._requester, headers, attributes) for attributes in data ] def get_stats_commit_activity(self) -> list[StatsCommitActivity] | None: @@ -3346,7 +3518,7 @@ def get_stats_commit_activity(self) -> list[StatsCommitActivity] | None: return None else: return [ - github.StatsCommitActivity.StatsCommitActivity(self._requester, headers, attributes, completed=True) + github.StatsCommitActivity.StatsCommitActivity(self._requester, headers, attributes) for attributes in data ] @@ -3360,7 +3532,7 @@ def get_stats_code_frequency(self) -> list[StatsCodeFrequency] | None: return None else: return [ - github.StatsCodeFrequency.StatsCodeFrequency(self._requester, headers, attributes, completed=True) + github.StatsCodeFrequency.StatsCodeFrequency(self._requester, headers, attributes) for attributes in data ] @@ -3373,7 +3545,7 @@ def get_stats_participation(self) -> StatsParticipation | None: if not data: return None else: - return github.StatsParticipation.StatsParticipation(self._requester, headers, data, completed=True) + return github.StatsParticipation.StatsParticipation(self._requester, headers, data) def get_stats_punch_card(self) -> StatsPunchCard | None: """ @@ -3384,7 +3556,7 @@ def get_stats_punch_card(self) -> StatsPunchCard | None: if not data: return None else: - return github.StatsPunchCard.StatsPunchCard(self._requester, headers, data, completed=True) + return github.StatsPunchCard.StatsPunchCard(self._requester, headers, data) def get_subscribers(self) -> PaginatedList[NamedUser]: """ @@ -3413,6 +3585,7 @@ def get_release(self, id: int | str) -> GitRelease: :param id: int (release id), str (tag name) :rtype: None or :class:`github.GitRelease.GitRelease` """ + assert isinstance(id, (int, str)), id if isinstance(id, int): headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/releases/{id}") return github.GitRelease.GitRelease(self._requester, headers, data, completed=True) @@ -3472,7 +3645,6 @@ def get_workflow(self, id_or_file_name: str | int) -> Workflow: """ :calls: `GET /repos/{owner}/{repo}/actions/workflows/{workflow_id} `_ :param id_or_file_name: int or string. Can be either a workflow ID or a filename. - :rtype: :class:`github.Workflow.Workflow` """ assert isinstance(id_or_file_name, (int, str)), id_or_file_name @@ -3549,7 +3721,6 @@ def get_workflow_run(self, id_: int) -> WorkflowRun: """ :calls: `GET /repos/{owner}/{repo}/actions/runs/{run_id} `_ :param id_: int - :rtype: :class:`github.WorkflowRun.WorkflowRun` """ assert isinstance(id_, int) @@ -3694,6 +3865,18 @@ def merge(self, base: str, head: str, commit_message: Opt[str] = NotSet) -> Comm else: return github.Commit.Commit(self._requester, headers, data, completed=True) + def merge_upstream(self, branch: str) -> MergedUpstream: + """ + :calls: `POST /repos/{owner}/{repo}/merge-upstream `_ + :param branch: string + :rtype: :class:`github.MergedUpstream.MergedUpstream` + :raises: :class:`GithubException` for error status codes + """ + assert isinstance(branch, str), branch + post_parameters = {"branch": branch} + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/merge-upstream", input=post_parameters) + return github.MergedUpstream.MergedUpstream(self._requester, headers, data) + def replace_topics(self, topics: list[str]) -> None: """ :calls: `PUT /repos/{owner}/{repo}/topics `_ @@ -3860,7 +4043,7 @@ def get_check_suite(self, check_suite_id: int) -> CheckSuite: f"{self.url}/check-suites/{check_suite_id}", headers=requestHeaders, ) - return github.CheckSuite.CheckSuite(self._requester, headers, data, completed=True) + return github.CheckSuite.CheckSuite(self._requester, headers, data) def update_check_suites_preferences( self, auto_trigger_checks: list[dict[str, bool | int]] @@ -3876,7 +4059,7 @@ def update_check_suites_preferences( f"{self.url}/check-suites/preferences", input={"auto_trigger_checks": auto_trigger_checks}, ) - return github.RepositoryPreferences.RepositoryPreferences(self._requester, headers, data, completed=True) + return github.RepositoryPreferences.RepositoryPreferences(self._requester, headers, data) def _hub(self, mode: str, event: str, callback: str, secret: Opt[str]) -> None: assert isinstance(mode, str), mode @@ -3894,13 +4077,8 @@ def _hub(self, mode: str, event: str, callback: str, secret: Opt[str]) -> None: headers, output = self._requester.requestMultipartAndCheck("POST", "/hub", input=post_parameters) - @property - def _identity(self) -> str: - return f"{self.owner.login}/{self.name}" - def get_release_asset(self, id: int) -> GitReleaseAsset: assert isinstance(id, (int)), id - resp_headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/releases/assets/{id}") return github.GitReleaseAsset.GitReleaseAsset(self._requester, resp_headers, data, completed=True) @@ -4004,8 +4182,7 @@ def get_artifact(self, artifact_id: int) -> 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) + return github.Artifact.Artifact(self._requester, headers, data) def get_codescan_alerts(self) -> PaginatedList[CodeScanAlert]: """ @@ -4161,7 +4338,7 @@ def get_dependabot_alert(self, number: int) -> DependabotAlert: """ assert isinstance(number, int), number headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/dependabot/alerts/{number}") - return github.DependabotAlert.DependabotAlert(self._requester, headers, data, completed=True) + return github.DependabotAlert.DependabotAlert(self._requester, headers, data) def update_dependabot_alert( self, number: int, state: str, dismissed_reason: Opt[str] = NotSet, dismissed_comment: Opt[str] = NotSet @@ -4194,7 +4371,7 @@ def update_dependabot_alert( {"state": state, "dismissed_reason": dismissed_reason, "dismissed_comment": dismissed_comment} ), ) - return github.DependabotAlert.DependabotAlert(self._requester, headers, data, completed=True) + return github.DependabotAlert.DependabotAlert(self._requester, headers, data) def get_custom_properties(self) -> dict[str, None | str | list]: """ @@ -4219,104 +4396,48 @@ def update_custom_properties(self, properties: dict[str, None | str | list]) -> } self._requester.requestJsonAndCheck("PATCH", url, input=patch_parameters) - def _initAttributes(self) -> None: - self._allow_auto_merge: Attribute[bool] = NotSet - self._allow_forking: Attribute[bool] = NotSet - self._allow_merge_commit: Attribute[bool] = NotSet - self._allow_rebase_merge: Attribute[bool] = NotSet - self._allow_squash_merge: Attribute[bool] = NotSet - self._allow_update_branch: Attribute[bool] = NotSet - self._archived: Attribute[bool] = NotSet - self._archive_url: Attribute[str] = NotSet - self._assignees_url: Attribute[str] = NotSet - self._blobs_url: Attribute[str] = NotSet - self._branches_url: Attribute[str] = NotSet - self._clone_url: Attribute[str] = NotSet - self._collaborators_url: Attribute[str] = NotSet - self._comments_url: Attribute[str] = NotSet - self._commits_url: Attribute[str] = NotSet - self._compare_url: Attribute[str] = NotSet - self._contents_url: Attribute[str] = NotSet - self._contributors_url: Attribute[str] = NotSet - self._created_at: Attribute[datetime] = NotSet - self._custom_properties: Attribute[dict[str, None | str | list]] = NotSet # type: ignore - self._default_branch: Attribute[str] = NotSet - self._delete_branch_on_merge: Attribute[bool] = NotSet - self._deployments_url: Attribute[str] = NotSet - self._description: Attribute[str] = NotSet - self._downloads_url: Attribute[str] = NotSet - self._events_url: Attribute[str] = NotSet - self._fork: Attribute[bool] = NotSet - self._forks: Attribute[int] = NotSet - self._forks_count: Attribute[int] = NotSet - self._forks_url: Attribute[str] = NotSet - self._full_name: Attribute[str] = NotSet - self._git_commits_url: Attribute[str] = NotSet - self._git_refs_url: Attribute[str] = NotSet - self._git_tags_url: Attribute[str] = NotSet - self._git_url: Attribute[str] = NotSet - self._has_downloads: Attribute[bool] = NotSet - self._has_issues: Attribute[bool] = NotSet - self._has_pages: Attribute[bool] = NotSet - self._has_projects: Attribute[bool] = NotSet - self._has_wiki: Attribute[bool] = NotSet - self._has_discussions: Attribute[bool] = NotSet - self._homepage: Attribute[str] = NotSet - self._hooks_url: Attribute[str] = NotSet - self._html_url: Attribute[str] = NotSet - self._id: Attribute[int] = NotSet - self._is_template: Attribute[bool] = NotSet - self._issue_comment_url: Attribute[str] = NotSet - self._issue_events_url: Attribute[str] = NotSet - self._issues_url: Attribute[str] = NotSet - self._keys_url: Attribute[str] = NotSet - self._labels_url: Attribute[str] = NotSet - self._language: Attribute[str] = NotSet - self._languages_url: Attribute[str] = NotSet - self._license: Attribute[License] = NotSet - self._master_branch: Attribute[str] = NotSet - self._merge_commit_message: Attribute[str] = NotSet - self._merge_commit_title: Attribute[str] = NotSet - self._merges_url: Attribute[str] = NotSet - self._milestones_url: Attribute[str] = NotSet - self._mirror_url: Attribute[str] = NotSet - self._name: Attribute[str] = NotSet - self._network_count: Attribute[int] = NotSet - self._notifications_url: Attribute[str] = NotSet - self._open_issues: Attribute[int] = NotSet - self._open_issues_count: Attribute[int] = NotSet - self._organization: Attribute[Organization] = NotSet - self._owner: Attribute[NamedUser] = NotSet - self._parent: Attribute[Repository] = NotSet - self._permissions: Attribute[Permissions] = NotSet - self._private: Attribute[bool] = NotSet - self._pulls_url: Attribute[str] = NotSet - self._pushed_at: Attribute[datetime] = NotSet - self._releases_url: Attribute[str] = NotSet - self._security_and_analysis: Attribute[SecurityAndAnalysis] = NotSet - self._size: Attribute[int] = NotSet - self._source: Attribute[Repository] = NotSet - self._squash_merge_commit_message: Attribute[str] = NotSet - self._squash_merge_commit_title: Attribute[str] = NotSet - self._ssh_url: Attribute[str] = NotSet - self._stargazers_count: Attribute[int] = NotSet - self._stargazers_url: Attribute[str] = NotSet - self._statuses_url: Attribute[str] = NotSet - self._subscribers_url: Attribute[str] = NotSet - self._subscribers_count: Attribute[int] = NotSet - self._subscription_url: Attribute[str] = NotSet - self._svn_url: Attribute[str] = NotSet - self._tags_url: Attribute[str] = NotSet - self._teams_url: Attribute[str] = NotSet - self._topics: Attribute[list[str]] = NotSet - self._trees_url: Attribute[str] = NotSet - self._updated_at: Attribute[datetime] = NotSet - self._url: Attribute[str] = NotSet - self._use_squash_pr_title_as_default: Attribute[bool] = NotSet - self._visibility: Attribute[str] = NotSet - self._watchers: Attribute[int] = NotSet - self._watchers_count: Attribute[int] = NotSet - self._web_commit_signoff_required: Attribute[bool] = NotSet + def attach_security_config(self, id: int) -> None: + """ + :calls: `POST /orgs/{org}/code-security/configurations/{configuration_id}/attach `_ + """ + self.organization.attach_security_config_to_repositories( + id=id, scope="selected", selected_repository_ids=[self.id] + ) + + def detach_security_config(self) -> None: + """ + :calls: `DELETE /orgs/{org}/code-security/configurations/detach `_ + """ + self.organization.detach_security_config_from_repositories(selected_repository_ids=[self.id]) + + def get_security_config(self) -> RepoCodeSecurityConfig | None: + """ + :calls: `GET /repos/{owner}/{repo}/code-security-configuration `_ + :rtype: RepoCodeSecurityConfig | None + """ + #### TODO(napier): this is actually a special type not CodeSecurityConfig + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/code-security-configuration") + if data is None: + return None + return github.RepoCodeSecurityConfig.RepoCodeSecurityConfig(self._requester, headers, data) + + def transfer_ownership(self, new_owner: str, new_name: Opt[str] = NotSet, teams: Opt[list[int]] = NotSet) -> bool: + """ + :calls: `POST /repos/{owner}/{repo}/transfer `_ + :param new_owner: string + :param new_name: Optional string + :param teams: Optional list of int + :rtype: bool + """ + assert isinstance(new_owner, str), new_owner + assert is_optional(new_name, str), new_name + assert is_optional_list(teams, int), teams + + post_parameters = NotSet.remove_unset_items({"new_owner": new_owner, "new_name": new_name, "team_ids": teams}) + + _, _ = self._requester.requestJsonAndCheck("POST", f"{self.url}/transfer", input=post_parameters) + + return True def _useAttributes(self, attributes: dict[str, Any]) -> None: if "allow_auto_merge" in attributes: # pragma no branch @@ -4331,10 +4452,12 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._allow_squash_merge = self._makeBoolAttribute(attributes["allow_squash_merge"]) if "allow_update_branch" in attributes: # pragma no branch self._allow_update_branch = self._makeBoolAttribute(attributes["allow_update_branch"]) - if "archived" in attributes: # pragma no branch - self._archived = self._makeBoolAttribute(attributes["archived"]) + if "anonymous_access_enabled" in attributes: # pragma no branch + self._anonymous_access_enabled = self._makeBoolAttribute(attributes["anonymous_access_enabled"]) if "archive_url" in attributes: # pragma no branch self._archive_url = self._makeStringAttribute(attributes["archive_url"]) + if "archived" in attributes: # pragma no branch + self._archived = self._makeBoolAttribute(attributes["archived"]) if "assignees_url" in attributes: # pragma no branch self._assignees_url = self._makeStringAttribute(attributes["assignees_url"]) if "blobs_url" in attributes: # pragma no branch @@ -4343,6 +4466,8 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._branches_url = self._makeStringAttribute(attributes["branches_url"]) if "clone_url" in attributes: # pragma no branch self._clone_url = self._makeStringAttribute(attributes["clone_url"]) + if "code_of_conduct" in attributes: # pragma no branch + self._code_of_conduct = self._makeDictAttribute(attributes["code_of_conduct"]) if "collaborators_url" in attributes: # pragma no branch self._collaborators_url = self._makeStringAttribute(attributes["collaborators_url"]) if "comments_url" in attributes: # pragma no branch @@ -4367,6 +4492,8 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._deployments_url = self._makeStringAttribute(attributes["deployments_url"]) if "description" in attributes: # pragma no branch self._description = self._makeStringAttribute(attributes["description"]) + if "disabled" in attributes: # pragma no branch + self._disabled = self._makeBoolAttribute(attributes["disabled"]) if "downloads_url" in attributes: # pragma no branch self._downloads_url = self._makeStringAttribute(attributes["downloads_url"]) if "events_url" in attributes: # pragma no branch @@ -4389,6 +4516,8 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._git_tags_url = self._makeStringAttribute(attributes["git_tags_url"]) if "git_url" in attributes: # pragma no branch self._git_url = self._makeStringAttribute(attributes["git_url"]) + if "has_discussions" in attributes: # pragma no branch + self._has_discussions = self._makeBoolAttribute(attributes["has_discussions"]) if "has_downloads" in attributes: # pragma no branch self._has_downloads = self._makeBoolAttribute(attributes["has_downloads"]) if "has_issues" in attributes: # pragma no branch @@ -4399,8 +4528,6 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._has_projects = self._makeBoolAttribute(attributes["has_projects"]) if "has_wiki" in attributes: # pragma no branch self._has_wiki = self._makeBoolAttribute(attributes["has_wiki"]) - if "has_discussions" in attributes: # pragma no branch - self._has_discussions = self._makeBoolAttribute(attributes["has_discussions"]) if "homepage" in attributes: # pragma no branch self._homepage = self._makeStringAttribute(attributes["homepage"]) if "hooks_url" in attributes: # pragma no branch @@ -4429,12 +4556,12 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._license = self._makeClassAttribute(github.License.License, attributes["license"]) if "master_branch" in attributes: # pragma no branch self._master_branch = self._makeStringAttribute(attributes["master_branch"]) - if "merges_url" in attributes: # pragma no branch - self._merges_url = self._makeStringAttribute(attributes["merges_url"]) if "merge_commit_message" in attributes: # pragma no branch self._merge_commit_message = self._makeStringAttribute(attributes["merge_commit_message"]) if "merge_commit_title" in attributes: # pragma no branch self._merge_commit_title = self._makeStringAttribute(attributes["merge_commit_title"]) + if "merges_url" in attributes: # pragma no branch + self._merges_url = self._makeStringAttribute(attributes["merges_url"]) if "milestones_url" in attributes: # pragma no branch self._milestones_url = self._makeStringAttribute(attributes["milestones_url"]) if "mirror_url" in attributes: # pragma no branch @@ -4443,6 +4570,8 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._name = self._makeStringAttribute(attributes["name"]) if "network_count" in attributes: # pragma no branch self._network_count = self._makeIntAttribute(attributes["network_count"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "notifications_url" in attributes: # pragma no branch self._notifications_url = self._makeStringAttribute(attributes["notifications_url"]) if "open_issues" in attributes: # pragma no branch @@ -4465,6 +4594,8 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._pushed_at = self._makeDatetimeAttribute(attributes["pushed_at"]) if "releases_url" in attributes: # pragma no branch self._releases_url = self._makeStringAttribute(attributes["releases_url"]) + if "role_name" in attributes: # pragma no branch + self._role_name = self._makeStringAttribute(attributes["role_name"]) if "security_and_analysis" in attributes: # pragma no branch self._security_and_analysis = self._makeClassAttribute( github.SecurityAndAnalysis.SecurityAndAnalysis, attributes["security_and_analysis"] @@ -4483,12 +4614,14 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._stargazers_count = self._makeIntAttribute(attributes["stargazers_count"]) if "stargazers_url" in attributes: # pragma no branch self._stargazers_url = self._makeStringAttribute(attributes["stargazers_url"]) + if "starred_at" in attributes: # pragma no branch + self._starred_at = self._makeStringAttribute(attributes["starred_at"]) if "statuses_url" in attributes: # pragma no branch self._statuses_url = self._makeStringAttribute(attributes["statuses_url"]) - if "subscribers_url" in attributes: # pragma no branch - self._subscribers_url = self._makeStringAttribute(attributes["subscribers_url"]) if "subscribers_count" in attributes: # pragma no branch self._subscribers_count = self._makeIntAttribute(attributes["subscribers_count"]) + if "subscribers_url" in attributes: # pragma no branch + self._subscribers_url = self._makeStringAttribute(attributes["subscribers_url"]) if "subscription_url" in attributes: # pragma no branch self._subscription_url = self._makeStringAttribute(attributes["subscription_url"]) if "svn_url" in attributes: # pragma no branch @@ -4497,10 +4630,16 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._tags_url = self._makeStringAttribute(attributes["tags_url"]) if "teams_url" in attributes: # pragma no branch self._teams_url = self._makeStringAttribute(attributes["teams_url"]) - if "trees_url" in attributes: # pragma no branch - self._trees_url = self._makeStringAttribute(attributes["trees_url"]) + if "temp_clone_token" in attributes: # pragma no branch + self._temp_clone_token = self._makeStringAttribute(attributes["temp_clone_token"]) + if "template_repository" in attributes: # pragma no branch + self._template_repository = self._makeClassAttribute( + github.Repository.Repository, attributes["template_repository"] + ) if "topics" in attributes: # pragma no branch self._topics = self._makeListOfStringsAttribute(attributes["topics"]) + if "trees_url" in attributes: # pragma no branch + self._trees_url = self._makeStringAttribute(attributes["trees_url"]) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch diff --git a/github/RepositoryAdvisory.py b/github/RepositoryAdvisory.py index dec60429e6..4b98e3753b 100644 --- a/github/RepositoryAdvisory.py +++ b/github/RepositoryAdvisory.py @@ -8,6 +8,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Thomas Cooper # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -32,16 +33,22 @@ from datetime import datetime from typing import TYPE_CHECKING, Any, Iterable +import github.AdvisoryCredit +import github.AdvisoryCreditDetailed import github.AdvisoryVulnerability import github.NamedUser +import github.Repository +import github.Team from github.AdvisoryBase import AdvisoryBase -from github.AdvisoryCredit import AdvisoryCredit, Credit -from github.AdvisoryCreditDetailed import AdvisoryCreditDetailed from github.GithubObject import Attribute, NotSet, Opt if TYPE_CHECKING: + from github.AdvisoryCredit import AdvisoryCredit, Credit + from github.AdvisoryCreditDetailed import AdvisoryCreditDetailed from github.AdvisoryVulnerability import AdvisoryVulnerability, AdvisoryVulnerabilityInput from github.NamedUser import NamedUser + from github.Repository import Repository + from github.Team import Team class RepositoryAdvisory(AdvisoryBase): @@ -51,16 +58,25 @@ class RepositoryAdvisory(AdvisoryBase): The reference can be found here https://docs.github.com/en/rest/security-advisories/repository-advisories + The OpenAPI schema can be found at + - /components/schemas/repository-advisory + """ def _initAttributes(self) -> None: + super()._initAttributes() self._author: Attribute[NamedUser] = NotSet self._closed_at: Attribute[datetime] = NotSet + self._collaborating_teams: Attribute[list[Team]] = NotSet + self._collaborating_users: Attribute[list[NamedUser]] = NotSet self._created_at: Attribute[datetime] = NotSet self._credits: Attribute[list[AdvisoryCredit]] = NotSet self._credits_detailed: Attribute[list[AdvisoryCreditDetailed]] = NotSet self._cwe_ids: Attribute[list[str]] = NotSet + self._private_fork: Attribute[Repository] = NotSet + self._publisher: Attribute[NamedUser] = NotSet self._state: Attribute[str] = NotSet + self._submission: Attribute[dict[str, Any]] = NotSet self._vulnerabilities: Attribute[list[AdvisoryVulnerability]] = NotSet super()._initAttributes() @@ -72,6 +88,14 @@ def author(self) -> NamedUser: def closed_at(self) -> datetime: return self._closed_at.value + @property + def collaborating_teams(self) -> list[Team]: + return self._collaborating_teams.value + + @property + def collaborating_users(self) -> list[NamedUser]: + return self._collaborating_users.value + @property def created_at(self) -> datetime: return self._created_at.value @@ -92,10 +116,22 @@ def credits_detailed( def cwe_ids(self) -> list[str]: return self._cwe_ids.value + @property + def private_fork(self) -> Repository: + return self._private_fork.value + + @property + def publisher(self) -> NamedUser: + return self._publisher.value + @property def state(self) -> str: return self._state.value + @property + def submission(self) -> dict[str, Any]: + return self._submission.value + @property def vulnerabilities(self) -> list[AdvisoryVulnerability]: return self._vulnerabilities.value @@ -174,10 +210,13 @@ def offer_credits( """ assert isinstance(credited, Iterable), credited for credit in credited: - AdvisoryCredit._validate_credit(credit) + github.AdvisoryCredit.AdvisoryCredit._validate_credit(credit) patch_parameters = { - "credits": [AdvisoryCredit._to_github_dict(credit) for credit in (self.credits + list(credited))] + "credits": [ + github.AdvisoryCredit.AdvisoryCredit._to_github_dict(credit) + for credit in (self.credits + list(credited)) + ] } headers, data = self._requester.requestJsonAndCheck( "PATCH", @@ -344,6 +383,14 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: if "closed_at" in attributes: # pragma no branch assert attributes["closed_at"] is None or isinstance(attributes["closed_at"], str), attributes["closed_at"] self._closed_at = self._makeDatetimeAttribute(attributes["closed_at"]) + if "collaborating_teams" in attributes: # pragma no branch + self._collaborating_teams = self._makeListOfClassesAttribute( + github.Team.Team, attributes["collaborating_teams"] + ) + if "collaborating_users" in attributes: # pragma no branch + self._collaborating_users = self._makeListOfClassesAttribute( + github.NamedUser.NamedUser, attributes["collaborating_users"] + ) if "created_at" in attributes: # pragma no branch assert attributes["created_at"] is None or isinstance(attributes["created_at"], str), attributes[ "created_at" @@ -351,18 +398,24 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "credits" in attributes: # pragma no branch self._credits = self._makeListOfClassesAttribute( - AdvisoryCredit, + github.AdvisoryCredit.AdvisoryCredit, attributes["credits"], ) if "credits_detailed" in attributes: # pragma no branch self._credits_detailed = self._makeListOfClassesAttribute( - AdvisoryCreditDetailed, + github.AdvisoryCreditDetailed.AdvisoryCreditDetailed, attributes["credits_detailed"], ) if "cwe_ids" in attributes: # pragma no branch self._cwe_ids = self._makeListOfStringsAttribute(attributes["cwe_ids"]) + if "private_fork" in attributes: # pragma no branch + self._private_fork = self._makeClassAttribute(github.Repository.Repository, attributes["private_fork"]) + if "publisher" in attributes: # pragma no branch + self._publisher = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["publisher"]) if "state" in attributes: # pragma no branch self._state = self._makeStringAttribute(attributes["state"]) + if "submission" in attributes: # pragma no branch + self._submission = self._makeDictAttribute(attributes["submission"]) if "vulnerabilities" in attributes: self._vulnerabilities = self._makeListOfClassesAttribute( github.AdvisoryVulnerability.AdvisoryVulnerability, diff --git a/github/RepositoryDiscussionCategory.py b/github/RepositoryDiscussionCategory.py index 06532e907a..0a83213403 100644 --- a/github/RepositoryDiscussionCategory.py +++ b/github/RepositoryDiscussionCategory.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -91,10 +92,6 @@ def emoji_html(self) -> str: def id(self) -> str: return self._id.value - @property - def node_id(self) -> str: - return self.id - @property def is_answerable(self) -> bool: return self._is_answerable.value @@ -103,6 +100,10 @@ def is_answerable(self) -> bool: def name(self) -> str: return self._name.value + @property + def node_id(self) -> str: + return self.id + @property def repository(self) -> Repository: return self._repository.value diff --git a/github/RepositoryKey.py b/github/RepositoryKey.py index 58e67d8747..84dec926b3 100644 --- a/github/RepositoryKey.py +++ b/github/RepositoryKey.py @@ -25,6 +25,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Ramiro Morales # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -44,8 +45,10 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime -from typing import Any, Dict +from typing import Any from github.GithubObject import Attribute, CompletableGithubObject, NotSet @@ -57,6 +60,9 @@ class RepositoryKey(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#deploy-keys + The OpenAPI schema can be found at + - /components/schemas/deploy-key + """ def _initAttributes(self) -> None: @@ -65,10 +71,10 @@ def _initAttributes(self) -> None: self._id: Attribute[int] = NotSet self._key: Attribute[str] = NotSet self._last_used: Attribute[datetime] = NotSet + self._read_only: Attribute[bool] = NotSet self._title: Attribute[str] = NotSet self._url: Attribute[str] = NotSet self._verified: Attribute[bool] = NotSet - self._read_only: Attribute[bool] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "title": self._title.value}) @@ -98,6 +104,11 @@ def last_used(self) -> datetime: self._completeIfNotSet(self._last_used) return self._last_used.value + @property + def read_only(self) -> bool: + self._completeIfNotSet(self._read_only) + return self._read_only.value + @property def title(self) -> str: self._completeIfNotSet(self._title) @@ -113,18 +124,13 @@ def verified(self) -> bool: self._completeIfNotSet(self._verified) return self._verified.value - @property - def read_only(self) -> bool: - self._completeIfNotSet(self._read_only) - return self._read_only.value - def delete(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/keys/{id} `_ """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) - def _useAttributes(self, attributes: Dict[str, Any]) -> None: + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "added_by" in attributes: # pragma no branch self._added_by = self._makeStringAttribute(attributes["added_by"]) if "created_at" in attributes: # pragma no branch @@ -136,11 +142,11 @@ def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "last_used" in attributes: # pragma no branch assert attributes["last_used"] is None or isinstance(attributes["last_used"], str), attributes["last_used"] self._last_used = self._makeDatetimeAttribute(attributes["last_used"]) + if "read_only" in attributes: # pragma no branch + self._read_only = self._makeBoolAttribute(attributes["read_only"]) if "title" in attributes: # pragma no branch self._title = self._makeStringAttribute(attributes["title"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) if "verified" in attributes: # pragma no branch self._verified = self._makeBoolAttribute(attributes["verified"]) - if "read_only" in attributes: # pragma no branch - self._read_only = self._makeBoolAttribute(attributes["read_only"]) diff --git a/github/RepositoryPreferences.py b/github/RepositoryPreferences.py index 5dbf5b1c8a..426329abdf 100644 --- a/github/RepositoryPreferences.py +++ b/github/RepositoryPreferences.py @@ -18,6 +18,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -55,6 +56,9 @@ class RepositoryPreferences(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/free-pro-team@latest/rest/reference/checks#update-repository-preferences-for-check-suites + The OpenAPI schema can be found at + - /components/schemas/check-suite-preference + """ def _initAttributes(self) -> None: diff --git a/github/Requester.py b/github/Requester.py index 2763cc283a..b3e5eb554c 100644 --- a/github/Requester.py +++ b/github/Requester.py @@ -57,6 +57,9 @@ # Copyright 2024 Jonathan Kliem # # Copyright 2024 Kobbi Gal <85439776+kgal-pan@users.noreply.github.com> # # Copyright 2024 Min RK # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Neel Malik <41765022+neel-m@users.noreply.github.com> # +# Copyright 2025 Timothy Klopotoski # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -98,6 +101,7 @@ Dict, Generic, ItemsView, + Iterator, List, Optional, Tuple, @@ -133,13 +137,19 @@ class RequestsResponse: def __init__(self, r: requests.Response): self.status = r.status_code self.headers = r.headers - self.text = r.text + self.response = r def getheaders(self) -> ItemsView[str, str]: return self.headers.items() def read(self) -> str: - return self.text + return self.response.text + + def iter_content(self, chunk_size: Union[int, None] = 1) -> Iterator: + return self.response.iter_content(chunk_size=chunk_size) + + def raise_for_status(self) -> None: + self.response.raise_for_status() class HTTPSRequestsConnectionClass: @@ -190,11 +200,13 @@ def request( url: str, input: Optional[Union[str, io.BufferedReader]], headers: Dict[str, str], + stream: bool = False, ) -> None: self.verb = verb self.url = url self.input = input self.headers = headers + self.stream = stream def getresponse(self) -> RequestsResponse: verb = getattr(self.session, self.verb.lower()) @@ -253,11 +265,12 @@ def __init__( ) self.session.mount("http://", self.adapter) - def request(self, verb: str, url: str, input: None, headers: Dict[str, str]) -> None: + def request(self, verb: str, url: str, input: None, headers: Dict[str, str], stream: bool = False) -> None: self.verb = verb self.url = url self.input = input self.headers = headers + self.stream = stream def getresponse(self) -> RequestsResponse: verb = getattr(self.session, self.verb.lower()) @@ -395,6 +408,7 @@ def __init__( pool_size: Optional[int], seconds_between_requests: Optional[float] = None, seconds_between_writes: Optional[float] = None, + lazy: bool = False, ): self._initializeDebugFeature() @@ -436,6 +450,7 @@ def __init__( ) self.__userAgent = user_agent self.__verify = verify + self.__lazy = lazy self.__installation_authorization = None @@ -526,6 +541,7 @@ def kwargs(self) -> Dict[str, Any]: pool_size=self.__pool_size, seconds_between_requests=self.__seconds_between_requests, seconds_between_writes=self.__seconds_between_writes, + lazy=self.__lazy, ) @property @@ -559,13 +575,34 @@ def withAuth(self, auth: Optional["Auth"]) -> "Requester": Create a new requester instance with identical configuration but the given authentication method. :param auth: authentication method - :return: new Requester implementation + :return: new Requester instance """ kwargs = self.kwargs kwargs.update(auth=auth) return Requester(**kwargs) + @property + def is_lazy(self) -> bool: + return self.__lazy + + @property + def is_not_lazy(self) -> bool: + return not self.__lazy + + def withLazy(self, lazy: bool) -> "Requester": + """ + Create a new requester instance with identical configuration but the given lazy setting. + + :param lazy: completable objects created from this instance are lazy, as well as completable objects created + from those, and so on + :return: new Requester instance + + """ + kwargs = self.kwargs + kwargs.update(lazy=lazy) + return Requester(**kwargs) + def requestJsonAndCheck( self, verb: str, @@ -573,6 +610,7 @@ def requestJsonAndCheck( parameters: Optional[Dict[str, Any]] = None, headers: Optional[Dict[str, str]] = None, input: Optional[Any] = None, + follow_302_redirect: bool = False, ) -> Tuple[Dict[str, Any], Any]: """ Send a request with JSON body. @@ -583,7 +621,17 @@ def requestJsonAndCheck( :raises: :class:`GithubException` for error status codes """ - return self.__check(*self.requestJson(verb, url, parameters, headers, input, self.__customConnection(url))) + return self.__check( + *self.requestJson( + verb, + url, + parameters, + headers, + input, + self.__customConnection(url), + follow_302_redirect=follow_302_redirect, + ) + ) def requestMultipartAndCheck( self, @@ -652,7 +700,7 @@ def data_as_class( data = data[item] if klass.is_rest(): data = as_rest_api_attributes(data) - return klass(self, headers, data, completed=False) + return klass(self, headers, data) def graphql_node(self, node_id: str, graphql_schema: str, node_type: str) -> Tuple[Dict[str, Any], Dict[str, Any]]: """ @@ -780,21 +828,26 @@ def createException( headers: Dict[str, Any], output: Dict[str, Any], ) -> GithubException.GithubException: - message = output.get("message", "").lower() if output is not None else "" + message = output.get("message") if output else None + lc_message = message.lower() if message else "" + msg = None exc = GithubException.GithubException - if status == 401 and message == "bad credentials": + if status == 401 and lc_message == "bad credentials": exc = GithubException.BadCredentialsException elif status == 401 and Consts.headerOTP in headers and re.match(r".*required.*", headers[Consts.headerOTP]): exc = GithubException.TwoFactorException - elif status == 403 and message.startswith("missing or invalid user agent string"): + elif status == 403 and lc_message.startswith("missing or invalid user agent string"): exc = GithubException.BadUserAgentException - elif status == 403 and cls.isRateLimitError(message): + elif status == 403 and cls.isRateLimitError(lc_message): exc = GithubException.RateLimitExceededException - elif status == 404 and message == "not found": + elif status == 404 and (lc_message == "not found" or "no object found" in lc_message): exc = GithubException.UnknownObjectException + else: + # for general GithubException, provide the actual message + msg = message - return exc(status, output, headers) + return exc(status, output, headers, msg) @classmethod def isRateLimitError(cls, message: str) -> bool: @@ -833,6 +886,55 @@ def __structuredFromJson(self, data: str) -> Any: raise return {"data": data} + def getFile( + self, + url: str, + path: str, + parameters: Optional[Dict[str, Any]] = None, + headers: Optional[Dict[str, str]] = None, + cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None, + chunk_size: Optional[Union[int, None]] = 1, + ) -> None: + """ + GET a file from the server and save it to the given path, which includes the filename. + """ + _, _, stream_chunk_iterator = self.getStream(url, parameters, headers, cnx, chunk_size=chunk_size) + with open(path, "wb") as f: + for chunk in stream_chunk_iterator: + if chunk: + f.write(chunk) + + def getStream( + self, + url: str, + parameters: Optional[Dict[str, Any]] = None, + headers: Optional[Dict[str, str]] = None, + cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None, + chunk_size: Optional[Union[int, None]] = 1, + ) -> Tuple[int, Dict[str, Any], Iterator]: + """ + GET a stream from the server. + + :returns:``(status, headers, stream_chunk_iterator)`` + + """ + if headers is None: + headers = {} + headers["Accept"] = "application/octet-stream" + + def encode(_: Any) -> Tuple[str, str]: + return "", "" + + status, responseHeaders, output = self.__requestEncode( + cnx, "GET", url, parameters, headers, None, encode, stream=True, follow_302_redirect=True + ) + if isinstance(output, RequestsResponse) or ( + hasattr(output, "iter_content") and hasattr(output, "raise_for_status") + ): + output.raise_for_status() + return status, responseHeaders, output.iter_content(chunk_size=chunk_size) + raise TypeError(f"Expected a RequestsResponse object: {type(output)}") + def requestJson( self, verb: str, @@ -841,6 +943,7 @@ def requestJson( headers: Optional[Dict[str, Any]] = None, input: Optional[Any] = None, cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None, + follow_302_redirect: bool = False, ) -> Tuple[int, Dict[str, Any], str]: """ Send a request with JSON input. @@ -853,7 +956,12 @@ def requestJson( def encode(input: Any) -> Tuple[str, str]: return "application/json", json.dumps(input) - return self.__requestEncode(cnx, verb, url, parameters, headers, input, encode) + status, responseHeaders, output = self.__requestEncode( + cnx, verb, url, parameters, headers, input, encode, follow_302_redirect=follow_302_redirect + ) + if isinstance(output, str): + return status, responseHeaders, output + raise ValueError("requestJson() Expected a str, should never happen") def requestMultipart( self, @@ -885,7 +993,10 @@ def encode(input: Dict[str, Any]) -> Tuple[str, str]: encoded_input += f"--{boundary}--{eol}" return f"multipart/form-data; boundary={boundary}", encoded_input - return self.__requestEncode(cnx, verb, url, parameters, headers, input, encode) + status, responseHeaders, output = self.__requestEncode(cnx, verb, url, parameters, headers, input, encode) + if isinstance(output, str): + return status, responseHeaders, output + raise ValueError("requestMultipart() Expected a str, should never happen") def requestBlob( self, @@ -917,7 +1028,11 @@ def encode(local_path: str) -> Tuple[str, Any]: if input: headers["Content-Length"] = str(os.path.getsize(input)) - return self.__requestEncode(cnx, verb, url, parameters, headers, input, encode) + + status, responseHeaders, output = self.__requestEncode(cnx, verb, url, parameters, headers, input, encode) + if isinstance(output, str): + return status, responseHeaders, output + raise ValueError("requestBlob() Expected a str, should never happen") def requestMemoryBlobAndCheck( self, @@ -943,7 +1058,11 @@ def encode(_: Any) -> Tuple[str, Any]: if not cnx: cnx = self.__customConnection(url) - return self.__check(*self.__requestEncode(cnx, verb, url, parameters, headers, file_like, encode)) + + status, responseHeaders, output = self.__requestEncode(cnx, verb, url, parameters, headers, file_like, encode) + if isinstance(output, str): + return self.__check(status, responseHeaders, output) + raise ValueError("requestMemoryBlobAndCheck() Expected a str, should never happen") def __requestEncode( self, @@ -954,7 +1073,9 @@ def __requestEncode( requestHeaders: Optional[Dict[str, str]], input: Optional[T], encode: Callable[[T], Tuple[str, Any]], - ) -> Tuple[int, Dict[str, Any], str]: + stream: bool = False, + follow_302_redirect: bool = False, + ) -> Tuple[int, Dict[str, Any], Union[str, object]]: assert verb in ["HEAD", "GET", "POST", "PATCH", "PUT", "DELETE"] if parameters is None: parameters = {} @@ -974,7 +1095,9 @@ def __requestEncode( self.NEW_DEBUG_FRAME(requestHeaders) - status, responseHeaders, output = self.__requestRaw(cnx, verb, url, requestHeaders, encoded_input) + status, responseHeaders, output = self.__requestRaw( + cnx, verb, url, requestHeaders, encoded_input, stream=stream, follow_302_redirect=follow_302_redirect + ) if Consts.headerRateRemaining in responseHeaders and Consts.headerRateLimit in responseHeaders: self.rate_limiting = ( @@ -989,7 +1112,7 @@ def __requestEncode( if Consts.headerOAuthScopes in responseHeaders: self.oauth_scopes = responseHeaders[Consts.headerOAuthScopes].split(", ") - self.DEBUG_ON_RESPONSE(status, responseHeaders, output) + self.DEBUG_ON_RESPONSE(status, responseHeaders, output if isinstance(output, str) else "stream") return status, responseHeaders, output @@ -1000,19 +1123,20 @@ def __requestRaw( url: str, requestHeaders: Dict[str, str], input: Optional[Any], - ) -> Tuple[int, Dict[str, Any], str]: + stream: bool = False, + follow_302_redirect: bool = False, + ) -> Tuple[int, Dict[str, Any], Union[str, object]]: self.__deferRequest(verb) try: original_cnx = cnx if cnx is None: cnx = self.__createConnection() - cnx.request(verb, url, input, requestHeaders) + cnx.request(verb, url, input, requestHeaders, stream) response = cnx.getresponse() - + output = response if stream else response.read() status = response.status responseHeaders = {k.lower(): v for k, v in response.getheaders()} - output = response.read() if input: if isinstance(input, IOBase): @@ -1024,7 +1148,7 @@ def __requestRaw( verb == "GET" or verb == "HEAD" ): # only for requests that are considered 'safe' in RFC 2616 time.sleep(Consts.PROCESSING_202_WAIT_TIME) - return self.__requestRaw(original_cnx, verb, url, requestHeaders, input) + return self.__requestRaw(original_cnx, verb, url, requestHeaders, input, stream=stream) if status == 301 and "location" in responseHeaders: location = responseHeaders["location"] @@ -1049,8 +1173,20 @@ def __requestRaw( ) if self._logger.isEnabledFor(logging.INFO): self._logger.info(f"Following Github server redirection from {url} to {o.path}") - return self.__requestRaw(original_cnx, verb, o.path, requestHeaders, input) - + return self.__requestRaw(original_cnx, verb, o.path, requestHeaders, input, stream=stream) + if status == 302 and follow_302_redirect and "location" in responseHeaders: + location = responseHeaders["location"] + o = urllib.parse.urlparse(location) + cnx = self.__customConnection(location) + path = self.__makeAbsoluteUrl(location) + if self._logger.isEnabledFor(logging.DEBUG): + self._logger.debug(f"Following Github server redirection (302) from {url} to {o.path}") + # remove auth to not leak authentication to redirection location + if o.hostname != self.__hostname: + del requestHeaders["Authorization"] + return self.__requestRaw( + cnx, verb, path, requestHeaders, input, stream=stream, follow_302_redirect=True + ) return status, responseHeaders, output finally: # we record the time of this request after it finished @@ -1094,6 +1230,7 @@ def __makeAbsoluteUrl(self, url: str) -> str: "uploads.github.com", "status.github.com", "github.com", + "objects.githubusercontent.com", ], o.hostname assert o.path.startswith((self.__prefix, self.__graphql_prefix, "/api/", "/login/oauth")), o.path assert o.port == self.__port, o.port @@ -1103,18 +1240,20 @@ def __makeAbsoluteUrl(self, url: str) -> str: return url def __createConnection( - self, + self, hostname: Optional[str] = None ) -> Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]: - if self.__persist and self.__connection is not None: + if self.__persist and self.__connection is not None and hostname is not None and hostname == self.__hostname: return self.__connection with self.__connection_lock: - if self.__connection is not None: + if self.__connection is not None and hostname is not None and hostname == self.__hostname: if self.__persist: return self.__connection + if self.__connection is not None: self.__connection.close() + self.__connection = None self.__connection = self.__connectionClass( - self.__hostname, + hostname if hostname is not None else self.__hostname, self.__port, retry=self.__retry, pool_size=self.__pool_size, @@ -1138,7 +1277,7 @@ def __log( input: Optional[Any], status: Optional[int], responseHeaders: Dict[str, Any], - output: Optional[str], + output: Optional[Union[str, object]], ) -> None: if self._logger.isEnabledFor(logging.DEBUG): headersForRequest = requestHeaders.copy() @@ -1154,7 +1293,7 @@ def __log( input, status, responseHeaders, - output, + output if isinstance(output, str) else "stream", ) diff --git a/github/RequiredPullRequestReviews.py b/github/RequiredPullRequestReviews.py index fe2edbb5fe..410e0e745c 100644 --- a/github/RequiredPullRequestReviews.py +++ b/github/RequiredPullRequestReviews.py @@ -22,6 +22,7 @@ # Copyright 2024 Benjamin K <53038537+treee111@users.noreply.github.com> # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -61,15 +62,19 @@ class RequiredPullRequestReviews(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#get-pull-request-review-protection + The OpenAPI schema can be found at + - /components/schemas/protected-branch-pull-request-review + - /components/schemas/protected-branch/properties/required_pull_request_reviews + """ def _initAttributes(self) -> None: self._dismiss_stale_reviews: Attribute[bool] = NotSet self._require_code_owner_reviews: Attribute[bool] = NotSet + self._require_last_push_approval: Attribute[bool] = NotSet self._required_approving_review_count: Attribute[int] = NotSet - self._users: Attribute[list[NamedUser]] = NotSet self._teams: Attribute[list[Team]] = NotSet - self._require_last_push_approval: Attribute[bool] = NotSet + self._users: Attribute[list[NamedUser]] = NotSet def __repr__(self) -> str: return self.get__repr__( @@ -86,37 +91,39 @@ def dismiss_stale_reviews(self) -> bool: self._completeIfNotSet(self._dismiss_stale_reviews) return self._dismiss_stale_reviews.value + @property + def dismissal_teams(self) -> list[Team]: + self._completeIfNotSet(self._teams) + return self._teams.value + + @property + def dismissal_users(self) -> list[NamedUser]: + self._completeIfNotSet(self._users) + return self._users.value + @property def require_code_owner_reviews(self) -> bool: self._completeIfNotSet(self._require_code_owner_reviews) return self._require_code_owner_reviews.value - @property - def required_approving_review_count(self) -> int: - self._completeIfNotSet(self._required_approving_review_count) - return self._required_approving_review_count.value - @property def require_last_push_approval(self) -> bool: self._completeIfNotSet(self._require_last_push_approval) return self._require_last_push_approval.value + @property + def required_approving_review_count(self) -> int: + self._completeIfNotSet(self._required_approving_review_count) + return self._required_approving_review_count.value + @property def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - @property - def dismissal_users(self) -> list[NamedUser]: - self._completeIfNotSet(self._users) - return self._users.value - - @property - def dismissal_teams(self) -> list[Team]: - self._completeIfNotSet(self._teams) - return self._teams.value - def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "dismiss_stale_reviews" in attributes: # pragma no branch + self._dismiss_stale_reviews = self._makeBoolAttribute(attributes["dismiss_stale_reviews"]) if "dismissal_restrictions" in attributes: # pragma no branch if "users" in attributes["dismissal_restrictions"]: self._users = self._makeListOfClassesAttribute( @@ -127,15 +134,13 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._teams = self._makeListOfClassesAttribute( github.Team.Team, attributes["dismissal_restrictions"]["teams"] ) - if "dismiss_stale_reviews" in attributes: # pragma no branch - self._dismiss_stale_reviews = self._makeBoolAttribute(attributes["dismiss_stale_reviews"]) if "require_code_owner_reviews" in attributes: # pragma no branch self._require_code_owner_reviews = self._makeBoolAttribute(attributes["require_code_owner_reviews"]) + if "require_last_push_approval" in attributes: # pragma no branch + self._require_last_push_approval = self._makeBoolAttribute(attributes["require_last_push_approval"]) if "required_approving_review_count" in attributes: # pragma no branch self._required_approving_review_count = self._makeIntAttribute( attributes["required_approving_review_count"] ) - if "require_last_push_approval" in attributes: # pragma no branch - self._require_last_push_approval = self._makeBoolAttribute(attributes["require_last_push_approval"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/RequiredStatusChecks.py b/github/RequiredStatusChecks.py index ee1c0d43e1..13bd5d962b 100644 --- a/github/RequiredStatusChecks.py +++ b/github/RequiredStatusChecks.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -52,35 +53,40 @@ class RequiredStatusChecks(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#get-status-checks-protection + The OpenAPI schema can be found at + - /components/schemas/protected-branch-pull-request-review + - /components/schemas/protected-branch-required-status-check + - /components/schemas/status-check-policy + """ def _initAttributes(self) -> None: - self._strict: Attribute[bool] = NotSet self._contexts: Attribute[list[str]] = NotSet + self._strict: Attribute[bool] = NotSet self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"strict": self._strict.value, "url": self._url.value}) - @property - def strict(self) -> bool: - self._completeIfNotSet(self._strict) - return self._strict.value - @property def contexts(self) -> list[str]: self._completeIfNotSet(self._contexts) return self._contexts.value + @property + def strict(self) -> bool: + self._completeIfNotSet(self._strict) + return self._strict.value + @property def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "strict" in attributes: # pragma no branch - self._strict = self._makeBoolAttribute(attributes["strict"]) if "contexts" in attributes: # pragma no branch self._contexts = self._makeListOfStringsAttribute(attributes["contexts"]) + if "strict" in attributes: # pragma no branch + self._strict = self._makeBoolAttribute(attributes["strict"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/Secret.py b/github/Secret.py index 6b056685a9..82901aa4f4 100644 --- a/github/Secret.py +++ b/github/Secret.py @@ -18,6 +18,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -53,15 +54,23 @@ class Secret(CompletableGithubObject): """ def _initAttributes(self) -> None: - self._name: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet - self._updated_at: Attribute[datetime] = NotSet + self._name: Attribute[str] = NotSet self._secrets_url: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"name": self.name}) + @property + def created_at(self) -> datetime: + """ + :type: datetime.datetime + """ + self._completeIfNotSet(self._created_at) + return self._created_at.value + @property def name(self) -> str: """ @@ -71,12 +80,11 @@ def name(self) -> str: return self._name.value @property - def created_at(self) -> datetime: + def secrets_url(self) -> str: """ - :type: datetime.datetime + :type: string """ - self._completeIfNotSet(self._created_at) - return self._created_at.value + return self._secrets_url.value @property def updated_at(self) -> datetime: @@ -86,13 +94,6 @@ def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value - @property - def secrets_url(self) -> str: - """ - :type: string - """ - return self._secrets_url.value - @property def url(self) -> str: """ @@ -111,13 +112,13 @@ def delete(self) -> None: self._requester.requestJsonAndCheck("DELETE", self.url) def _useAttributes(self, attributes: Dict[str, Any]) -> None: - if "name" in attributes: - self._name = self._makeStringAttribute(attributes["name"]) if "created_at" in attributes: self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) - if "updated_at" in attributes: - self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) + if "name" in attributes: + self._name = self._makeStringAttribute(attributes["name"]) if "secrets_url" in attributes: self._secrets_url = self._makeStringAttribute(attributes["secrets_url"]) + if "updated_at" in attributes: + self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/SecurityAndAnalysis.py b/github/SecurityAndAnalysis.py index f9ca7fa07a..00fae07025 100644 --- a/github/SecurityAndAnalysis.py +++ b/github/SecurityAndAnalysis.py @@ -20,6 +20,7 @@ # Copyright 2024 Caleb McCombs # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -39,7 +40,9 @@ # # ################################################################################ -from typing import Any, Dict +from __future__ import annotations + +from typing import Any import github.SecurityAndAnalysisFeature from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet @@ -48,6 +51,10 @@ class SecurityAndAnalysis(NonCompletableGithubObject): """ This class represents Security and Analysis Settings. + + The OpenAPI schema can be found at + - /components/schemas/security-and-analysis + """ def _initAttributes(self) -> None: @@ -56,6 +63,7 @@ def _initAttributes(self) -> None: github.SecurityAndAnalysisFeature.SecurityAndAnalysisFeature ] = NotSet self._secret_scanning: Attribute[github.SecurityAndAnalysisFeature.SecurityAndAnalysisFeature] = NotSet + self._secret_scanning_ai_detection: Attribute[str] = NotSet self._secret_scanning_non_provider_patterns: Attribute[ github.SecurityAndAnalysisFeature.SecurityAndAnalysisFeature ] = NotSet @@ -90,6 +98,10 @@ def dependabot_security_updates(self) -> github.SecurityAndAnalysisFeature.Secur def secret_scanning(self) -> github.SecurityAndAnalysisFeature.SecurityAndAnalysisFeature: return self._secret_scanning.value + @property + def secret_scanning_ai_detection(self) -> str: + return self._secret_scanning_ai_detection.value + @property def secret_scanning_non_provider_patterns(self) -> github.SecurityAndAnalysisFeature.SecurityAndAnalysisFeature: return self._secret_scanning_non_provider_patterns.value @@ -102,20 +114,28 @@ def secret_scanning_push_protection(self) -> github.SecurityAndAnalysisFeature.S def secret_scanning_validity_checks(self) -> github.SecurityAndAnalysisFeature.SecurityAndAnalysisFeature: return self._secret_scanning_validity_checks.value - def _useAttributes(self, attributes: Dict[str, Any]) -> None: - def make_attribute(attribute_name: str) -> None: - if attribute_name in attributes: - setattr( - self, - f"_{attribute_name}", - self._makeClassAttribute( - github.SecurityAndAnalysisFeature.SecurityAndAnalysisFeature, attributes[attribute_name] - ), - ) - - make_attribute("advanced_security") - make_attribute("dependabot_security_updates") - make_attribute("secret_scanning") - make_attribute("secret_scanning_non_provider_patterns") - make_attribute("secret_scanning_push_protection") - make_attribute("secret_scanning_validity_checks") + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "advanced_security" in attributes: # pragma no branch + self._advanced_security = self._makeClassAttribute( + github.SecurityAndAnalysisFeature.SecurityAndAnalysisFeature, attributes["advanced_security"] + ) + if "dependabot_security_updates" in attributes: # pragma no branch + self._dependabot_security_updates = self._makeClassAttribute( + github.SecurityAndAnalysisFeature.SecurityAndAnalysisFeature, attributes["dependabot_security_updates"] + ) + if "secret_scanning" in attributes: # pragma no branch + self._secret_scanning = self._makeClassAttribute( + github.SecurityAndAnalysisFeature.SecurityAndAnalysisFeature, attributes["secret_scanning"] + ) + if "secret_scanning_ai_detection" in attributes: # pragma no branch + self._secret_scanning_ai_detection = self._makeStringAttribute(attributes["secret_scanning_ai_detection"]) + if "secret_scanning_non_provider_patterns" in attributes: # pragma no branch + self._secret_scanning_non_provider_patterns = self._makeClassAttribute( + github.SecurityAndAnalysisFeature.SecurityAndAnalysisFeature, + attributes["secret_scanning_non_provider_patterns"], + ) + if "secret_scanning_push_protection" in attributes: # pragma no branch + self._secret_scanning_push_protection = self._makeClassAttribute( + github.SecurityAndAnalysisFeature.SecurityAndAnalysisFeature, + attributes["secret_scanning_push_protection"], + ) diff --git a/github/SecurityAndAnalysisFeature.py b/github/SecurityAndAnalysisFeature.py index 95fa51b469..6ca84191a3 100644 --- a/github/SecurityAndAnalysisFeature.py +++ b/github/SecurityAndAnalysisFeature.py @@ -17,6 +17,7 @@ # Copyright 2024 Caleb McCombs # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -44,6 +45,14 @@ class SecurityAndAnalysisFeature(NonCompletableGithubObject): """ This class represents a Security and Analysis feature status. + + The OpenAPI schema can be found at + - /components/schemas/security-and-analysis/properties/advanced_security + - /components/schemas/security-and-analysis/properties/dependabot_security_updates + - /components/schemas/security-and-analysis/properties/secret_scanning + - /components/schemas/security-and-analysis/properties/secret_scanning_non_provider_patterns + - /components/schemas/security-and-analysis/properties/secret_scanning_push_protection + """ def _initAttributes(self) -> None: diff --git a/github/SelfHostedActionsRunner.py b/github/SelfHostedActionsRunner.py index 67924df094..134b1c5048 100644 --- a/github/SelfHostedActionsRunner.py +++ b/github/SelfHostedActionsRunner.py @@ -17,6 +17,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -50,23 +51,35 @@ class SelfHostedActionsRunner(NonCompletableGithubObject): The reference can be found at https://docs.github.com/en/free-pro-team@latest/rest/reference/actions#self-hosted-runners + The OpenAPI schema can be found at + - /components/schemas/runner + """ def _initAttributes(self) -> None: + self._busy: Attribute[bool] = NotSet self._id: Attribute[int] = NotSet + self._labels: Attribute[list[dict[str, int | str]]] = NotSet self._name: Attribute[str] = NotSet self._os: Attribute[str] = NotSet + self._runner_group_id: Attribute[int] = NotSet self._status: Attribute[str] = NotSet - self._busy: Attribute[bool] = NotSet - self._labels: Attribute[list[dict[str, int | str]]] = NotSet def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) + @property + def busy(self) -> bool: + return self._busy.value + @property def id(self) -> int: return self._id.value + @property + def labels(self) -> list[dict[str, int | str]]: + return self._labels.value + @property def name(self) -> str: return self._name.value @@ -76,26 +89,25 @@ def os(self) -> str: return self._os.value @property - def status(self) -> str: - return self._status.value + def runner_group_id(self) -> int: + return self._runner_group_id.value @property - def busy(self) -> bool: - return self._busy.value - - def labels(self) -> list[dict[str, int | str]]: - return self._labels.value + def status(self) -> str: + return self._status.value def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "busy" in attributes: + self._busy = self._makeBoolAttribute(attributes["busy"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) + if "labels" in attributes: + self._labels = self._makeListOfDictsAttribute(attributes["labels"]) if "name" in attributes: # pragma no branch self._name = self._makeStringAttribute(attributes["name"]) if "os" in attributes: # pragma no branch self._os = self._makeStringAttribute(attributes["os"]) + if "runner_group_id" in attributes: # pragma no branch + self._runner_group_id = self._makeIntAttribute(attributes["runner_group_id"]) if "status" in attributes: # pragma no branch self._status = self._makeStringAttribute(attributes["status"]) - if "busy" in attributes: - self._busy = self._makeBoolAttribute(attributes["busy"]) - if "labels" in attributes: - self._labels = self._makeListOfDictsAttribute(attributes["labels"]) diff --git a/github/SourceImport.py b/github/SourceImport.py index a2c8f8df42..6c73bd5b64 100644 --- a/github/SourceImport.py +++ b/github/SourceImport.py @@ -12,6 +12,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -46,18 +47,31 @@ class SourceImport(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/migrations#source-imports + The OpenAPI schema can be found at + - /components/schemas/import + """ def _initAttributes(self) -> None: self._authors_count: Attribute[int] = NotSet self._authors_url: Attribute[str] = NotSet + self._commit_count: Attribute[int] = NotSet + self._error_message: Attribute[str] = NotSet + self._failed_step: Attribute[str] = NotSet self._has_large_files: Attribute[bool] = NotSet self._html_url: Attribute[str] = NotSet + self._import_percent: Attribute[int] = NotSet self._large_files_count: Attribute[int] = NotSet self._large_files_size: Attribute[int] = NotSet + self._message: Attribute[str] = NotSet + self._project_choices: Attribute[list[dict[str, Any]]] = NotSet + self._push_percent: Attribute[int] = NotSet self._repository_url: Attribute[str] = NotSet self._status: Attribute[str] = NotSet self._status_text: Attribute[str] = NotSet + self._svc_root: Attribute[str] = NotSet + self._svn_root: Attribute[str] = NotSet + self._tfvc_project: Attribute[str] = NotSet self._url: Attribute[str] = NotSet self._use_lfs: Attribute[str] = NotSet self._vcs: Attribute[str] = NotSet @@ -83,6 +97,21 @@ def authors_url(self) -> str: self._completeIfNotSet(self._authors_url) return self._authors_url.value + @property + def commit_count(self) -> int: + self._completeIfNotSet(self._commit_count) + return self._commit_count.value + + @property + def error_message(self) -> str: + self._completeIfNotSet(self._error_message) + return self._error_message.value + + @property + def failed_step(self) -> str: + self._completeIfNotSet(self._failed_step) + return self._failed_step.value + @property def has_large_files(self) -> bool: self._completeIfNotSet(self._has_large_files) @@ -93,6 +122,11 @@ def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value + @property + def import_percent(self) -> int: + self._completeIfNotSet(self._import_percent) + return self._import_percent.value + @property def large_files_count(self) -> int: self._completeIfNotSet(self._large_files_count) @@ -103,6 +137,21 @@ def large_files_size(self) -> int: self._completeIfNotSet(self._large_files_size) return self._large_files_size.value + @property + def message(self) -> str: + self._completeIfNotSet(self._message) + return self._message.value + + @property + def project_choices(self) -> list[dict[str, Any]]: + self._completeIfNotSet(self._project_choices) + return self._project_choices.value + + @property + def push_percent(self) -> int: + self._completeIfNotSet(self._push_percent) + return self._push_percent.value + @property def repository_url(self) -> str: self._completeIfNotSet(self._repository_url) @@ -118,6 +167,21 @@ def status_text(self) -> str: self._completeIfNotSet(self._status_text) return self._status_text.value + @property + def svc_root(self) -> str: + self._completeIfNotSet(self._svc_root) + return self._svc_root.value + + @property + def svn_root(self) -> str: + self._completeIfNotSet(self._svn_root) + return self._svn_root.value + + @property + def tfvc_project(self) -> str: + self._completeIfNotSet(self._tfvc_project) + return self._tfvc_project.value + @property def url(self) -> str: self._completeIfNotSet(self._url) @@ -147,20 +211,40 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._authors_count = self._makeIntAttribute(attributes["authors_count"]) if "authors_url" in attributes: # pragma no branch self._authors_url = self._makeStringAttribute(attributes["authors_url"]) + if "commit_count" in attributes: # pragma no branch + self._commit_count = self._makeIntAttribute(attributes["commit_count"]) + if "error_message" in attributes: # pragma no branch + self._error_message = self._makeStringAttribute(attributes["error_message"]) + if "failed_step" in attributes: # pragma no branch + self._failed_step = self._makeStringAttribute(attributes["failed_step"]) if "has_large_files" in attributes: # pragma no branch self._has_large_files = self._makeBoolAttribute(attributes["has_large_files"]) if "html_url" in attributes: # pragma no branch self._html_url = self._makeStringAttribute(attributes["html_url"]) + if "import_percent" in attributes: # pragma no branch + self._import_percent = self._makeIntAttribute(attributes["import_percent"]) if "large_files_count" in attributes: # pragma no branch self._large_files_count = self._makeIntAttribute(attributes["large_files_count"]) if "large_files_size" in attributes: # pragma no branch self._large_files_size = self._makeIntAttribute(attributes["large_files_size"]) + if "message" in attributes: # pragma no branch + self._message = self._makeStringAttribute(attributes["message"]) + if "project_choices" in attributes: # pragma no branch + self._project_choices = self._makeListOfDictsAttribute(attributes["project_choices"]) + if "push_percent" in attributes: # pragma no branch + self._push_percent = self._makeIntAttribute(attributes["push_percent"]) if "repository_url" in attributes: # pragma no branch self._repository_url = self._makeStringAttribute(attributes["repository_url"]) if "status" in attributes: # pragma no branch self._status = self._makeStringAttribute(attributes["status"]) if "status_text" in attributes: # pragma no branch self._status_text = self._makeStringAttribute(attributes["status_text"]) + if "svc_root" in attributes: # pragma no branch + self._svc_root = self._makeStringAttribute(attributes["svc_root"]) + if "svn_root" in attributes: # pragma no branch + self._svn_root = self._makeStringAttribute(attributes["svn_root"]) + if "tfvc_project" in attributes: # pragma no branch + self._tfvc_project = self._makeStringAttribute(attributes["tfvc_project"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) if "use_lfs" in attributes: # pragma no branch diff --git a/github/Stargazer.py b/github/Stargazer.py index 7c443faddd..d8d3fe7b62 100644 --- a/github/Stargazer.py +++ b/github/Stargazer.py @@ -21,6 +21,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -63,8 +64,8 @@ class Stargazer(NonCompletableGithubObject): def _initAttributes(self) -> None: self._starred_at: Attribute[datetime] = NotSet - self._user: Attribute[NamedUser] = NotSet self._url: Attribute[str] = NotSet + self._user: Attribute[NamedUser] = NotSet def __repr__(self) -> str: # this is not a type error, just we didn't type `NamedUser` yet. diff --git a/github/StatsCodeFrequency.py b/github/StatsCodeFrequency.py index 875c2c4fa2..871317a496 100755 --- a/github/StatsCodeFrequency.py +++ b/github/StatsCodeFrequency.py @@ -17,6 +17,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -50,16 +51,15 @@ class StatsCodeFrequency(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/metrics/statistics?apiVersion=2022-11-28#get-the-weekly-commit-activity + The OpenAPI schema can be found at + - /components/schemas/code-frequency-stat + """ def _initAttributes(self) -> None: - self._week: Attribute[datetime] = NotSet self._additions: Attribute[int] = NotSet self._deletions: Attribute[int] = NotSet - - @property - def week(self) -> datetime: - return self._week.value + self._week: Attribute[datetime] = NotSet @property def additions(self) -> int: @@ -69,6 +69,10 @@ def additions(self) -> int: def deletions(self) -> int: return self._deletions.value + @property + def week(self) -> datetime: + return self._week.value + def _useAttributes(self, attributes: tuple[int, int, int]) -> None: self._week = self._makeTimestampAttribute(attributes[0]) self._additions = self._makeIntAttribute(attributes[1]) diff --git a/github/StatsCommitActivity.py b/github/StatsCommitActivity.py index c315d1e496..63ece53fb8 100755 --- a/github/StatsCommitActivity.py +++ b/github/StatsCommitActivity.py @@ -17,6 +17,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -50,29 +51,32 @@ class StatsCommitActivity(github.GithubObject.NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#get-the-last-year-of-commit-activity + The OpenAPI schema can be found at + - /components/schemas/commit-activity + """ def _initAttributes(self) -> None: - self._week: Attribute[datetime] = github.GithubObject.NotSet - self._total: Attribute[int] = github.GithubObject.NotSet self._days: Attribute[int] = github.GithubObject.NotSet + self._total: Attribute[int] = github.GithubObject.NotSet + self._week: Attribute[datetime] = github.GithubObject.NotSet @property - def week(self) -> datetime: - return self._week.value + def days(self) -> int: + return self._days.value @property def total(self) -> int: return self._total.value @property - def days(self) -> int: - return self._days.value + def week(self) -> datetime: + return self._week.value def _useAttributes(self, attributes: Dict[str, Any]) -> None: - if "week" in attributes: # pragma no branch - self._week = self._makeTimestampAttribute(attributes["week"]) - if "total" in attributes: # pragma no branch - self._total = self._makeIntAttribute(attributes["total"]) if "days" in attributes: # pragma no branch self._days = self._makeListOfIntsAttribute(attributes["days"]) + if "total" in attributes: # pragma no branch + self._total = self._makeIntAttribute(attributes["total"]) + if "week" in attributes: # pragma no branch + self._week = self._makeTimestampAttribute(attributes["week"]) diff --git a/github/StatsContributor.py b/github/StatsContributor.py index b087764e00..76da7d745c 100755 --- a/github/StatsContributor.py +++ b/github/StatsContributor.py @@ -15,6 +15,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -51,44 +52,56 @@ class StatsContributor(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#get-all-contributor-commit-activity + The OpenAPI schema can be found at + - /components/schemas/contributor-activity + """ class Week(NonCompletableGithubObject): """ This class represents weekly statistics of a contributor. + + The OpenAPI schema can be found at + - /components/schemas/contributor-activity/properties/weeks/items + """ - @property - def w(self) -> datetime: - return self._w.value + def _initAttributes(self) -> None: + self._a: Attribute[int] = NotSet + self._c: Attribute[int] = NotSet + self._d: Attribute[int] = NotSet + self._w: Attribute[datetime] = NotSet @property def a(self) -> int: return self._a.value + @property + def c(self) -> int: + return self._c.value + @property def d(self) -> int: return self._d.value @property - def c(self) -> int: - return self._c.value - - def _initAttributes(self) -> None: - self._w: Attribute[datetime] = NotSet - self._a: Attribute[int] = NotSet - self._d: Attribute[int] = NotSet - self._c: Attribute[int] = NotSet + def w(self) -> datetime: + return self._w.value def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "w" in attributes: # pragma no branch - self._w = self._makeTimestampAttribute(attributes["w"]) if "a" in attributes: # pragma no branch self._a = self._makeIntAttribute(attributes["a"]) - if "d" in attributes: # pragma no branch - self._d = self._makeIntAttribute(attributes["d"]) if "c" in attributes: # pragma no branch self._c = self._makeIntAttribute(attributes["c"]) + if "d" in attributes: # pragma no branch + self._d = self._makeIntAttribute(attributes["d"]) + if "w" in attributes: # pragma no branch + self._w = self._makeTimestampAttribute(attributes["w"]) + + def _initAttributes(self) -> None: + self._author: Attribute[github.NamedUser.NamedUser] = NotSet + self._total: Attribute[int] = NotSet + self._weeks: Attribute[list[StatsContributor.Week]] = NotSet @property def author(self) -> github.NamedUser.NamedUser: @@ -102,11 +115,6 @@ def total(self) -> int: def weeks(self) -> list[Week]: return self._weeks.value - def _initAttributes(self) -> None: - self._author: Attribute[github.NamedUser.NamedUser] = NotSet - self._total: Attribute[int] = NotSet - self._weeks: Attribute[list[StatsContributor.Week]] = NotSet - def _useAttributes(self, attributes: dict[str, Any]) -> None: if "author" in attributes: # pragma no branch self._author = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["author"]) diff --git a/github/StatsParticipation.py b/github/StatsParticipation.py index 351b2fcb29..1ddb1207a0 100755 --- a/github/StatsParticipation.py +++ b/github/StatsParticipation.py @@ -18,6 +18,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -51,6 +52,9 @@ class StatsParticipation(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#get-the-weekly-commit-count + The OpenAPI schema can be found at + - /components/schemas/participation-stats + """ def _initAttributes(self) -> None: diff --git a/github/StatsPunchCard.py b/github/StatsPunchCard.py index 7d4ad2cb0e..97f0fe9069 100755 --- a/github/StatsPunchCard.py +++ b/github/StatsPunchCard.py @@ -18,6 +18,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -50,19 +51,22 @@ class StatsPunchCard(github.GithubObject.NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#get-the-hourly-commit-count-for-each-day + The OpenAPI schema can be found at + - /components/schemas/code-frequency-stat + """ _dict: Dict[Tuple[int, int], int] + def _initAttributes(self) -> None: + self._dict = {} + def get(self, day: int, hour: int) -> int: """ Get a specific element. """ return self._dict[(day, hour)] - def _initAttributes(self) -> None: - self._dict = {} - def _useAttributes(self, attributes: Any) -> None: for day, hour, commits in attributes: self._dict[(day, hour)] = commits diff --git a/github/Tag.py b/github/Tag.py index 2221ae4c19..c37a828318 100644 --- a/github/Tag.py +++ b/github/Tag.py @@ -20,6 +20,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -57,17 +58,21 @@ class Tag(NonCompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/repos#list-repository-tags - """ + The OpenAPI schema can be found at + - /components/schemas/tag - def __repr__(self) -> str: - return self.get__repr__({"name": self._name.value, "commit": self._commit.value}) + """ def _initAttributes(self) -> None: self._commit: Attribute[Commit] = NotSet self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet self._tarball_url: Attribute[str] = NotSet self._zipball_url: Attribute[str] = NotSet + def __repr__(self) -> str: + return self.get__repr__({"name": self._name.value, "commit": self._commit.value}) + @property def commit(self) -> Commit: return self._commit.value @@ -76,6 +81,10 @@ def commit(self) -> Commit: def name(self) -> str: return self._name.value + @property + def node_id(self) -> str: + return self._node_id.value + @property def tarball_url(self) -> str: return self._tarball_url.value @@ -89,6 +98,8 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._commit = self._makeClassAttribute(github.Commit.Commit, attributes["commit"]) 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 "tarball_url" in attributes: # pragma no branch self._tarball_url = self._makeStringAttribute(attributes["tarball_url"]) if "zipball_url" in attributes: # pragma no branch diff --git a/github/Team.py b/github/Team.py index 7aa74ba932..6e32e9d6e7 100644 --- a/github/Team.py +++ b/github/Team.py @@ -41,6 +41,7 @@ # Copyright 2024 Andrii Kezikov # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -63,6 +64,7 @@ from __future__ import annotations import urllib.parse +from datetime import datetime from typing import TYPE_CHECKING, Any from deprecated import deprecated @@ -70,6 +72,7 @@ import github.NamedUser import github.Organization import github.PaginatedList +import github.Permissions import github.Repository import github.TeamDiscussion from github import Consts @@ -93,33 +96,68 @@ class Team(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/teams + The OpenAPI schema can be found at + - /components/schemas/nullable-team-simple + - /components/schemas/team + - /components/schemas/team-full + - /components/schemas/team-simple + """ def _initAttributes(self) -> None: + self._created_at: Attribute[datetime] = NotSet + self._description: Attribute[str] = NotSet + self._html_url: Attribute[str] = NotSet self._id: Attribute[int] = NotSet + self._ldap_dn: Attribute[str] = NotSet self._members_count: Attribute[int] = NotSet self._members_url: Attribute[str] = NotSet self._name: Attribute[str] = NotSet - self._description: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet self._notification_setting: Attribute[str] = NotSet + self._organization: Attribute[Organization] = NotSet + self._parent: Attribute[github.Team.Team] = NotSet self._permission: Attribute[str] = NotSet + self._permissions: Attribute[Permissions] = NotSet + self._privacy: Attribute[str] = NotSet self._repos_count: Attribute[int] = NotSet self._repositories_url: Attribute[str] = NotSet self._slug: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet - self._organization: Attribute[github.Organization.Organization] = NotSet - self._privacy: Attribute[str] = NotSet - self._parent: Attribute[github.Team.Team] = NotSet - self._html_url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "name": self._name.value}) + @property + def _identity(self) -> int: + return self.id + + @property + def created_at(self) -> datetime: + self._completeIfNotSet(self._created_at) + return self._created_at.value + + @property + def description(self) -> str: + self._completeIfNotSet(self._description) + return self._description.value + + @property + def html_url(self) -> str: + self._completeIfNotSet(self._html_url) + return self._html_url.value + @property def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value + @property + def ldap_dn(self) -> str: + self._completeIfNotSet(self._ldap_dn) + return self._ldap_dn.value + @property def members_count(self) -> int: self._completeIfNotSet(self._members_count) @@ -136,20 +174,40 @@ def name(self) -> str: return self._name.value @property - def description(self) -> str: - self._completeIfNotSet(self._description) - return self._description.value + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value @property def notification_setting(self) -> str: self._completeIfNotSet(self._notification_setting) return self._notification_setting.value + @property + def organization(self) -> Organization: + self._completeIfNotSet(self._organization) + return self._organization.value + + @property + def parent(self) -> Team: + self._completeIfNotSet(self._parent) + return self._parent.value + @property def permission(self) -> str: self._completeIfNotSet(self._permission) return self._permission.value + @property + def permissions(self) -> Permissions: + self._completeIfNotSet(self._permissions) + return self._permissions.value + + @property + def privacy(self) -> str: + self._completeIfNotSet(self._privacy) + return self._privacy.value + @property def repos_count(self) -> int: self._completeIfNotSet(self._repos_count) @@ -165,31 +223,16 @@ def slug(self) -> str: self._completeIfNotSet(self._slug) return self._slug.value + @property + def updated_at(self) -> datetime: + self._completeIfNotSet(self._updated_at) + return self._updated_at.value + @property def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - @property - def organization(self) -> Organization: - self._completeIfNotSet(self._organization) - return self._organization.value - - @property - def privacy(self) -> str: - self._completeIfNotSet(self._privacy) - return self._privacy.value - - @property - def parent(self) -> Team: - self._completeIfNotSet(self._parent) - return self._parent.value - - @property - def html_url(self) -> str: - self._completeIfNotSet(self._html_url) - return self._html_url.value - def add_to_members(self, member: NamedUser) -> None: """ This API call is deprecated. Use `add_membership` instead. @@ -253,7 +296,7 @@ def get_repo_permission(self, repo: Repository) -> Permissions | None: f"{self.url}/repos/{repo}", headers={"Accept": Consts.teamRepositoryPermissions}, ) - return github.Permissions.Permissions(self._requester, headers, data["permissions"], completed=True) + return github.Permissions.Permissions(self._requester, headers, data["permissions"]) except UnknownObjectException: return None @@ -435,38 +478,44 @@ def remove_from_repos(self, repo: Repository) -> None: assert isinstance(repo, github.Repository.Repository), repo headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/repos/{repo._identity}") - @property - def _identity(self) -> int: - return self.id - def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "created_at" in attributes: # pragma no branch + self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "description" in attributes: # pragma no branch + self._description = self._makeStringAttribute(attributes["description"]) + if "html_url" in attributes: + self._html_url = self._makeStringAttribute(attributes["html_url"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) + if "ldap_dn" in attributes: # pragma no branch + self._ldap_dn = self._makeStringAttribute(attributes["ldap_dn"]) if "members_count" in attributes: # pragma no branch self._members_count = self._makeIntAttribute(attributes["members_count"]) if "members_url" in attributes: # pragma no branch self._members_url = self._makeStringAttribute(attributes["members_url"]) if "name" in attributes: # pragma no branch self._name = self._makeStringAttribute(attributes["name"]) - if "description" in attributes: # pragma no branch - self._description = self._makeStringAttribute(attributes["description"]) + if "node_id" in attributes: # pragma no branch + self._node_id = self._makeStringAttribute(attributes["node_id"]) if "notification_setting" in attributes: # pragma no branch self._notification_setting = self._makeStringAttribute(attributes["notification_setting"]) + if "organization" in attributes: # pragma no branch + self._organization = self._makeClassAttribute(github.Organization.Organization, attributes["organization"]) + if "parent" in attributes: # pragma no branch + self._parent = self._makeClassAttribute(github.Team.Team, attributes["parent"]) if "permission" in attributes: # pragma no branch self._permission = self._makeStringAttribute(attributes["permission"]) + if "permissions" in attributes: # pragma no branch + self._permissions = self._makeClassAttribute(github.Permissions.Permissions, attributes["permissions"]) + if "privacy" in attributes: # pragma no branch + self._privacy = self._makeStringAttribute(attributes["privacy"]) if "repos_count" in attributes: # pragma no branch self._repos_count = self._makeIntAttribute(attributes["repos_count"]) if "repositories_url" in attributes: # pragma no branch self._repositories_url = self._makeStringAttribute(attributes["repositories_url"]) if "slug" in attributes: # pragma no branch self._slug = self._makeStringAttribute(attributes["slug"]) + if "updated_at" in attributes: # pragma no branch + self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) - if "organization" in attributes: # pragma no branch - self._organization = self._makeClassAttribute(github.Organization.Organization, attributes["organization"]) - if "privacy" in attributes: # pragma no branch - self._privacy = self._makeStringAttribute(attributes["privacy"]) - if "parent" in attributes: # pragma no branch - self._parent = self._makeClassAttribute(github.Team.Team, attributes["parent"]) - if "html_url" in attributes: - self._html_url = self._makeStringAttribute(attributes["html_url"]) diff --git a/github/TimelineEvent.py b/github/TimelineEvent.py index 7cbcb58a26..8d22cb765e 100644 --- a/github/TimelineEvent.py +++ b/github/TimelineEvent.py @@ -22,6 +22,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -64,11 +65,11 @@ class TimelineEvent(NonCompletableGithubObject): def _initAttributes(self) -> None: self._actor: Attribute[github.NamedUser.NamedUser] = NotSet self._commit_id: Attribute[str] = NotSet + self._commit_url: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet self._event: Attribute[str] = NotSet self._id: Attribute[int] = NotSet self._node_id: Attribute[str] = NotSet - self._commit_url: Attribute[str] = NotSet self._source: Attribute[github.TimelineEventSource.TimelineEventSource] = NotSet self._url: Attribute[str] = NotSet @@ -79,10 +80,26 @@ def __repr__(self) -> str: def actor(self) -> github.NamedUser.NamedUser: return self._actor.value + @property + def author_association(self) -> str | None: + if self.event == "commented" and self._author_association is not NotSet: + return self._author_association.value + return None + + @property + def body(self) -> str | None: + if self.event == "commented" and self._body is not NotSet: + return self._body.value + return None + @property def commit_id(self) -> str: return self._commit_id.value + @property + def commit_url(self) -> str: + return self._commit_url.value + @property def created_at(self) -> datetime: return self._created_at.value @@ -99,10 +116,6 @@ def id(self) -> int: def node_id(self) -> str: return self._node_id.value - @property - def commit_url(self) -> str: - return self._commit_url.value - @property def source(self) -> github.TimelineEventSource.TimelineEventSource | None: # only available on `cross-referenced` events. @@ -110,18 +123,6 @@ def source(self) -> github.TimelineEventSource.TimelineEventSource | None: return self._source.value return None - @property - def body(self) -> str | None: - if self.event == "commented" and self._body is not NotSet: - return self._body.value - return None - - @property - def author_association(self) -> str | None: - if self.event == "commented" and self._author_association is not NotSet: - return self._author_association.value - return None - @property def url(self) -> str: return self._url.value @@ -129,8 +130,14 @@ def url(self) -> str: def _useAttributes(self, attributes: dict[str, Any]) -> None: if "actor" in attributes: # pragma no branch self._actor = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["actor"]) + if "author_association" in attributes: # pragma no branch + self._author_association = self._makeStringAttribute(attributes["author_association"]) + if "body" in attributes: # pragma no branch + self._body = self._makeStringAttribute(attributes["body"]) if "commit_id" in attributes: # pragma no branch self._commit_id = self._makeStringAttribute(attributes["commit_id"]) + if "commit_url" in attributes: # pragma no branch + self._commit_url = self._makeStringAttribute(attributes["commit_url"]) if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "event" in attributes: # pragma no branch @@ -139,15 +146,9 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._id = self._makeIntAttribute(attributes["id"]) if "node_id" in attributes: # pragma no branch self._node_id = self._makeStringAttribute(attributes["node_id"]) - if "commit_url" in attributes: # pragma no branch - self._commit_url = self._makeStringAttribute(attributes["commit_url"]) if "source" in attributes: # pragma no branch self._source = self._makeClassAttribute( github.TimelineEventSource.TimelineEventSource, attributes["source"] ) - if "body" in attributes: # pragma no branch - self._body = self._makeStringAttribute(attributes["body"]) - if "author_association" in attributes: # pragma no branch - self._author_association = self._makeStringAttribute(attributes["author_association"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/TimelineEventSource.py b/github/TimelineEventSource.py index 73b23c96cf..9e76b5bfe2 100644 --- a/github/TimelineEventSource.py +++ b/github/TimelineEventSource.py @@ -18,6 +18,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -58,22 +59,22 @@ class TimelineEventSource(NonCompletableGithubObject): """ def _initAttributes(self) -> None: - self._type: Attribute[str] = NotSet self._issue: Attribute[Issue] = NotSet + self._type: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"type": self._type.value}) - @property - def type(self) -> str: - return self._type.value - @property def issue(self) -> Issue: return self._issue.value + @property + def type(self) -> str: + return self._type.value + def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "type" in attributes: # pragma no branch - self._type = self._makeStringAttribute(attributes["type"]) if "issue" in attributes: # pragma no branch self._issue = self._makeClassAttribute(github.Issue.Issue, attributes["issue"]) + if "type" in attributes: # pragma no branch + self._type = self._makeStringAttribute(attributes["type"]) diff --git a/github/Topic.py b/github/Topic.py index 79ebf0391f..2a07a53162 100644 --- a/github/Topic.py +++ b/github/Topic.py @@ -18,6 +18,7 @@ # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2023 Trim21 # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -48,88 +49,127 @@ class Topic(NonCompletableGithubObject): """ This class represents topics as used by https://github.com/topics. The object reference can be found here https://docs.github.com/en/rest/reference/search#search-topics + + The OpenAPI schema can be found at + - /components/schemas/topic-search-result-item + """ def _initAttributes(self) -> None: - self._name: Attribute[str] = NotSet - self._display_name: Attribute[str] = NotSet - self._short_description: Attribute[str] = NotSet - self._description: Attribute[str] = NotSet - self._created_by: Attribute[str] = NotSet - self._released: Attribute[str] = NotSet + self._aliases: Attribute[list[dict[str, Any]]] = NotSet self._created_at: Attribute[datetime] = NotSet - self._updated_at: Attribute[datetime] = NotSet - self._featured: Attribute[bool] = NotSet + self._created_by: Attribute[str] = NotSet self._curated: Attribute[bool] = NotSet + self._description: Attribute[str] = NotSet + self._display_name: Attribute[str] = NotSet + self._featured: Attribute[bool] = NotSet + self._logo_url: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + self._related: Attribute[list[dict[str, Any]]] = NotSet + self._released: Attribute[str] = NotSet + self._repository_count: Attribute[int] = NotSet self._score: Attribute[float] = NotSet + self._short_description: Attribute[str] = NotSet + self._text_matches: Attribute[dict[str, Any]] = NotSet + self._updated_at: Attribute[datetime] = NotSet def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) @property - def name(self) -> str: - return self._name.value + def aliases(self) -> list[dict[str, Any]]: + return self._aliases.value @property - def display_name(self) -> str: - return self._display_name.value + def created_at(self) -> datetime: + return self._created_at.value @property - def short_description(self) -> str: - return self._short_description.value + def created_by(self) -> str: + return self._created_by.value + + @property + def curated(self) -> bool: + return self._curated.value @property def description(self) -> str: return self._description.value @property - def created_by(self) -> str: - return self._created_by.value + def display_name(self) -> str: + return self._display_name.value @property - def released(self) -> str: - return self._released.value + def featured(self) -> bool: + return self._featured.value @property - def created_at(self) -> datetime: - return self._created_at.value + def logo_url(self) -> str: + return self._logo_url.value @property - def updated_at(self) -> datetime: - return self._updated_at.value + def name(self) -> str: + return self._name.value @property - def featured(self) -> bool: - return self._featured.value + def related(self) -> list[dict[str, Any]]: + return self._related.value @property - def curated(self) -> bool: - return self._curated.value + def released(self) -> str: + return self._released.value + + @property + def repository_count(self) -> int: + return self._repository_count.value @property def score(self) -> float: return self._score.value + @property + def short_description(self) -> str: + return self._short_description.value + + @property + def text_matches(self) -> dict[str, Any]: + return self._text_matches.value + + @property + def updated_at(self) -> datetime: + return self._updated_at.value + def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "name" in attributes: # pragma no branch - self._name = self._makeStringAttribute(attributes["name"]) - if "display_name" in attributes: # pragma no branch - self._display_name = self._makeStringAttribute(attributes["display_name"]) - if "short_description" in attributes: # pragma no branch - self._short_description = self._makeStringAttribute(attributes["short_description"]) - if "description" in attributes: # pragma no branch - self._description = self._makeStringAttribute(attributes["description"]) - if "created_by" in attributes: # pragma no branch - self._created_by = self._makeStringAttribute(attributes["created_by"]) - if "released" in attributes: # pragma no branch - self._released = self._makeStringAttribute(attributes["released"]) + if "aliases" in attributes: # pragma no branch + self._aliases = self._makeListOfDictsAttribute(attributes["aliases"]) if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) - if "updated_at" in attributes: # pragma no branch - self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) - if "featured" in attributes: # pragma no branch - self._featured = self._makeBoolAttribute(attributes["featured"]) + if "created_by" in attributes: # pragma no branch + self._created_by = self._makeStringAttribute(attributes["created_by"]) if "curated" in attributes: # pragma no branch self._curated = self._makeBoolAttribute(attributes["curated"]) + if "description" in attributes: # pragma no branch + self._description = self._makeStringAttribute(attributes["description"]) + if "display_name" in attributes: # pragma no branch + self._display_name = self._makeStringAttribute(attributes["display_name"]) + if "featured" in attributes: # pragma no branch + self._featured = self._makeBoolAttribute(attributes["featured"]) + if "logo_url" in attributes: # pragma no branch + self._logo_url = self._makeStringAttribute(attributes["logo_url"]) + if "name" in attributes: # pragma no branch + self._name = self._makeStringAttribute(attributes["name"]) + if "related" in attributes: # pragma no branch + self._related = self._makeListOfDictsAttribute(attributes["related"]) + if "released" in attributes: # pragma no branch + self._released = self._makeStringAttribute(attributes["released"]) + if "repository_count" in attributes: # pragma no branch + self._repository_count = self._makeIntAttribute(attributes["repository_count"]) if "score" in attributes: # pragma no branch self._score = self._makeFloatAttribute(attributes["score"]) + if "short_description" in attributes: # pragma no branch + self._short_description = self._makeStringAttribute(attributes["short_description"]) + if "text_matches" in attributes: # pragma no branch + self._text_matches = self._makeDictAttribute(attributes["text_matches"]) + if "updated_at" in attributes: # pragma no branch + self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) diff --git a/github/Traffic.py b/github/Traffic.py new file mode 100644 index 0000000000..629933ff55 --- /dev/null +++ b/github/Traffic.py @@ -0,0 +1,93 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Justin Kufro # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # +# Copyright 2024 Enrico Minack # +# Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # +# # +# 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 . # +# # +################################################################################ + +from __future__ import annotations + +from datetime import datetime +from typing import Any + +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class Traffic(NonCompletableGithubObject): + """ + This class represents traffic information at a specific point in time. + + The reference can be found here + https://docs.github.com/en/rest/metrics/traffic + + The OpenAPI schema can be found at + - /components/schemas/traffic + + """ + + def _initAttributes(self) -> None: + self._count: Attribute[int] = NotSet + self._timestamp: Attribute[datetime] = NotSet + self._uniques: Attribute[int] = NotSet + + def __repr__(self) -> str: + return self.get__repr__( + { + "timestamp": self._timestamp.value, + "count": self._count.value, + "uniques": self._uniques.value, + } + ) + + @property + def count(self) -> int: + return self._count.value + + @property + def timestamp(self) -> datetime: + return self._timestamp.value + + @property + def uniques(self) -> int: + return self._uniques.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "count" in attributes: # pragma no branch + self._count = self._makeIntAttribute(attributes["count"]) + if "timestamp" in attributes: # pragma no branch + self._timestamp = self._makeDatetimeAttribute(attributes["timestamp"]) + if "uniques" in attributes: # pragma no branch + self._uniques = self._makeIntAttribute(attributes["uniques"]) diff --git a/github/UserKey.py b/github/UserKey.py index e0e2a96fa7..a5a878fabb 100644 --- a/github/UserKey.py +++ b/github/UserKey.py @@ -19,6 +19,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -38,31 +39,43 @@ # # ################################################################################ -from typing import Any, Dict +from __future__ import annotations -import github.GithubObject -from github.GithubObject import Attribute +from datetime import datetime +from typing import Any +from github.GithubObject import Attribute, CompletableGithubObject, NotSet -class UserKey(github.GithubObject.CompletableGithubObject): + +class UserKey(CompletableGithubObject): """ This class represents UserKeys. The reference can be found here https://docs.github.com/en/rest/reference/users#keys + The OpenAPI schema can be found at + - /components/schemas/key + """ def _initAttributes(self) -> None: - self._id: Attribute[int] = github.GithubObject.NotSet - self._key: Attribute[str] = github.GithubObject.NotSet - self._title: Attribute[str] = github.GithubObject.NotSet - self._url: Attribute[str] = github.GithubObject.NotSet - self._verified: Attribute[bool] = github.GithubObject.NotSet + self._created_at: Attribute[datetime] = NotSet + self._id: Attribute[int] = NotSet + self._key: Attribute[str] = NotSet + self._read_only: Attribute[bool] = NotSet + self._title: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + self._verified: Attribute[bool] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "title": self._title.value}) + @property + def created_at(self) -> datetime: + self._completeIfNotSet(self._created_at) + return self._created_at.value + @property def id(self) -> int: self._completeIfNotSet(self._id) @@ -73,6 +86,11 @@ def key(self) -> str: self._completeIfNotSet(self._key) return self._key.value + @property + def read_only(self) -> bool: + self._completeIfNotSet(self._read_only) + return self._read_only.value + @property def title(self) -> str: self._completeIfNotSet(self._title) @@ -95,11 +113,15 @@ def delete(self) -> None: """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) - def _useAttributes(self, attributes: Dict[str, Any]) -> None: + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "created_at" in attributes: # pragma no branch + self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) if "key" in attributes: # pragma no branch self._key = self._makeStringAttribute(attributes["key"]) + if "read_only" in attributes: # pragma no branch + self._read_only = self._makeBoolAttribute(attributes["read_only"]) if "title" in attributes: # pragma no branch self._title = self._makeStringAttribute(attributes["title"]) if "url" in attributes: # pragma no branch diff --git a/github/Variable.py b/github/Variable.py index eebd46d97c..6d69d268d3 100644 --- a/github/Variable.py +++ b/github/Variable.py @@ -5,6 +5,7 @@ # Copyright 2023 Mauricio Alejandro Martínez Pacheco # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -42,64 +43,64 @@ class Variable(CompletableGithubObject): """ def _initAttributes(self) -> None: - self._name: Attribute[str] = NotSet - self._value: Attribute[str] = NotSet self._created_at: Attribute[datetime] = NotSet + self._name: Attribute[str] = NotSet self._updated_at: Attribute[datetime] = NotSet - self._variables_url: Attribute[str] = NotSet self._url: Attribute[str] = NotSet + self._value: Attribute[str] = NotSet + self._variables_url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"name": self.name}) @property - def name(self) -> str: + def created_at(self) -> datetime: """ - :type: string + :type: datetime.datetime """ - self._completeIfNotSet(self._name) - return self._name.value + self._completeIfNotSet(self._created_at) + return self._created_at.value @property - def value(self) -> str: + def name(self) -> str: """ :type: string """ - self._completeIfNotSet(self._value) - return self._value.value + self._completeIfNotSet(self._name) + return self._name.value @property - def created_at(self) -> datetime: + def updated_at(self) -> datetime: """ :type: datetime.datetime """ - self._completeIfNotSet(self._created_at) - return self._created_at.value + self._completeIfNotSet(self._updated_at) + return self._updated_at.value @property - def updated_at(self) -> datetime: + def url(self) -> str: """ - :type: datetime.datetime + :type: string """ - self._completeIfNotSet(self._updated_at) - return self._updated_at.value + # Construct url from variables_url and name, if self._url. is not set + if self._url is NotSet: + self._url = self._makeStringAttribute(self.variables_url + "/" + self.name) + return self._url.value @property - def variables_url(self) -> str: + def value(self) -> str: """ :type: string """ - return self._variables_url.value + self._completeIfNotSet(self._value) + return self._value.value @property - def url(self) -> str: + def variables_url(self) -> str: """ :type: string """ - # Construct url from variables_url and name, if self._url. is not set - if self._url is NotSet: - self._url = self._makeStringAttribute(self.variables_url + "/" + self.name) - return self._url.value + return self._variables_url.value def edit(self, value: str) -> bool: """ @@ -128,15 +129,15 @@ def delete(self) -> None: self._requester.requestJsonAndCheck("DELETE", self.url) def _useAttributes(self, attributes: dict[str, Any]) -> None: - if "name" in attributes: - self._name = self._makeStringAttribute(attributes["name"]) - if "value" in attributes: - self._value = self._makeStringAttribute(attributes["value"]) if "created_at" in attributes: self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "name" in attributes: + self._name = self._makeStringAttribute(attributes["name"]) if "updated_at" in attributes: self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) - if "variables_url" in attributes: - self._variables_url = self._makeStringAttribute(attributes["variables_url"]) if "url" in attributes: self._url = self._makeStringAttribute(attributes["url"]) + if "value" in attributes: + self._value = self._makeStringAttribute(attributes["value"]) + if "variables_url" in attributes: + self._variables_url = self._makeStringAttribute(attributes["variables_url"]) diff --git a/github/View.py b/github/View.py index 6556f90650..133dfb1c96 100644 --- a/github/View.py +++ b/github/View.py @@ -18,6 +18,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -37,39 +38,42 @@ # # ################################################################################ -from datetime import datetime -from typing import Any, Dict +from __future__ import annotations +from typing import TYPE_CHECKING, Any + +import github.Traffic from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet +if TYPE_CHECKING: + from github.Traffic import Traffic + class View(NonCompletableGithubObject): """ - This class represents a popular Path for a GitHub repository. + This class represents the total number of views and breakdown per day or week for a GitHub repository. The reference can be found here - https://docs.github.com/en/rest/reference/repos#traffic + https://docs.github.com/en/rest/metrics/traffic#get-page-views + + The OpenAPI schema can be found at + - /components/schemas/view-traffic """ def _initAttributes(self) -> None: - self._timestamp: Attribute[datetime] = NotSet self._count: Attribute[int] = NotSet self._uniques: Attribute[int] = NotSet + self._views: Attribute[list[Traffic]] = NotSet def __repr__(self) -> str: return self.get__repr__( { - "timestamp": self._timestamp.value, "count": self._count.value, "uniques": self._uniques.value, } ) - @property - def timestamp(self) -> datetime: - return self._timestamp.value - @property def count(self) -> int: return self._count.value @@ -78,10 +82,14 @@ def count(self) -> int: def uniques(self) -> int: return self._uniques.value - def _useAttributes(self, attributes: Dict[str, Any]) -> None: - if "timestamp" in attributes: # pragma no branch - self._timestamp = self._makeDatetimeAttribute(attributes["timestamp"]) + @property + def views(self) -> list[Traffic]: + return self._views.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "count" in attributes: # pragma no branch self._count = self._makeIntAttribute(attributes["count"]) if "uniques" in attributes: # pragma no branch self._uniques = self._makeIntAttribute(attributes["uniques"]) + if "views" in attributes: # pragma no branch + self._views = self._makeListOfClassesAttribute(github.Traffic.Traffic, attributes["views"]) diff --git a/github/Workflow.py b/github/Workflow.py index ee9657a9d0..280c98550c 100644 --- a/github/Workflow.py +++ b/github/Workflow.py @@ -22,6 +22,8 @@ # Copyright 2023 sd-kialo <138505487+sd-kialo@users.noreply.github.com> # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Nick McClorey <32378821+nickrmcclorey@users.noreply.github.com># # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -63,22 +65,47 @@ class Workflow(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/actions#workflows + The OpenAPI schema can be found at + - /components/schemas/workflow + """ def _initAttributes(self) -> None: + self._badge_url: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._deleted_at: Attribute[datetime] = NotSet + self._html_url: Attribute[str] = NotSet self._id: Attribute[int] = NotSet self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet self._path: Attribute[str] = NotSet self._state: Attribute[str] = NotSet - self._created_at: Attribute[datetime] = NotSet self._updated_at: Attribute[datetime] = NotSet self._url: Attribute[str] = NotSet - self._html_url: Attribute[str] = NotSet - self._badge_url: Attribute[str] = NotSet def __repr__(self) -> str: return self.get__repr__({"name": self._name.value, "url": self._url.value}) + @property + def badge_url(self) -> str: + self._completeIfNotSet(self._badge_url) + return self._badge_url.value + + @property + def created_at(self) -> datetime: + self._completeIfNotSet(self._created_at) + return self._created_at.value + + @property + def deleted_at(self) -> datetime: + self._completeIfNotSet(self._deleted_at) + return self._deleted_at.value + + @property + def html_url(self) -> str: + self._completeIfNotSet(self._html_url) + return self._html_url.value + @property def id(self) -> int: self._completeIfNotSet(self._id) @@ -89,6 +116,11 @@ def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value + @property + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value + @property def path(self) -> str: self._completeIfNotSet(self._path) @@ -99,11 +131,6 @@ def state(self) -> str: self._completeIfNotSet(self._state) return self._state.value - @property - def created_at(self) -> datetime: - self._completeIfNotSet(self._created_at) - return self._created_at.value - @property def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) @@ -114,16 +141,6 @@ def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - @property - def html_url(self) -> str: - self._completeIfNotSet(self._html_url) - return self._html_url.value - - @property - def badge_url(self) -> str: - self._completeIfNotSet(self._badge_url) - return self._badge_url.value - def create_dispatch( self, ref: github.Branch.Branch | github.Tag.Tag | github.Commit.Commit | str, inputs: Opt[dict] = NotSet ) -> bool: @@ -199,22 +216,42 @@ def get_runs( list_item="workflow_runs", ) + def disable(self) -> bool: + """ + :calls: `PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable `_ + :rtype: bool + """ + status, _, _ = self._requester.requestJson("PUT", f"{self.url}/disable") + return status == 204 + + def enable(self) -> bool: + """ + :calls: `PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable `_ + :rtype: bool + """ + status, _, _ = self._requester.requestJson("PUT", f"{self.url}/enable") + return status == 204 + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "badge_url" in attributes: # pragma no branch + self._badge_url = self._makeStringAttribute(attributes["badge_url"]) + if "created_at" in attributes: # pragma no branch + self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "deleted_at" in attributes: # pragma no branch + self._deleted_at = self._makeDatetimeAttribute(attributes["deleted_at"]) + if "html_url" in attributes: # pragma no branch + self._html_url = self._makeStringAttribute(attributes["html_url"]) 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 "path" in attributes: # pragma no branch self._path = self._makeStringAttribute(attributes["path"]) if "state" in attributes: # pragma no branch self._state = self._makeStringAttribute(attributes["state"]) - if "created_at" in attributes: # pragma no branch - self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) - if "html_url" in attributes: # pragma no branch - self._html_url = self._makeStringAttribute(attributes["html_url"]) - if "badge_url" in attributes: # pragma no branch - self._badge_url = self._makeStringAttribute(attributes["badge_url"]) diff --git a/github/WorkflowJob.py b/github/WorkflowJob.py index 9688a428d3..4d979ed911 100644 --- a/github/WorkflowJob.py +++ b/github/WorkflowJob.py @@ -7,6 +7,8 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Xavi Vega # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Yossi Rozantsev <54272821+Apakottur@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -48,7 +50,7 @@ class WorkflowJob(CompletableGithubObject): def _initAttributes(self) -> None: self._check_run_url: Attribute[str] = NotSet self._completed_at: Attribute[datetime] = NotSet - self._conclusion: Attribute[str] = NotSet + self._conclusion: Attribute[str | None] = NotSet self._created_at: Attribute[datetime] = NotSet self._head_branch: Attribute[str] = NotSet self._head_sha: Attribute[str] = NotSet @@ -84,7 +86,7 @@ def completed_at(self) -> datetime: return self._completed_at.value @property - def conclusion(self) -> str: + def conclusion(self) -> str | None: self._completeIfNotSet(self._conclusion) return self._conclusion.value diff --git a/github/WorkflowRun.py b/github/WorkflowRun.py index b75d1f0230..928b930fcf 100644 --- a/github/WorkflowRun.py +++ b/github/WorkflowRun.py @@ -14,6 +14,7 @@ # Copyright 2024 Enrico Minack # # Copyright 2024 Geoffrey # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -41,6 +42,7 @@ import github.GitCommit import github.NamedUser import github.PullRequest +import github.Repository import github.WorkflowJob from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt, is_optional from github.PaginatedList import PaginatedList @@ -66,80 +68,98 @@ class WorkflowRun(CompletableGithubObject): The reference can be found here https://docs.github.com/en/rest/reference/actions#workflow-runs + The OpenAPI schema can be found at + - /components/schemas/artifact/properties/workflow_run + - /components/schemas/workflow-run + """ def _initAttributes(self) -> None: - self._id: Attribute[int] = NotSet - self._url: Attribute[str] = NotSet - self._name: Attribute[str] = NotSet - self._path: Attribute[str] = NotSet - self._head_branch: Attribute[str] = NotSet - self._head_sha: Attribute[str] = NotSet - self._run_attempt: Attribute[int] = NotSet - self._run_number: Attribute[int] = NotSet - self._created_at: Attribute[datetime] = NotSet - self._updated_at: Attribute[datetime] = NotSet self._actor: Attribute[NamedUser] = NotSet - self._pull_requests: Attribute[list[PullRequest]] = NotSet - self._status: Attribute[str] = NotSet + self._artifacts_url: Attribute[str] = NotSet + self._cancel_url: Attribute[str] = NotSet + self._check_suite_id: Attribute[int] = NotSet + self._check_suite_node_id: Attribute[str] = NotSet + self._check_suite_url: Attribute[str] = NotSet self._conclusion: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._display_title: Attribute[str] = NotSet + self._event: Attribute[str] = NotSet + self._head_branch: Attribute[str] = NotSet + self._head_commit: Attribute[GitCommit] = NotSet + self._head_repository: Attribute[Repository] = NotSet + self._head_repository_id: Attribute[int] = NotSet + self._head_sha: Attribute[str] = NotSet self._html_url: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet self._jobs_url: Attribute[str] = NotSet self._logs_url: Attribute[str] = NotSet - self._display_title: Attribute[str] = NotSet - self._event: Attribute[str] = NotSet - self._run_started_at: Attribute[datetime] = NotSet - self._check_suite_url: Attribute[str] = NotSet - self._cancel_url: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet + self._path: Attribute[str] = NotSet + self._previous_attempt_url: Attribute[str] = NotSet + self._pull_requests: Attribute[list[PullRequest]] = NotSet + self._referenced_workflows: Attribute[list[dict[str, Any]]] = NotSet + self._repository: Attribute[Repository] = NotSet + self._repository_id: Attribute[int] = NotSet self._rerun_url: Attribute[str] = NotSet - self._artifacts_url: Attribute[str] = NotSet + self._run_attempt: Attribute[int] = NotSet + self._run_number: Attribute[int] = NotSet + self._run_started_at: Attribute[datetime] = NotSet + self._status: Attribute[str] = NotSet + self._triggering_actor: Attribute[NamedUser] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._url: Attribute[str] = NotSet + self._workflow_id: Attribute[int] = NotSet self._workflow_url: Attribute[str] = NotSet - self._head_commit: Attribute[GitCommit] = NotSet - self._repository: Attribute[Repository] = NotSet - self._head_repository: Attribute[Repository] = NotSet def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "url": self._url.value}) @property - def id(self) -> int: - self._completeIfNotSet(self._id) - return self._id.value + def actor(self) -> NamedUser: + self._completeIfNotSet(self._actor) + return self._actor.value @property - def name(self) -> str: - self._completeIfNotSet(self._name) - return self._name.value + def artifacts_url(self) -> str: + self._completeIfNotSet(self._artifacts_url) + return self._artifacts_url.value @property - def head_branch(self) -> str: - self._completeIfNotSet(self._head_branch) - return self._head_branch.value + def cancel_url(self) -> str: + self._completeIfNotSet(self._cancel_url) + return self._cancel_url.value @property - def head_sha(self) -> str: - self._completeIfNotSet(self._head_sha) - return self._head_sha.value + def check_suite_id(self) -> int: + self._completeIfNotSet(self._check_suite_id) + return self._check_suite_id.value @property - def display_title(self) -> str: - self._completeIfNotSet(self._display_title) - return self._display_title.value + def check_suite_node_id(self) -> str: + self._completeIfNotSet(self._check_suite_node_id) + return self._check_suite_node_id.value @property - def path(self) -> str: - self._completeIfNotSet(self._path) - return self._path.value + def check_suite_url(self) -> str: + self._completeIfNotSet(self._check_suite_url) + return self._check_suite_url.value @property - def run_attempt(self) -> int: - self._completeIfNotSet(self._run_attempt) - return self._run_attempt.value + def conclusion(self) -> str: + self._completeIfNotSet(self._conclusion) + return self._conclusion.value @property - def run_number(self) -> int: - self._completeIfNotSet(self._run_number) - return self._run_number.value + def created_at(self) -> datetime: + self._completeIfNotSet(self._created_at) + return self._created_at.value + + @property + def display_title(self) -> str: + self._completeIfNotSet(self._display_title) + return self._display_title.value @property def event(self) -> str: @@ -147,29 +167,29 @@ def event(self) -> str: return self._event.value @property - def run_started_at(self) -> datetime: - self._completeIfNotSet(self._run_started_at) - return self._run_started_at.value + def head_branch(self) -> str: + self._completeIfNotSet(self._head_branch) + return self._head_branch.value @property - def status(self) -> str: - self._completeIfNotSet(self._status) - return self._status.value + def head_commit(self) -> GitCommit: + self._completeIfNotSet(self._head_commit) + return self._head_commit.value @property - def conclusion(self) -> str: - self._completeIfNotSet(self._conclusion) - return self._conclusion.value + def head_repository(self) -> Repository: + self._completeIfNotSet(self._head_repository) + return self._head_repository.value @property - def workflow_id(self) -> int: - self._completeIfNotSet(self._workflow_id) - return self._workflow_id.value + def head_repository_id(self) -> int: + self._completeIfNotSet(self._head_repository_id) + return self._head_repository_id.value @property - def url(self) -> str: - self._completeIfNotSet(self._url) - return self._url.value + def head_sha(self) -> str: + self._completeIfNotSet(self._head_sha) + return self._head_sha.value @property def html_url(self) -> str: @@ -177,24 +197,9 @@ def html_url(self) -> str: return self._html_url.value @property - def pull_requests(self) -> list[PullRequest]: - self._completeIfNotSet(self._pull_requests) - return self._pull_requests.value - - @property - def created_at(self) -> datetime: - self._completeIfNotSet(self._created_at) - return self._created_at.value - - @property - def updated_at(self) -> datetime: - self._completeIfNotSet(self._updated_at) - return self._updated_at.value - - @property - def actor(self) -> NamedUser: - self._completeIfNotSet(self._actor) - return self._actor.value + def id(self) -> int: + self._completeIfNotSet(self._id) + return self._id.value @property def jobs_url(self) -> str: @@ -207,28 +212,44 @@ def logs_url(self) -> str: return self._logs_url.value @property - def check_suite_url(self) -> str: - self._completeIfNotSet(self._check_suite_url) - return self._check_suite_url.value + def name(self) -> str: + self._completeIfNotSet(self._name) + return self._name.value @property - def artifacts_url(self) -> str: - self._completeIfNotSet(self._artifacts_url) - return self._artifacts_url.value + def node_id(self) -> str: + self._completeIfNotSet(self._node_id) + return self._node_id.value - def get_artifacts(self) -> PaginatedList[Artifact]: - return PaginatedList( - github.Artifact.Artifact, - self._requester, - self._artifacts_url.value, - None, - list_item="artifacts", - ) + @property + def path(self) -> str: + self._completeIfNotSet(self._path) + return self._path.value @property - def cancel_url(self) -> str: - self._completeIfNotSet(self._cancel_url) - return self._cancel_url.value + def previous_attempt_url(self) -> str: + self._completeIfNotSet(self._previous_attempt_url) + return self._previous_attempt_url.value + + @property + def pull_requests(self) -> list[PullRequest]: + self._completeIfNotSet(self._pull_requests) + return self._pull_requests.value + + @property + def referenced_workflows(self) -> list[dict[str, Any]]: + self._completeIfNotSet(self._referenced_workflows) + return self._referenced_workflows.value + + @property + def repository(self) -> Repository: + self._completeIfNotSet(self._repository) + return self._repository.value + + @property + def repository_id(self) -> int: + self._completeIfNotSet(self._repository_id) + return self._repository_id.value @property def rerun_url(self) -> str: @@ -236,24 +257,58 @@ def rerun_url(self) -> str: return self._rerun_url.value @property - def workflow_url(self) -> str: - self._completeIfNotSet(self._workflow_url) - return self._workflow_url.value + def run_attempt(self) -> int: + self._completeIfNotSet(self._run_attempt) + return self._run_attempt.value @property - def head_commit(self) -> GitCommit: - self._completeIfNotSet(self._head_commit) - return self._head_commit.value + def run_number(self) -> int: + self._completeIfNotSet(self._run_number) + return self._run_number.value @property - def repository(self) -> Repository: - self._completeIfNotSet(self._repository) - return self._repository.value + def run_started_at(self) -> datetime: + self._completeIfNotSet(self._run_started_at) + return self._run_started_at.value @property - def head_repository(self) -> Repository: - self._completeIfNotSet(self._head_repository) - return self._head_repository.value + def status(self) -> str: + self._completeIfNotSet(self._status) + return self._status.value + + @property + def triggering_actor(self) -> github.NamedUser.NamedUser: + self._completeIfNotSet(self._triggering_actor) + return self._triggering_actor.value + + @property + def updated_at(self) -> datetime: + self._completeIfNotSet(self._updated_at) + return self._updated_at.value + + @property + def url(self) -> str: + self._completeIfNotSet(self._url) + return self._url.value + + @property + def workflow_id(self) -> int: + self._completeIfNotSet(self._workflow_id) + return self._workflow_id.value + + @property + def workflow_url(self) -> str: + self._completeIfNotSet(self._workflow_url) + return self._workflow_url.value + + def get_artifacts(self) -> PaginatedList[Artifact]: + return PaginatedList( + github.Artifact.Artifact, + self._requester, + self._artifacts_url.value, + None, + list_item="artifacts", + ) def cancel(self) -> bool: """ @@ -308,24 +363,70 @@ def jobs(self, _filter: Opt[str] = NotSet) -> PaginatedList[WorkflowJob]: ) def _useAttributes(self, attributes: dict[str, Any]) -> None: - 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 "actor" in attributes: # pragma no branch + self._actor = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["actor"]) + if "artifacts_url" in attributes: # pragma no branch + self._artifacts_url = self._makeStringAttribute(attributes["artifacts_url"]) + if "cancel_url" in attributes: # pragma no branch + self._cancel_url = self._makeStringAttribute(attributes["cancel_url"]) + if "check_suite_id" in attributes: # pragma no branch + self._check_suite_id = self._makeIntAttribute(attributes["check_suite_id"]) + if "check_suite_node_id" in attributes: # pragma no branch + self._check_suite_node_id = self._makeStringAttribute(attributes["check_suite_node_id"]) + if "check_suite_url" in attributes: # pragma no branch + self._check_suite_url = self._makeStringAttribute(attributes["check_suite_url"]) + if "conclusion" in attributes: # pragma no branch + self._conclusion = self._makeStringAttribute(attributes["conclusion"]) + if "created_at" in attributes: # pragma no branch + self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "display_title" in attributes: # pragma no branch + self._display_title = self._makeStringAttribute(attributes["display_title"]) + if "event" in attributes: # pragma no branch + self._event = self._makeStringAttribute(attributes["event"]) if "head_branch" in attributes: # pragma no branch self._head_branch = self._makeStringAttribute(attributes["head_branch"]) + if "head_commit" in attributes: # pragma no branch + self._head_commit = self._makeClassAttribute(github.GitCommit.GitCommit, attributes["head_commit"]) + if "head_repository" in attributes: # pragma no branch + self._head_repository = self._makeClassAttribute( + github.Repository.Repository, attributes["head_repository"] + ) + if "head_repository_id" in attributes: # pragma no branch + self._head_repository_id = self._makeIntAttribute(attributes["head_repository_id"]) if "head_sha" in attributes: # pragma no branch self._head_sha = self._makeStringAttribute(attributes["head_sha"]) - if "display_title" in attributes: # pragma no branch - self._display_title = self._makeStringAttribute(attributes["display_title"]) + if "html_url" in attributes: # pragma no branch + self._html_url = self._makeStringAttribute(attributes["html_url"]) + if "id" in attributes: # pragma no branch + self._id = self._makeIntAttribute(attributes["id"]) + if "jobs_url" in attributes: # pragma no branch + self._jobs_url = self._makeStringAttribute(attributes["jobs_url"]) + if "logs_url" in attributes: # pragma no branch + self._logs_url = self._makeStringAttribute(attributes["logs_url"]) + 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 "path" in attributes: # pragma no branch self._path = self._makeStringAttribute(attributes["path"]) + if "previous_attempt_url" in attributes: # pragma no branch + self._previous_attempt_url = self._makeStringAttribute(attributes["previous_attempt_url"]) + if "pull_requests" in attributes: # pragma no branch + self._pull_requests = self._makeListOfClassesAttribute( + github.PullRequest.PullRequest, attributes["pull_requests"] + ) + if "referenced_workflows" in attributes: # pragma no branch + self._referenced_workflows = self._makeListOfDictsAttribute(attributes["referenced_workflows"]) + if "repository" in attributes: # pragma no branch + self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) + if "repository_id" in attributes: # pragma no branch + self._repository_id = self._makeIntAttribute(attributes["repository_id"]) + if "rerun_url" in attributes: # pragma no branch + self._rerun_url = self._makeStringAttribute(attributes["rerun_url"]) if "run_attempt" in attributes: # pragma no branch self._run_attempt = self._makeIntAttribute(attributes["run_attempt"]) if "run_number" in attributes: # pragma no branch self._run_number = self._makeIntAttribute(attributes["run_number"]) - if "event" in attributes: # pragma no branch - self._event = self._makeStringAttribute(attributes["event"]) if "run_started_at" in attributes: # pragma no branch assert attributes["run_started_at"] is None or isinstance(attributes["run_started_at"], str), attributes[ "run_started_at" @@ -333,43 +434,15 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None: self._run_started_at = self._makeDatetimeAttribute(attributes["run_started_at"]) if "status" in attributes: # pragma no branch self._status = self._makeStringAttribute(attributes["status"]) - if "conclusion" in attributes: # pragma no branch - self._conclusion = self._makeStringAttribute(attributes["conclusion"]) - if "workflow_id" in attributes: # pragma no branch - self._workflow_id = self._makeIntAttribute(attributes["workflow_id"]) - if "url" in attributes: # pragma no branch - self._url = self._makeStringAttribute(attributes["url"]) - if "html_url" in attributes: # pragma no branch - self._html_url = self._makeStringAttribute(attributes["html_url"]) - if "pull_requests" in attributes: # pragma no branch - self._pull_requests = self._makeListOfClassesAttribute( - github.PullRequest.PullRequest, attributes["pull_requests"] + if "triggering_actor" in attributes: # pragma no branch + self._triggering_actor = self._makeClassAttribute( + github.NamedUser.NamedUser, attributes["triggering_actor"] ) - if "created_at" in attributes: # pragma no branch - self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) - if "actor" in attributes: # pragma no branch - self._actor = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["actor"]) - if "jobs_url" in attributes: # pragma no branch - self._jobs_url = self._makeStringAttribute(attributes["jobs_url"]) - if "logs_url" in attributes: # pragma no branch - self._logs_url = self._makeStringAttribute(attributes["logs_url"]) - if "check_suite_url" in attributes: # pragma no branch - self._check_suite_url = self._makeStringAttribute(attributes["check_suite_url"]) - if "artifacts_url" in attributes: # pragma no branch - self._artifacts_url = self._makeStringAttribute(attributes["artifacts_url"]) - if "cancel_url" in attributes: # pragma no branch - self._cancel_url = self._makeStringAttribute(attributes["cancel_url"]) - if "rerun_url" in attributes: # pragma no branch - self._rerun_url = self._makeStringAttribute(attributes["rerun_url"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) + if "workflow_id" in attributes: # pragma no branch + self._workflow_id = self._makeIntAttribute(attributes["workflow_id"]) if "workflow_url" in attributes: # pragma no branch self._workflow_url = self._makeStringAttribute(attributes["workflow_url"]) - if "head_commit" in attributes: # pragma no branch - self._head_commit = self._makeClassAttribute(github.GitCommit.GitCommit, attributes["head_commit"]) - if "repository" in attributes: # pragma no branch - self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) - if "head_repository" in attributes: # pragma no branch - self._head_repository = self._makeClassAttribute( - github.Repository.Repository, attributes["head_repository"] - ) diff --git a/github/__init__.py b/github/__init__.py index 1a43022867..d8d05c18c4 100644 --- a/github/__init__.py +++ b/github/__init__.py @@ -21,6 +21,7 @@ # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/requirements/test.txt b/requirements/test.txt index de60e12948..58f8542035 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,5 +1,5 @@ -httpretty >=1.0.3 pytest >=5.3 pytest-cov >=2.8 pytest-github-actions-annotate-failures <1.0.0 pytest-subtests >=0.11.0 +responses diff --git a/tests/ApplicationOAuth.py b/tests/ApplicationOAuth.py index 4da60a0440..5835c8b0f6 100644 --- a/tests/ApplicationOAuth.py +++ b/tests/ApplicationOAuth.py @@ -16,6 +16,7 @@ # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2023 chantra # # Copyright 2024 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -183,6 +184,7 @@ def testRefreshAccessToken(self): def testGetAccessTokenBadCode(self): with self.assertRaises(github.BadCredentialsException) as exc: self.app.get_access_token("oauth_code_removed", state="state_removed") + self.assertIsNone(exc.exception.message) self.assertEqual(exc.exception.status, 200) self.assertIn("error", exc.exception.data) self.assertEqual(exc.exception.data["error"], "bad_verification_code") @@ -190,6 +192,7 @@ def testGetAccessTokenBadCode(self): def testGetAccessTokenUnknownError(self): with self.assertRaises(github.GithubException) as exc: self.app.get_access_token("oauth_code_removed", state="state_removed") + self.assertIsNone(exc.exception.message) self.assertEqual(exc.exception.status, 200) self.assertIn("error", exc.exception.data) self.assertEqual(exc.exception.data["error"], "some_unknown_error") @@ -197,6 +200,7 @@ def testGetAccessTokenUnknownError(self): def testRefreshAccessTokenBadCode(self): with self.assertRaises(github.BadCredentialsException) as exc: self.app.refresh_access_token("oauth_code_removed") + self.assertIsNone(exc.exception.message) self.assertEqual(exc.exception.status, 200) self.assertIn("error", exc.exception.data) self.assertEqual(exc.exception.data["error"], "bad_verification_code") @@ -204,6 +208,7 @@ def testRefreshAccessTokenBadCode(self): def testRefreshAccessTokenUnknownError(self): with self.assertRaises(github.GithubException) as exc: self.app.refresh_access_token("oauth_code_removed") + self.assertIsNone(exc.exception.message) self.assertEqual(exc.exception.status, 200) self.assertIn("error", exc.exception.data) self.assertEqual(exc.exception.data["error"], "some_unknown_error") @@ -222,12 +227,14 @@ def testCheckError(self): with self.assertRaises(github.BadCredentialsException) as exc: aoa._checkError({}, {"error": "bad_verification_code"}) + self.assertIsNone(exc.exception.message) self.assertEqual(exc.exception.status, 200) self.assertIn("error", exc.exception.data) self.assertEqual(exc.exception.data["error"], "bad_verification_code") with self.assertRaises(github.GithubException) as exc: aoa._checkError({}, {"error": "other"}) + self.assertIsNone(exc.exception.message) self.assertEqual(exc.exception.status, 200) self.assertIn("error", exc.exception.data) self.assertEqual(exc.exception.data["error"], "other") diff --git a/tests/AuthenticatedUser.py b/tests/AuthenticatedUser.py index d4e0da8d83..f9ebcbf3d8 100644 --- a/tests/AuthenticatedUser.py +++ b/tests/AuthenticatedUser.py @@ -32,6 +32,7 @@ # Copyright 2024 Eduardo Ramírez # # Copyright 2024 Enrico Minack # # Copyright 2024 Oskar Jansson <56458534+janssonoskar@users.noreply.github.com># +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -762,11 +763,13 @@ def testGetInvitations(self): self.assertEqual(invitation.permissions, "write") created_at = datetime(2019, 6, 27, 11, 47, tzinfo=timezone.utc) self.assertEqual(invitation.created_at, created_at) + self.assertEqual(invitation.expired, True) self.assertEqual( invitation.url, "https://api.github.com/user/repository_invitations/17285388", ) self.assertEqual(invitation.html_url, "https://github.com/jacquev6/PyGithub/invitations") + self.assertEqual(invitation.node_id, "MDIwOlJlcG9zaXRvcnlJbnZpdGF0aW9uMTcyODUzODg=") self.assertEqual(invitation.repository.name, "PyGithub") self.assertEqual(invitation.invitee.login, "foobar-test1") self.assertEqual(invitation.inviter.login, "jacquev6") diff --git a/tests/Authentication.py b/tests/Authentication.py index ee516a607b..dd50f0d66f 100644 --- a/tests/Authentication.py +++ b/tests/Authentication.py @@ -21,6 +21,8 @@ # Copyright 2024 Bernhard M. Wiedemann # # Copyright 2024 Enrico Minack # # Copyright 2024 Jonathan Kliem # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Neel Malik <41765022+neel-m@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -91,8 +93,8 @@ def testJWTAuthentication(self): def testAppAuthentication(self): with self.assertWarns(DeprecationWarning) as warning: app_auth = github.AppAuthentication( - app_id=self.app_auth.app_id, - private_key=self.app_auth.private_key, + app_id=APP_ID, + private_key=PRIVATE_KEY, installation_id=29782936, ) g = github.Github(app_auth=app_auth) @@ -337,7 +339,7 @@ def testAuthorizationHeaderWithToken(self): def testAddingCustomHeaders(self): requester = github.Github(auth=CustomAuth())._Github__requester - def requestRaw(cnx, verb, url, requestHeaders, encoded_input): + def requestRaw(cnx, verb, url, requestHeaders, encoded_input, stream=False, follow_302_redirect=False): self.modifiedHeaders = requestHeaders return Mock(), {}, Mock() diff --git a/tests/Branch.py b/tests/Branch.py index 3458774e45..c44ba64ac2 100644 --- a/tests/Branch.py +++ b/tests/Branch.py @@ -18,7 +18,9 @@ # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Benjamin K <53038537+treee111@users.noreply.github.com> # +# Copyright 2024 Benjamin K. <53038537+treee111@users.noreply.github.com> # # Copyright 2024 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -38,6 +40,8 @@ # # ################################################################################ +from __future__ import annotations + import github from . import Framework @@ -52,14 +56,26 @@ def setUp(self): self.organization_branch = self.g.get_repo("PyGithub/PyGithub", lazy=True).get_branch("master") def testAttributes(self): + self.assertEqual( + self.branch._links, + { + "self": "https://api.github.com/repos/jacquev6/PyGithub/branches/topic/RewriteWithGeneratedCode", + "html": "https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode", + }, + ) + self.assertEqual(self.branch.commit.sha, "f23da453917a36c8bd48ab8d99e5fa7221884342") self.assertEqual(self.branch.name, "topic/RewriteWithGeneratedCode") - self.assertEqual(self.branch.commit.sha, "1292bf0e22c796e91cc3d6e24b544aece8c21f2a") + self.assertEqual(self.branch.commit.sha, "f23da453917a36c8bd48ab8d99e5fa7221884342") + self.assertIsNone(self.branch.pattern) + self.assertEqual(self.branch.protected, False) + self.assertIsNone(self.branch.protection.url) self.assertEqual( self.branch.protection_url, "https://api.github.com/repos/jacquev6/PyGithub/branches/topic/RewriteWithGeneratedCode/protection", ) self.assertFalse(self.branch.protected) self.assertEqual(repr(self.branch), 'Branch(name="topic/RewriteWithGeneratedCode")') + self.assertIsNone(self.branch.required_approving_review_count) def testEditProtection(self): self.protected_branch.edit_protection( @@ -85,6 +101,7 @@ def testEditProtection(self): def testEditProtectionDismissalUsersWithUserOwnedBranch(self): with self.assertRaises(github.GithubException) as raisedexp: self.protected_branch.edit_protection(dismissal_users=["jacquev6"]) + self.assertEqual(raisedexp.exception.message, "Validation Failed") self.assertEqual(raisedexp.exception.status, 422) self.assertEqual( raisedexp.exception.data, @@ -98,6 +115,7 @@ def testEditProtectionDismissalUsersWithUserOwnedBranch(self): def testEditProtectionPushRestrictionsWithUserOwnedBranch(self): with self.assertRaises(github.GithubException) as raisedexp: self.protected_branch.edit_protection(user_push_restrictions=["jacquev6"], team_push_restrictions=[]) + self.assertEqual(raisedexp.exception.message, "Validation Failed") self.assertEqual(raisedexp.exception.status, 422) self.assertEqual( raisedexp.exception.data, @@ -135,6 +153,7 @@ def testRemoveProtection(self): self.assertFalse(protected_branch.protected) with self.assertRaises(github.GithubException) as raisedexp: protected_branch.get_protection() + self.assertEqual(raisedexp.exception.message, "Branch not protected") self.assertEqual(raisedexp.exception.status, 404) self.assertEqual( raisedexp.exception.data, @@ -150,10 +169,21 @@ def testEditRequiredStatusChecks(self): self.assertTrue(required_status_checks.strict) self.assertEqual(required_status_checks.contexts, ["foo/bar"]) + def testEditRequiredStatusChecksContexts(self): + self.protected_branch.edit_required_status_checks(contexts=["check1", "check2"]) + required_status_checks = self.protected_branch.get_required_status_checks() + self.assertEqual(required_status_checks.contexts, ["check1", "check2"]) + + def testEditRequiredStatusChecksChecks(self): + self.protected_branch.edit_required_status_checks(checks=["check1", ("check2", -1), ("check3", 123456)]) + required_status_checks = self.protected_branch.get_required_status_checks() + self.assertEqual(required_status_checks.contexts, ["check1", "check2", "check3"]) + def testRemoveRequiredStatusChecks(self): self.protected_branch.remove_required_status_checks() with self.assertRaises(github.GithubException) as raisedexp: self.protected_branch.get_required_status_checks() + self.assertEqual(raisedexp.exception.message, "Required status checks not enabled") self.assertEqual(raisedexp.exception.status, 404) self.assertEqual( raisedexp.exception.data, @@ -176,6 +206,7 @@ def testEditRequiredPullRequestReviews(self): def testEditRequiredPullRequestReviewsWithTooLargeApprovingReviewCount(self): with self.assertRaises(github.GithubException) as raisedexp: self.protected_branch.edit_required_pull_request_reviews(required_approving_review_count=9) + self.assertEqual(raisedexp.exception.message, "Invalid request.\n\n9 must be less than or equal to 6.") self.assertEqual(raisedexp.exception.status, 422) self.assertEqual( raisedexp.exception.data, @@ -188,6 +219,10 @@ def testEditRequiredPullRequestReviewsWithTooLargeApprovingReviewCount(self): def testEditRequiredPullRequestReviewsWithUserBranchAndDismissalUsers(self): with self.assertRaises(github.GithubException) as raisedexp: self.protected_branch.edit_required_pull_request_reviews(dismissal_users=["jacquev6"]) + self.assertEqual( + raisedexp.exception.message, + "Dismissal restrictions are supported only for repositories owned by an organization.", + ) self.assertEqual(raisedexp.exception.status, 422) self.assertEqual( raisedexp.exception.data, @@ -279,6 +314,7 @@ def testRemovePushRestrictions(self): self.organization_branch.remove_push_restrictions() with self.assertRaises(github.GithubException) as raisedexp: list(self.organization_branch.get_user_push_restrictions()) + self.assertEqual(raisedexp.exception.message, "Push restrictions not enabled") self.assertEqual(raisedexp.exception.status, 404) self.assertEqual( raisedexp.exception.data, diff --git a/tests/BranchProtection.py b/tests/BranchProtection.py index cee93aff58..6afb3b947c 100644 --- a/tests/BranchProtection.py +++ b/tests/BranchProtection.py @@ -15,6 +15,7 @@ # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Benjamin K <53038537+treee111@users.noreply.github.com> # # Copyright 2024 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -34,6 +35,8 @@ # # ################################################################################ +from __future__ import annotations + from . import Framework @@ -43,9 +46,26 @@ def setUp(self): self.branch_protection = self.g.get_repo("curvewise-forks/PyGithub").get_branch("master").get_protection() def testAttributes(self): + self.assertEqual(self.branch_protection.allow_deletions, False) + self.assertEqual(self.branch_protection.allow_force_pushes, False) + self.assertEqual(self.branch_protection.allow_fork_syncing, False) + self.assertEqual(self.branch_protection.block_creations, False) + self.assertIsNone(self.branch_protection.enabled) + self.assertEqual(self.branch_protection.enforce_admins, True) + self.assertEqual(self.branch_protection.lock_branch, False) + self.assertIsNone(self.branch_protection.name) + self.assertIsNone(self.branch_protection.protection_url) + self.assertEqual(self.branch_protection.required_conversation_resolution, False) + self.assertEqual(self.branch_protection.required_linear_history, True) + self.assertEqual( + self.branch_protection.required_pull_request_reviews.url, + "https://api.github.com/repos/curvewise-forks/PyGithub/branches/master/protection/required_pull_request_reviews", + ) + self.assertEqual(self.branch_protection.required_signatures, False) self.assertTrue(self.branch_protection.required_status_checks.strict) self.assertEqual(self.branch_protection.required_status_checks.contexts, ["build (3.10)"]) self.assertTrue(self.branch_protection.required_linear_history) + self.assertIsNone(self.branch_protection.restrictions) self.assertEqual( self.branch_protection.url, "https://api.github.com/repos/curvewise-forks/PyGithub/branches/master/protection", diff --git a/tests/CheckRun.py b/tests/CheckRun.py index 2c7395e194..53a3d4a7dd 100644 --- a/tests/CheckRun.py +++ b/tests/CheckRun.py @@ -4,6 +4,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -23,6 +24,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -33,45 +36,41 @@ def setUp(self): super().setUp() self.repo = self.g.get_repo("PyGithub/PyGithub") self.testrepo = self.g.get_repo("dhruvmanila/pygithub-testing") - self.check_run_id = 1039891953 - self.check_run_ref = "6bc9ecc8c849df4e45e60c1e6a5df8876180a20a" + self.check_run_id = 34942661139 + self.check_run_ref = "10a7135a04f71e6101f8b013aded8a662d08fd1f" self.check_run = self.repo.get_check_run(self.check_run_id) self.commit = self.repo.get_commit(self.check_run_ref) def testAttributes(self): self.assertEqual(self.check_run.app.id, 15368) self.assertEqual(self.check_run.app.slug, "github-actions") - self.assertEqual(self.check_run.check_suite_id, 1110219217) + self.assertEqual(self.check_run.check_suite.id, 32504127411) self.assertEqual( - self.check_run.completed_at, - datetime(2020, 8, 28, 4, 21, 21, tzinfo=timezone.utc), + self.check_run.check_suite.url, "https://api.github.com/repos/PyGithub/PyGithub/check-suites/32504127411" ) + # check_suite is lazy, so accessing a property other than id or url fetches the suite object + self.assertEqual(self.check_run.check_suite.head_sha, "10a7135a04f71e6101f8b013aded8a662d08fd1f") + self.assertEqual(self.check_run.check_suite_id, 32504127411) + self.assertEqual(self.check_run.completed_at, datetime(2024, 12, 28, 16, 53, 10, tzinfo=timezone.utc)) self.assertEqual(self.check_run.conclusion, "success") + self.assertIsNone(self.check_run.deployment) self.assertEqual( - self.check_run.details_url, - "https://github.com/PyGithub/PyGithub/runs/1039891953", + self.check_run.details_url, "https://github.com/PyGithub/PyGithub/actions/runs/12528252236/job/34942661139" ) - self.assertEqual(self.check_run.external_id, "6b512fe7-587c-5ecc-c4a3-03b7358c152d") - self.assertEqual(self.check_run.head_sha, "6bc9ecc8c849df4e45e60c1e6a5df8876180a20a") + self.assertEqual(self.check_run.external_id, "8ece7711-e8e8-5d87-8f8a-6791d424ecd6") + self.assertEqual(self.check_run.head_sha, "10a7135a04f71e6101f8b013aded8a662d08fd1f") self.assertEqual( - self.check_run.html_url, - "https://github.com/PyGithub/PyGithub/runs/1039891953", + self.check_run.html_url, "https://github.com/PyGithub/PyGithub/actions/runs/12528252236/job/34942661139" ) - self.assertEqual(self.check_run.id, 1039891953) - self.assertEqual(self.check_run.name, "test (Python 3.8)") - self.assertEqual(self.check_run.node_id, "MDg6Q2hlY2tSdW4xMDM5ODkxOTUz") - self.assertEqual(self.check_run.output.annotations_count, 0) + self.assertEqual(self.check_run.id, 34942661139) + self.assertEqual(self.check_run.name, "test (Python 3.8 on Ubuntu)") + self.assertEqual(self.check_run.node_id, "CR_kwDOADYVqs8AAAAIIr6yEw") + self.assertEqual(self.check_run.output.annotations_count, 1) self.assertEqual(len(self.check_run.pull_requests), 0) - self.assertEqual( - self.check_run.started_at, - datetime(2020, 8, 28, 4, 20, 27, tzinfo=timezone.utc), - ) + self.assertEqual(self.check_run.started_at, datetime(2024, 12, 28, 16, 51, 59, tzinfo=timezone.utc)) self.assertEqual(self.check_run.status, "completed") - self.assertEqual( - self.check_run.url, - "https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953", - ) - self.assertEqual(repr(self.check_run), 'CheckRun(id=1039891953, conclusion="success")') + self.assertEqual(self.check_run.url, "https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139") + self.assertEqual(repr(self.check_run), 'CheckRun(id=34942661139, conclusion="success")') def testCheckRunOutputAttributes(self): check_run_output = self.repo.get_check_run(1039891917).output @@ -93,7 +92,7 @@ def testGetCheckRunsForRef(self): self.assertEqual(check_runs.totalCount, 4) self.assertListEqual( [check_run.id for check_run in check_runs], - [1039891953, 1039891931, 1039891917, 1039891902], + [34942661139, 1039891931, 1039891917, 1039891902], ) def testGetCheckRunsForRefFilterByCheckName(self): @@ -106,7 +105,7 @@ def testGetCheckRunsForRefFilterByStatus(self): self.assertEqual(completed_check_runs.totalCount, 4) self.assertListEqual( [check_run.id for check_run in completed_check_runs], - [1039891953, 1039891931, 1039891917, 1039891902], + [34942661139, 1039891931, 1039891917, 1039891902], ) queued_check_runs = self.commit.get_check_runs(status="queued") self.assertEqual(queued_check_runs.totalCount, 0) @@ -119,12 +118,12 @@ def testGetCheckRunsForRefFilterByFilter(self): self.assertEqual(latest_check_runs.totalCount, 4) self.assertListEqual( [check_run.id for check_run in latest_check_runs], - [1039891953, 1039891931, 1039891917, 1039891902], + [34942661139, 1039891931, 1039891917, 1039891902], ) self.assertEqual(all_check_runs.totalCount, 4) self.assertListEqual( [check_run.id for check_run in all_check_runs], - [1039891953, 1039891931, 1039891917, 1039891902], + [34942661139, 1039891931, 1039891917, 1039891902], ) def testCreateCheckRunInProgress(self): @@ -332,6 +331,10 @@ def testCheckRunAnnotationAttributes(self): self.assertIsNone(annotation.start_column) self.assertEqual(annotation.start_line, 2) self.assertEqual(annotation.title, "Spell Checker") + self.assertEqual( + annotation.blob_href, + "https://github.com/dhruvmanila/pygithub-testing/blob/0283d46537193f1fed7d46859f15c5304b9836f9/README.md", + ) self.assertEqual(repr(annotation), 'CheckRunAnnotation(title="Spell Checker")') def testListCheckRunAnnotations(self): diff --git a/tests/CheckSuite.py b/tests/CheckSuite.py index 66d46d4820..b95b434ecf 100644 --- a/tests/CheckSuite.py +++ b/tests/CheckSuite.py @@ -4,6 +4,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -23,6 +24,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -57,9 +60,12 @@ def testAttributes(self): self.assertEqual(cs.id, self.check_suite_id) self.assertEqual(cs.latest_check_runs_count, 2) self.assertEqual(cs.id, self.check_suite_id) + self.assertEqual(cs.node_id, "MDEwOkNoZWNrU3VpdGUxMDA0NTAzODM3") self.assertEqual(len(cs.pull_requests), 1) self.assertEqual(cs.pull_requests[0].id, 462527907) self.assertEqual(cs.repository.url, "https://api.github.com/repos/wrecker/PySample") + self.assertEqual(cs.rerequestable, True) + self.assertEqual(cs.runs_rerequestable, True) self.assertEqual(cs.status, "completed") self.assertEqual(cs.updated_at, datetime(2020, 8, 4, 5, 7, 40, tzinfo=timezone.utc)) self.assertEqual( diff --git a/tests/Commit.py b/tests/Commit.py index 21c1a0804f..b1880dcbc8 100644 --- a/tests/Commit.py +++ b/tests/Commit.py @@ -16,7 +16,9 @@ # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Enrico Minack # +# Copyright 2024 Kian-Meng Ang # # Copyright 2024 iarspider # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -36,6 +38,8 @@ # # ################################################################################ +from __future__ import annotations + from . import Framework @@ -47,6 +51,10 @@ def setUp(self): def testAttributes(self): self.assertEqual(self.commit.author.login, "jacquev6") + self.assertEqual( + self.commit.comments_url, + "https://api.github.com/repos/jacquev6/PyGithub/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a/comments", + ) self.assertEqual( self.commit.commit.url, "https://api.github.com/repos/jacquev6/PyGithub/git/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a", @@ -57,7 +65,7 @@ def testAttributes(self): self.assertEqual(self.commit.files[0].additions, 0) self.assertEqual( self.commit.files[0].blob_url, - "https://github.com/jacquev6/PyGithub/blob/1292bf0e22c796e91cc3d6e24b544aece8c21f2a/github/GithubObjects/GitAuthor.py", + "https://github.com/jacquev6/PyGithub/blob/1292bf0e22c796e91cc3d6e24b544aece8c21f2a/github%2FGithubObjects%2FGitAuthor.py", ) self.assertEqual(self.commit.files[0].changes, 20) self.assertEqual(self.commit.files[0].deletions, 20) @@ -65,24 +73,39 @@ def testAttributes(self): self.assertTrue(isinstance(self.commit.files[0].patch, str)) self.assertEqual( self.commit.files[0].raw_url, - "https://github.com/jacquev6/PyGithub/raw/1292bf0e22c796e91cc3d6e24b544aece8c21f2a/github/GithubObjects/GitAuthor.py", + "https://github.com/jacquev6/PyGithub/raw/1292bf0e22c796e91cc3d6e24b544aece8c21f2a/github%2FGithubObjects%2FGitAuthor.py", ) - self.assertEqual(self.commit.files[0].sha, "1292bf0e22c796e91cc3d6e24b544aece8c21f2a") + self.assertEqual(self.commit.files[0].sha, "ca6a3c616fc1367b6d01d04a7cf6ee27cf216f26") self.assertEqual(self.commit.files[0].status, "modified") + self.assertEqual( + self.commit.html_url, "https://github.com/jacquev6/PyGithub/commit/1292bf0e22c796e91cc3d6e24b544aece8c21f2a" + ) + self.assertEqual( + self.commit.node_id, "MDY6Q29tbWl0NDQ2MzY1NzM1OjEyOTJiZjBlMjJjNzk2ZTkxY2MzZDZlMjRiNTQ0YWVjZThjMjFmMmE=" + ) self.assertEqual(len(self.commit.parents), 1) self.assertEqual(self.commit.parents[0].sha, "b46ed0dfde5ad02d3b91eb54a41c5ed960710eae") + self.assertIsNone(self.commit.repository) + self.assertEqual(self.commit.score, None) self.assertEqual(self.commit.sha, "1292bf0e22c796e91cc3d6e24b544aece8c21f2a") self.assertEqual(self.commit.stats.deletions, 20) self.assertEqual(self.commit.stats.additions, 0) self.assertEqual(self.commit.stats.total, 20) + self.assertIsNone(self.commit.text_matches) self.assertEqual( self.commit.url, "https://api.github.com/repos/jacquev6/PyGithub/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a", ) self.assertEqual(self.commit.commit.tree.sha, "4c6bd50994f0f9823f898b1c6c964ad7d4fa11ab") - self.assertEqual( - repr(self.commit), - 'Commit(sha="1292bf0e22c796e91cc3d6e24b544aece8c21f2a")', + self.assertEqual(repr(self.commit), 'Commit(sha="1292bf0e22c796e91cc3d6e24b544aece8c21f2a")') + + def testGetBranchesWhereHead(self): + repo = self.g.get_repo("PyGithub/PyGithub") + commit = repo.get_commit("0791cc7b1a706ab5d7c607ddff35de4d486ba3e9") + self.assertListKeyEqual( + commit.get_branches_where_head(), + lambda b: b.name, + ["release-v2-0"], ) def testGetComments(self): @@ -132,12 +155,12 @@ def testCreateStatusWithAllParameters(self): status = self.commit.create_status( "success", "https://github.com/jacquev6/PyGithub/issues/67", - "Status successfuly created by PyGithub", + "Status successfully created by PyGithub", ) self.assertEqual(status.id, 277040) self.assertEqual(status.state, "success") self.assertEqual(status.target_url, "https://github.com/jacquev6/PyGithub/issues/67") - self.assertEqual(status.description, "Status successfuly created by PyGithub") + self.assertEqual(status.description, "Status successfully created by PyGithub") def testGetPulls(self): commit = self.g.get_user().get_repo("PyGithub").get_commit("e44d11d565c022496544dd6ed1f19a8d718c2b0c") diff --git a/tests/CommitComment.py b/tests/CommitComment.py index e1b2f5cdd8..5e58821a7f 100644 --- a/tests/CommitComment.py +++ b/tests/CommitComment.py @@ -15,6 +15,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -34,6 +35,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -42,36 +45,41 @@ class CommitComment(Framework.TestCase): def setUp(self): super().setUp() - self.comment = self.g.get_user().get_repo("PyGithub").get_comment(1361949) + self.comment = self.g.get_repo("PyGithub/PyGithub").get_comment(1362000) def testAttributes(self): - self.assertEqual(self.comment.body, "Comment created by PyGithub") + self.assertEqual(self.comment.author_association, "MEMBER") + self.assertEqual(self.comment.body, "Comment created by PyGithub\n") self.assertEqual(self.comment.commit_id, "6945921c529be14c3a8f566dd1e483674516d46d") - self.assertEqual( - self.comment.created_at, - datetime(2012, 5, 22, 18, 40, 18, tzinfo=timezone.utc), - ) + self.assertEqual(self.comment.created_at, datetime(2012, 5, 22, 18, 49, 34, tzinfo=timezone.utc)) self.assertEqual( self.comment.html_url, - "https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1361949", + "https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362000", ) - self.assertEqual(self.comment.id, 1361949) - self.assertEqual(self.comment.line, None) - self.assertEqual(self.comment.path, None) + self.assertEqual(self.comment.id, 1362000) + self.assertEqual(self.comment.line, 26) + self.assertEqual(self.comment.node_id, "MDEzOkNvbW1pdENvbW1lbnQxMzYyMDAw") + self.assertEqual(self.comment.path, "codegen/templates/GithubObject.MethodBody.UseResult.py") self.assertEqual(self.comment.position, None) self.assertEqual( - self.comment.updated_at, - datetime(2012, 5, 22, 18, 40, 18, tzinfo=timezone.utc), - ) - self.assertEqual( - self.comment.url, - "https://api.github.com/repos/jacquev6/PyGithub/comments/1361949", + self.comment.reactions, + { + "url": "https://api.github.com/repos/PyGithub/PyGithub/comments/1362000/reactions", + "total_count": 2, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 1, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0, + }, ) + self.assertEqual(self.comment.updated_at, datetime(2012, 5, 22, 18, 49, 34, tzinfo=timezone.utc)) + self.assertEqual(self.comment.url, "https://api.github.com/repos/PyGithub/PyGithub/comments/1362000") self.assertEqual(self.comment.user.login, "jacquev6") - self.assertEqual( - repr(self.comment), - 'CommitComment(user=NamedUser(login="jacquev6"), id=1361949)', - ) + self.assertEqual(repr(self.comment), 'CommitComment(user=NamedUser(login="jacquev6"), id=1362000)') def testEdit(self): self.comment.edit("Comment edited by PyGithub") diff --git a/tests/CommitStatus.py b/tests/CommitStatus.py index c2118e6a24..ec85dc10fa 100644 --- a/tests/CommitStatus.py +++ b/tests/CommitStatus.py @@ -15,6 +15,8 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2024 Kian-Meng Ang # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -34,6 +36,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -45,29 +49,39 @@ def setUp(self): self.statuses = list( self.g.get_user().get_repo("PyGithub").get_commit("1292bf0e22c796e91cc3d6e24b544aece8c21f2a").get_statuses() ) + self.status = self.statuses[0] def testAttributes(self): + self.assertIsNone(self.status.avatar_url) + self.assertEqual(self.status.context, "build") self.assertEqual( - self.statuses[0].created_at, + self.status.created_at, datetime(2012, 9, 8, 11, 30, 56, tzinfo=timezone.utc), ) + self.assertEqual(self.status.creator.login, "jacquev6") + self.assertEqual(self.status.description, "Status successfully created by PyGithub") + self.assertEqual(self.status.id, 277040) + self.assertIsNone(self.status.node_id) + self.assertEqual(self.status.state, "success") + self.assertEqual(self.status.target_url, "https://github.com/jacquev6/PyGithub/issues/67") self.assertEqual( - self.statuses[0].updated_at, + self.status.updated_at, datetime(2012, 9, 8, 11, 30, 56, tzinfo=timezone.utc), ) - self.assertEqual(self.statuses[0].creator.login, "jacquev6") - self.assertEqual(self.statuses[0].description, "Status successfuly created by PyGithub") + self.assertEqual(self.status.creator.login, "jacquev6") + self.assertEqual(self.status.description, "Status successfully created by PyGithub") self.assertEqual(self.statuses[1].description, None) - self.assertEqual(self.statuses[0].id, 277040) - self.assertEqual(self.statuses[0].state, "success") + self.assertEqual(self.status.id, 277040) + self.assertEqual(self.status.state, "success") self.assertEqual(self.statuses[1].state, "pending") - self.assertEqual(self.statuses[0].context, "build") + self.assertEqual(self.status.context, "build") self.assertEqual( - self.statuses[0].target_url, + self.status.target_url, "https://github.com/jacquev6/PyGithub/issues/67", ) self.assertEqual(self.statuses[1].target_url, None) self.assertEqual( - repr(self.statuses[0]), + repr(self.status), 'CommitStatus(state="success", id=277040, context="build")', ) + self.assertEqual(self.status.url, "https://api.github.com/repos/jacquev6/PyGithub/statuses/277040") diff --git a/tests/ConditionalRequestUpdate.py b/tests/ConditionalRequestUpdate.py index c4cb09ed37..d3f1ad48ae 100644 --- a/tests/ConditionalRequestUpdate.py +++ b/tests/ConditionalRequestUpdate.py @@ -14,6 +14,8 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2024 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -39,7 +41,7 @@ class ConditionalRequestUpdate(Framework.TestCase): def setUp(self): super().setUp() - self.repo = self.g.get_repo("akfish/PyGithub", lazy=False) + self.repo = self.g.get_repo("akfish/PyGithub") def testDidNotUpdate(self): self.assertFalse(self.repo.update(), msg="The repo is not changed. But update() != False") @@ -51,5 +53,5 @@ def testDidUpdate(self): ) def testUpdateObjectWithoutEtag(self): - r = self.g.get_repo("jacquev6/PyGithub", lazy=False) + r = self.g.get_repo("jacquev6/PyGithub") self.assertTrue(r.update()) diff --git a/tests/Connection.py b/tests/Connection.py index b6347b8b12..3398941191 100644 --- a/tests/Connection.py +++ b/tests/Connection.py @@ -7,6 +7,8 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Maja Massarini <2678400+majamassarini@users.noreply.github.com># # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -31,8 +33,8 @@ from io import StringIO from unittest.mock import Mock -import httpretty # type: ignore -import pytest # type: ignore +import pytest +import responses from . import Framework @@ -63,15 +65,16 @@ class RecordingMockConnection(Framework.RecordingConnection): - def __init__(self, file, protocol, host, port, realConnection): + def __init__(self, protocol, host, port, realConnection): self._realConnection = realConnection - super().__init__(file, protocol, host, port) + super().__init__(protocol, host, port) @pytest.mark.parametrize( ("replaying_connection_class", "protocol", "response_body", "expected_recording"), list(tuple(itertools.chain(*p)) for p in PARAMETERS), ) +@responses.activate def testRecordAndReplay(replaying_connection_class, protocol, response_body, expected_recording): file = StringIO() host = "api.github.com" @@ -88,7 +91,8 @@ def testRecordAndReplay(replaying_connection_class, protocol, response_body, exp connection.getresponse.return_value = response # write mock response to buffer - recording_connection = RecordingMockConnection(file, protocol, host, None, lambda *args, **kwds: connection) + RecordingMockConnection.setOpenFile(lambda slf, mode: file) + recording_connection = RecordingMockConnection(protocol, host, None, lambda *args, **kwds: connection) recording_connection.request(verb, url, None, headers) recording_connection.getresponse() recording_connection.close() @@ -101,15 +105,9 @@ def testRecordAndReplay(replaying_connection_class, protocol, response_body, exp # dict literal, so keys not in guaranteed order assert file_value_lines[6:] == expected_recording_lines[6:] - # required for replay to work as expected - httpretty.enable(allow_net_connect=False) - # rewind buffer and attempt to replay response from it file.seek(0) - replaying_connection = replaying_connection_class(file, host=host, port=None) + replaying_connection_class.setOpenFile(lambda slf, mode: file) + replaying_connection = replaying_connection_class(host=host, port=None) replaying_connection.request(verb, url, None, headers) replaying_connection.getresponse() - - # not necessarily required for subsequent tests - httpretty.disable() - httpretty.reset() diff --git a/tests/ContentFile.py b/tests/ContentFile.py index cdc3ba6ba4..de07d90050 100644 --- a/tests/ContentFile.py +++ b/tests/ContentFile.py @@ -14,6 +14,7 @@ # Copyright 2019 Wan Liuyang # # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,26 +34,56 @@ # # ################################################################################ +from __future__ import annotations + from . import Framework class ContentFile(Framework.TestCase): def setUp(self): super().setUp() - self.file = self.g.get_user().get_repo("PyGithub").get_readme() + self.file = self.g.get_repo("PyGithub/PyGithub").get_readme() def testAttributes(self): - self.assertEqual(self.file.type, "file") + self.assertEqual( + self.file._links, + { + "self": "https://api.github.com/repos/PyGithub/PyGithub/contents/README.md?ref=main", + "git": "https://api.github.com/repos/PyGithub/PyGithub/git/blobs/0d9df5bfb7d4b93443c130bc8f4eea5dd3f01205", + "html": "https://github.com/PyGithub/PyGithub/blob/main/README.md", + }, + ) + self.assertIsNone(self.file.commit) + self.assertTrue(self.file.content.startswith("IyBQeUdpdEh1YgoKWyFbUHlQSV0oaHR0cHM6Ly9p")) + self.assertEqual(self.file.download_url, "https://raw.githubusercontent.com/PyGithub/PyGithub/main/README.md") self.assertEqual(self.file.encoding, "base64") - self.assertEqual(self.file.size, 7531) - self.assertEqual(self.file.name, "ReadMe.md") - self.assertEqual(self.file.path, "ReadMe.md") - self.assertEqual(len(self.file.content), 10212) - self.assertEqual(len(self.file.decoded_content), 7531) - self.assertEqual(self.file.sha, "5628799a7d517a4aaa0c1a7004d07569cd154df0") + self.assertIsNone(self.file.file_size) self.assertEqual( - self.file.download_url, - "https://raw.githubusercontent.com/jacquev6/PyGithub/master/README.md", + self.file.git_url, + "https://api.github.com/repos/PyGithub/PyGithub/git/blobs/0d9df5bfb7d4b93443c130bc8f4eea5dd3f01205", ) + self.assertEqual(self.file.html_url, "https://github.com/PyGithub/PyGithub/blob/main/README.md") + self.assertIsNone(self.file.language) + self.assertIsNone(self.file.last_modified_at) + self.assertIsNone(self.file.license) + self.assertIsNone(self.file.line_numbers) + self.assertEqual(self.file.name, "README.md") + self.assertEqual(self.file.path, "README.md") + self.assertEqual(self.file.score, None) + self.assertEqual(self.file.sha, "0d9df5bfb7d4b93443c130bc8f4eea5dd3f01205") + self.assertEqual(self.file.size, 2524) + self.assertIsNone(self.file.submodule_git_url) + self.assertIsNone(self.file.target) + self.assertIsNone(self.file.text_matches) + self.assertEqual(self.file.type, "file") + self.assertEqual(self.file.encoding, "base64") + self.assertEqual(self.file.size, 2524) + self.assertEqual(self.file.name, "README.md") + self.assertEqual(self.file.path, "README.md") + self.assertEqual(len(self.file.content), 3425) + self.assertEqual(len(self.file.decoded_content), 2524) + self.assertEqual(self.file.sha, "0d9df5bfb7d4b93443c130bc8f4eea5dd3f01205") + self.assertEqual(self.file.download_url, "https://raw.githubusercontent.com/PyGithub/PyGithub/main/README.md") self.assertIsNone(self.file.license) - self.assertEqual(repr(self.file), 'ContentFile(path="ReadMe.md")') + self.assertEqual(repr(self.file), 'ContentFile(path="README.md")') + self.assertEqual(self.file.url, "https://api.github.com/repos/PyGithub/PyGithub/contents/README.md?ref=main") diff --git a/tests/Copilot.py b/tests/Copilot.py new file mode 100644 index 0000000000..d49c06d4d6 --- /dev/null +++ b/tests/Copilot.py @@ -0,0 +1,72 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2024 Pasha Fateev # +# Copyright 2025 Enrico Minack # +# # +# 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 . # +# # +################################################################################ + +from datetime import datetime, timezone + +from . import Framework + + +class Copilot(Framework.TestCase): + def setUp(self): + super().setUp() + self.org_name = "BeaverSoftware" + self.copilot = self.g.get_organization(self.org_name).get_copilot() + + def testAttributes(self): + self.assertEqual(self.copilot.org_name, "BeaverSoftware") + self.assertEqual(repr(self.copilot), 'Copilot(org_name="BeaverSoftware")') + + seats = list(self.copilot.get_seats()) + self.assertEqual(len(seats), 1) + seat = seats[0] + self.assertEqual(seat.created_at, datetime(2010, 7, 9, 6, 10, 6, tzinfo=timezone.utc)) + self.assertEqual(seat.updated_at, datetime(2012, 5, 26, 11, 25, 48, tzinfo=timezone.utc)) + self.assertEqual(seat.pending_cancellation_date, None) + self.assertEqual(seat.last_activity_at, datetime(2012, 5, 26, 14, 59, 39, tzinfo=timezone.utc)) + self.assertEqual(seat.last_activity_editor, "vscode/1.0.0") + self.assertEqual(seat.plan_type, "business") + self.assertEqual(seat.assignee.login, "pashafateev") + self.assertEqual(repr(seat), 'CopilotSeat(assignee=NamedUser(login="pashafateev"))') + + def testGetSeats(self): + seats = self.copilot.get_seats() + self.assertListKeyEqual(seats, lambda s: s.assignee.login, ["pashafateev"]) + + def testAddSeats(self): + seats_created = self.copilot.add_seats(["pashafateev"]) + self.assertEqual(seats_created, 1) + + def testRemoveSeats(self): + seats_cancelled = self.copilot.remove_seats(["pashafateev"]) + self.assertEqual(seats_cancelled, 1) diff --git a/tests/DependabotAlert.py b/tests/DependabotAlert.py index 1c9032b522..672bcbb5cf 100644 --- a/tests/DependabotAlert.py +++ b/tests/DependabotAlert.py @@ -2,6 +2,7 @@ # # # Copyright 2024 Enrico Minack # # Copyright 2024 Thomas Cooper # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -21,6 +22,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone import pytest @@ -40,7 +43,18 @@ def setUp(self): def testAttributes(self): alert = self.repo.get_dependabot_alert(1) + self.assertIsNone(alert.auto_dismissed_at) + self.assertEqual(alert.created_at, datetime(2024, 1, 20, 17, 12, 38, tzinfo=timezone.utc)) + self.assertEqual(alert.dependency.package.name, "jinja2") + self.assertEqual(alert.dismissed_at, datetime(2024, 1, 21, 3, 35, 38, tzinfo=timezone.utc)) + self.assertEqual(alert.dismissed_by.login, "coopernetes") + self.assertEqual(alert.dismissed_reason, "tolerable_risk") + self.assertEqual(alert.dismissed_comment, "Example comment") + self.assertIsNone(alert.fixed_at) + self.assertEqual(alert.html_url, "https://github.com/coopernetes/PyGithub/security/dependabot/1") self.assertEqual(alert.number, 1) + self.assertEqual(alert.security_advisory.ghsa_id, "GHSA-h5c8-rqwp-cp95") + self.assertEqual(alert.security_vulnerability.package.name, "jinja2") self.assertEqual(alert.state, "dismissed") self.assertEqual(alert.dependency.package.ecosystem, "pip") self.assertEqual(alert.dependency.package.name, "jinja2") @@ -91,15 +105,9 @@ def testAttributes(self): self.assertEqual(alert.security_vulnerability.vulnerable_version_range, "< 3.1.3") self.assertEqual(alert.security_vulnerability.severity, "medium") self.assertEqual(alert.security_vulnerability.first_patched_version["identifier"], "3.1.3") + self.assertEqual(alert.updated_at, datetime(2024, 1, 21, 3, 35, 38, tzinfo=timezone.utc)) self.assertEqual(alert.url, "https://api.github.com/repos/coopernetes/PyGithub/dependabot/alerts/1") self.assertEqual(alert.html_url, "https://github.com/coopernetes/PyGithub/security/dependabot/1") - self.assertEqual(alert.created_at, datetime(2024, 1, 20, 17, 12, 38, tzinfo=timezone.utc)) - self.assertEqual(alert.updated_at, datetime(2024, 1, 21, 3, 35, 38, tzinfo=timezone.utc)) - self.assertEqual(alert.dismissed_at, datetime(2024, 1, 21, 3, 35, 38, tzinfo=timezone.utc)) - self.assertEqual(alert.dismissed_by.login, "coopernetes") - self.assertEqual(alert.dismissed_reason, "tolerable_risk") - self.assertEqual(alert.dismissed_comment, "Example comment") - self.assertEqual(alert.fixed_at, None) def testMultipleAlerts(self): multiple_alerts = self.repo.get_dependabot_alerts() diff --git a/tests/Deployment.py b/tests/Deployment.py index 8aac2da6e1..53d64bb3c4 100644 --- a/tests/Deployment.py +++ b/tests/Deployment.py @@ -15,6 +15,7 @@ # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2023 Nevins # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -34,6 +35,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -45,7 +48,26 @@ def setUp(self): self.deployment = self.g.get_user().get_repo("PyGithub").get_deployment(263877258) def testAttributes(self): + self.assertEqual(self.deployment.created_at, datetime(2020, 8, 26, 11, 44, 53, tzinfo=timezone.utc)) + self.assertEqual(self.deployment.creator.login, "jacquev6") + self.assertEqual(self.deployment.description, "Test deployment") + self.assertEqual(self.deployment.environment, "test") self.assertEqual(self.deployment.id, 263877258) + self.assertEqual(self.deployment.node_id, "MDEwOkRlcGxveW1lbnQyNjIzNTE3NzY=") + self.assertEqual(self.deployment.original_environment, "test") + self.assertEqual(self.deployment.payload, {"test": True}) + self.assertIsNone(self.deployment.performed_via_github_app) + self.assertEqual(self.deployment.production_environment, False) + self.assertEqual(self.deployment.ref, "743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5") + self.assertEqual(self.deployment.repository_url, "https://api.github.com/repos/jacquev6/PyGithub") + self.assertEqual(self.deployment.sha, "743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5") + self.assertEqual( + self.deployment.statuses_url, + "https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258/statuses", + ) + self.assertEqual(self.deployment.task, "deploy") + self.assertEqual(self.deployment.transient_environment, True) + self.assertEqual(self.deployment.updated_at, datetime(2020, 8, 26, 11, 44, 53, tzinfo=timezone.utc)) self.assertEqual( self.deployment.url, "https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258", diff --git a/tests/DeploymentStatus.py b/tests/DeploymentStatus.py index 77818c6964..54ba8c3563 100644 --- a/tests/DeploymentStatus.py +++ b/tests/DeploymentStatus.py @@ -15,6 +15,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -34,6 +35,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -46,6 +49,14 @@ def setUp(self): self.status = self.deployment.get_status(388454671) def testAttributes(self): + self.assertEqual(self.status.created_at, datetime(2020, 8, 26, 14, 32, 51, tzinfo=timezone.utc)) + self.assertEqual(self.status.creator.login, "jacquev6") + self.assertEqual( + self.status.deployment_url, "https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258" + ) + self.assertEqual(self.status.description, "Deployment queued") + self.assertEqual(self.status.environment, "test") + self.assertEqual(self.status.environment_url, "https://example.com/environment") self.assertEqual(self.status.id, 388454671) created_at = datetime(2020, 8, 26, 14, 32, 51, tzinfo=timezone.utc) self.assertEqual(self.status.created_at, created_at) @@ -57,6 +68,9 @@ def testAttributes(self): self.assertEqual(self.status.description, "Deployment queued") self.assertEqual(self.status.environment, "test") self.assertEqual(self.status.environment_url, "https://example.com/environment") + self.assertEqual(self.status.log_url, "https://example.com/deployment.log") + self.assertEqual(self.status.node_id, "MDE2OkRlcGxveW1lbnRTdGF0dXMzODg0NTQ2NzE=") + self.assertIsNone(self.status.performed_via_github_app) self.assertEqual( self.status.repository_url, "https://api.github.com/repos/jacquev6/PyGithub", diff --git a/tests/Environment.py b/tests/Environment.py index d3601bf300..5a96d89ec8 100644 --- a/tests/Environment.py +++ b/tests/Environment.py @@ -4,6 +4,8 @@ # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2023 alson # +# Copyright 2024 Kian-Meng Ang # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -83,7 +85,7 @@ def testProtectionRules(self): self.assertEqual(protection_rules[2].wait_timer, 15) def testReviewers(self): - # This is necessary so we can maintain our own expectations, which have been manually editted, for this test. + # This is necessary so we can maintain our own expectations, which have been manually edited, for this test. reviewers = self.repo.get_environment("dev").protection_rules[1].reviewers self.assertEqual(len(reviewers), 2) self.assertEqual(reviewers[0].type, "User") diff --git a/tests/Exceptions.py b/tests/Exceptions.py index f1672334d9..ed102e4cfd 100644 --- a/tests/Exceptions.py +++ b/tests/Exceptions.py @@ -19,6 +19,8 @@ # Copyright 2021 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2024 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -39,6 +41,7 @@ ################################################################################ import pickle +from unittest import mock import github @@ -49,6 +52,8 @@ class Exceptions(Framework.TestCase): def testInvalidInput(self): with self.assertRaises(github.GithubException) as raisedexp: self.g.get_user().create_key("Bad key", "xxx") + self.assertIsInstance(raisedexp.exception, github.GithubException) + self.assertEqual(raisedexp.exception.message, "Validation Failed") self.assertEqual(raisedexp.exception.status, 422) self.assertEqual( raisedexp.exception.data, @@ -70,6 +75,8 @@ def testNonJsonDataReturnedByGithub(self): with self.assertRaises(github.GithubException) as raisedexp: # 503 would be retried, disable retries self.get_github(retry=None, pool_size=self.pool_size).get_user("jacquev6") + self.assertIsInstance(raisedexp.exception, github.GithubException) + self.assertIsNone(raisedexp.exception.message) self.assertEqual(raisedexp.exception.status, 503) self.assertEqual( raisedexp.exception.data, @@ -81,6 +88,8 @@ def testNonJsonDataReturnedByGithub(self): def testUnknownObject(self): with self.assertRaises(github.GithubException) as raisedexp: self.g.get_user().get_repo("Xxx") + self.assertIsInstance(raisedexp.exception, github.UnknownObjectException) + self.assertIsNone(raisedexp.exception.message) self.assertEqual(raisedexp.exception.status, 404) self.assertEqual(raisedexp.exception.data, {"message": "Not Found"}) self.assertEqual(str(raisedexp.exception), '404 {"message": "Not Found"}') @@ -88,6 +97,8 @@ def testUnknownObject(self): def testUnknownUser(self): with self.assertRaises(github.GithubException) as raisedexp: self.g.get_user("ThisUserShouldReallyNotExist") + self.assertIsInstance(raisedexp.exception, github.UnknownObjectException) + self.assertIsNone(raisedexp.exception.message) self.assertEqual(raisedexp.exception.status, 404) self.assertEqual(raisedexp.exception.data, {"message": "Not Found"}) self.assertEqual(str(raisedexp.exception), '404 {"message": "Not Found"}') @@ -95,6 +106,8 @@ def testUnknownUser(self): def testBadAuthentication(self): with self.assertRaises(github.GithubException) as raisedexp: github.Github(auth=github.Auth.Login("BadUser", "BadPassword")).get_user().login + self.assertIsInstance(raisedexp.exception, github.BadCredentialsException) + self.assertIsNone(raisedexp.exception.message) self.assertEqual(raisedexp.exception.status, 401) self.assertEqual(raisedexp.exception.data, {"message": "Bad credentials"}) self.assertEqual(str(raisedexp.exception), '401 {"message": "Bad credentials"}') @@ -152,5 +165,5 @@ def exceed(): def testIncompletableObject(self): github.UserKey.UserKey.setCheckAfterInitFlag(False) - obj = github.UserKey.UserKey(None, {}, {}, False) + obj = github.UserKey.UserKey(mock.MagicMock(), {}, {}, False) self.assertRaises(github.IncompletableObject, obj._completeIfNeeded) diff --git a/tests/ExposeAllAttributes.py b/tests/ExposeAllAttributes.py index 03778845f1..09e709e4d2 100644 --- a/tests/ExposeAllAttributes.py +++ b/tests/ExposeAllAttributes.py @@ -11,6 +11,8 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2024 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -30,6 +32,8 @@ # # ################################################################################ +import github.GithubObject + from . import Framework @@ -142,7 +146,7 @@ def testAllClasses(self): self.assertEqual(sum(len(attrs) for attrs in missingAttributes.values()), 0) def findMissingAttributes(self, obj): - if hasattr(obj, "update"): + if isinstance(obj, github.GithubObject.CompletableGithubObject): obj.update() className = obj.__class__.__name__ missingAttributes = {} diff --git a/tests/Framework.py b/tests/Framework.py index 9954554601..4430f56d28 100644 --- a/tests/Framework.py +++ b/tests/Framework.py @@ -33,6 +33,9 @@ # Copyright 2023 Jonathan Leitschuh # # Copyright 2023 Trim21 # # Copyright 2023 chantra # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Maja Massarini <2678400+majamassarini@users.noreply.github.com># +# Copyright 2025 Neel Malik <41765022+neel-m@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -52,6 +55,7 @@ # # ################################################################################ +import base64 import contextlib import io import json @@ -59,11 +63,12 @@ import traceback import unittest import warnings +from io import BytesIO from typing import Optional -import httpretty # type: ignore +import responses from requests.structures import CaseInsensitiveDict -from urllib3.util import Url # type: ignore +from urllib3.util import Url import github from github import Consts @@ -106,6 +111,12 @@ def getheaders(self): def read(self): return self.__output + def iter_content(self, chunk_size=1): + return iter([self.__output[i : i + chunk_size] for i in range(0, len(self.__output), chunk_size)]) + + def raise_for_status(self): + pass + def fixAuthorizationHeader(headers): if "Authorization" in headers: @@ -124,17 +135,29 @@ def fixAuthorizationHeader(headers): class RecordingConnection: - def __init__(self, file, protocol, host, port, *args, **kwds): + __openFile = None + + @staticmethod + def setOpenFile(func): + RecordingConnection.__openFile = func + + def __init__(self, protocol, host, port, *args, **kwds): + self.__file = self.__openFile("w") # write operations make the assumption that the file is not in binary mode - assert isinstance(file, io.TextIOBase) - self.__file = file + assert isinstance(self.__file, io.TextIOBase) self.__protocol = protocol self.__host = host self.__port = port self.__cnx = self._realConnection(host, port, *args, **kwds) + self.__stream = False - def request(self, verb, url, input, headers): + @property + def host(self): + return self.__host + + def request(self, verb, url, input, headers, stream=False): self.__cnx.request(verb, url, input, headers) + self.__stream = stream # fixAuthorizationHeader changes the parameter directly to remove Authorization token. # however, this is the real dictionary that *will be sent* by "requests", # since we are writing here *before* doing the actual request. @@ -157,16 +180,23 @@ def getresponse(self): status = res.status headers = res.getheaders() - output = res.read() + output = res if self.__stream else res.read() self.__writeLine(status) self.__writeLine(list(headers)) - self.__writeLine(output) + if self.__stream: + chunks = [chunk for chunk in output.iter_content(chunk_size=64)] + output = b"".join(chunks) + for chunk in chunks: + self.__writeLine(base64.b64encode(chunk).decode("ascii")) + self.__writeLine("") + else: + self.__writeLine(output) + self.__writeLine("") return FakeHttpResponse(status, headers, output) def close(self): - self.__writeLine("") return self.__cnx.close() def __writeLine(self, line): @@ -176,33 +206,58 @@ def __writeLine(self, line): class RecordingHttpConnection(RecordingConnection): _realConnection = github.Requester.HTTPRequestsConnectionClass - def __init__(self, file, *args, **kwds): - super().__init__(file, "http", *args, **kwds) + def __init__(self, *args, **kwds): + super().__init__("http", *args, **kwds) class RecordingHttpsConnection(RecordingConnection): _realConnection = github.Requester.HTTPSRequestsConnectionClass - def __init__(self, file, *args, **kwds): - super().__init__(file, "https", *args, **kwds) + def __init__(self, *args, **kwds): + super().__init__("https", *args, **kwds) class ReplayingConnection: - def __init__(self, file, protocol, host, port, *args, **kwds): - self.__file = file + __openFile = None + + @staticmethod + def setOpenFile(func): + ReplayingConnection.__openFile = func + + def __init__(self, protocol, host, port, *args, **kwds): + self.__file = self.__openFile("r") self.__protocol = protocol self.__host = host self.__port = port + self.__stream = False self.response_headers = CaseInsensitiveDict() self.__cnx = self._realConnection(host, port, *args, **kwds) - def request(self, verb, url, input, headers): - full_url = Url(scheme=self.__protocol, host=self.__host, port=self.__port, path=url) - - httpretty.register_uri(verb, full_url.url, body=self.__request_callback) - - self.__cnx.request(verb, url, input, headers) + @property + def host(self): + return self.__host + + def request( + self, + verb, + url, + input, + headers, + stream: bool = False, + ): + port = self.__port if self.__port else 443 if self.__protocol == "https" else 80 + full_url = Url(scheme=self.__protocol, host=self.__host, port=port, path=url) + + response_headers = self.response_headers.copy() + responses.add_callback( + method=verb, + url=full_url.url, + callback=lambda request: self.__request_callback(verb, full_url.url, response_headers), + ) + + self.__stream = stream + self.__cnx.request(verb, url, input, headers, stream=stream) def __readNextRequest(self, verb, url, input, headers): fixAuthorizationHeader(headers) @@ -237,7 +292,16 @@ def __request_callback(self, request, uri, response_headers): status = int(readLine(self.__file)) self.response_headers = CaseInsensitiveDict(eval(readLine(self.__file))) - output = bytearray(readLine(self.__file), "utf-8") + if self.__stream: + output = BytesIO() + while True: + line = readLine(self.__file) + if not line: + break + output.write(base64.b64decode(line)) + output = output.getvalue() + else: + output = bytearray(readLine(self.__file), "utf-8") readLine(self.__file) # make a copy of the headers and remove the ones that interfere with the response handling @@ -247,10 +311,10 @@ def __request_callback(self, request, uri, response_headers): adding_headers.pop("content-encoding", None) response_headers.update(adding_headers) + return [status, response_headers, output] def getresponse(self): - # call original connection, this will go all the way down to the python socket and will be intercepted by httpretty response = self.__cnx.getresponse() # restore original headers to the response @@ -265,15 +329,15 @@ def close(self): class ReplayingHttpConnection(ReplayingConnection): _realConnection = github.Requester.HTTPRequestsConnectionClass - def __init__(self, file, *args, **kwds): - super().__init__(file, "http", *args, **kwds) + def __init__(self, *args, **kwds): + super().__init__("http", *args, **kwds) class ReplayingHttpsConnection(ReplayingConnection): _realConnection = github.Requester.HTTPSRequestsConnectionClass - def __init__(self, file, *args, **kwds): - super().__init__(file, "https", *args, **kwds) + def __init__(self, *args, **kwds): + super().__init__("https", *args, **kwds) class BasicTestCase(unittest.TestCase): @@ -294,9 +358,10 @@ def setUp(self): if ( self.recordMode ): # pragma no cover (Branch useful only when recording new tests, not used during automated tests) + RecordingConnection.setOpenFile(self.__openFile) github.Requester.Requester.injectConnectionClasses( - lambda ignored, *args, **kwds: RecordingHttpConnection(self.__openFile("w"), *args, **kwds), - lambda ignored, *args, **kwds: RecordingHttpsConnection(self.__openFile("w"), *args, **kwds), + RecordingHttpConnection, + RecordingHttpsConnection, ) import GithubCredentials # type: ignore @@ -315,16 +380,17 @@ def setUp(self): else None ) else: + ReplayingConnection.setOpenFile(self.__openFile) github.Requester.Requester.injectConnectionClasses( - lambda ignored, *args, **kwds: ReplayingHttpConnection(self.__openFile("r"), *args, **kwds), - lambda ignored, *args, **kwds: ReplayingHttpsConnection(self.__openFile("r"), *args, **kwds), + ReplayingHttpConnection, + ReplayingHttpsConnection, ) self.login = github.Auth.Login("login", "password") self.oauth_token = github.Auth.Token("oauth_token") self.jwt = github.Auth.AppAuthToken("jwt") self.app_auth = github.Auth.AppAuth(123456, APP_PRIVATE_KEY) - httpretty.enable(allow_net_connect=False) + responses.start() @property def thisTestFailed(self) -> bool: @@ -340,9 +406,8 @@ def thisTestFailed(self) -> bool: def tearDown(self): super().tearDown() - httpretty.disable() - httpretty.reset() - + responses.stop() + responses.reset() self.__closeReplayFileIfNeeded(silent=self.thisTestFailed) github.Requester.Requester.resetConnectionClasses() diff --git a/tests/Gist.py b/tests/Gist.py index 5398f38289..eb11f52f28 100644 --- a/tests/Gist.py +++ b/tests/Gist.py @@ -14,6 +14,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,6 +34,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone import github @@ -44,6 +47,8 @@ class Gist(Framework.TestCase): def testAttributes(self): gist = self.g.get_gist("6296732") self.assertEqual(gist.comments, 0) + self.assertEqual(gist.comments_url, "https://api.github.com/gists/6296732/comments") + self.assertEqual(gist.commits_url, "https://api.github.com/gists/6296732/commits") self.assertEqual( gist.created_at, datetime(2013, 8, 21, 16, 28, 24, tzinfo=timezone.utc), @@ -58,7 +63,9 @@ def testAttributes(self): gist.files["GithubAPI.lua"].raw_url, "https://gist.githubusercontent.com/jacquev6/6296732/raw/88aafa25fb28e17013054a117354a37f0d78963c/GithubAPI.lua", ) + self.assertEqual(gist.fork_of.id, "6296553") self.assertEqual(gist.forks, []) + self.assertEqual(gist.forks_url, "https://api.github.com/gists/6296732/forks") self.assertEqual(gist.git_pull_url, "https://gist.github.com/6296732.git") self.assertEqual(gist.git_push_url, "https://gist.github.com/6296732.git") self.assertEqual(len(gist.history), 1) @@ -78,7 +85,10 @@ def testAttributes(self): self.assertEqual(gist.history[0].version, "c464aecd7fea16684e935607eeea7ae4f8caa0e2") self.assertEqual(gist.html_url, "https://gist.github.com/6296732") self.assertEqual(gist.id, "6296732") + self.assertIsNone(gist.node_id) + self.assertEqual(gist.owner.login, "jacquev6") self.assertTrue(gist.public) + self.assertIsNone(gist.truncated) self.assertEqual( gist.updated_at, datetime(2013, 8, 21, 16, 28, 24, tzinfo=timezone.utc), diff --git a/tests/GistComment.py b/tests/GistComment.py index be8865333d..42442c05fd 100644 --- a/tests/GistComment.py +++ b/tests/GistComment.py @@ -13,6 +13,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -32,6 +33,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -43,12 +46,14 @@ def setUp(self): self.comment = self.g.get_gist("2729810").get_comment(323629) def testAttributes(self): + self.assertIsNone(self.comment.author_association) self.assertEqual(self.comment.body, "Comment created by PyGithub") self.assertEqual( self.comment.created_at, datetime(2012, 5, 19, 7, 7, 57, tzinfo=timezone.utc), ) self.assertEqual(self.comment.id, 323629) + self.assertIsNone(self.comment.node_id) self.assertEqual( self.comment.updated_at, datetime(2012, 5, 19, 7, 7, 57, tzinfo=timezone.utc), diff --git a/tests/GitBlob.py b/tests/GitBlob.py index 256214b8a8..5cad9bdc08 100644 --- a/tests/GitBlob.py +++ b/tests/GitBlob.py @@ -14,6 +14,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,6 +34,8 @@ # # ################################################################################ +from __future__ import annotations + from . import Framework @@ -54,12 +57,12 @@ def testAttributes(self): ) self.assertEqual(len(self.blob.content), 1757) self.assertEqual(self.blob.encoding, "base64") - self.assertEqual(self.blob.size, 1295) self.assertEqual(self.blob.sha, "53bce9fa919b4544e67275089b3ec5b44be20667") self.assertEqual( self.blob.url, "https://api.github.com/repos/jacquev6/PyGithub/git/blobs/53bce9fa919b4544e67275089b3ec5b44be20667", ) + self.assertEqual(self.blob.size, 1295) self.assertEqual( repr(self.blob), 'GitBlob(sha="53bce9fa919b4544e67275089b3ec5b44be20667")', diff --git a/tests/GitCommit.py b/tests/GitCommit.py index f71f22bbb3..e8a0d25d1b 100644 --- a/tests/GitCommit.py +++ b/tests/GitCommit.py @@ -14,6 +14,8 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Tim Gates # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,6 +35,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -41,33 +45,70 @@ class GitCommit(Framework.TestCase): def setUp(self): super().setUp() - self.commit = self.g.get_user().get_repo("PyGithub").get_git_commit("4303c5b90e2216d927155e9609436ccb8984c495") + self.commit = self.g.get_repo("PyGithub/PyGithub").get_git_commit("3d84a47a88f6757514cb3ee91b829f53ba09e7e0") def testAttributes(self): - self.assertEqual(self.commit.author.name, "Vincent Jacques") - self.assertEqual(self.commit.author.email, "vincent@vincent-jacques.net") + self.assertEqual(self.commit.author.name, "Enrico Minack") + self.assertEqual(self.commit.author.email, "github@enrico.minack.dev") + self.assertEqual(self.commit.author.date, datetime(2024, 12, 18, 10, 40, 19, tzinfo=timezone.utc)) + self.assertIsNone(self.commit.comment_count) + self.assertEqual(self.commit.committer.name, "GitHub") + self.assertEqual(self.commit.committer.email, "noreply@github.com") + self.assertEqual(self.commit.committer.date, datetime(2024, 12, 18, 10, 40, 19, tzinfo=timezone.utc)) self.assertEqual( - self.commit.author.date, - datetime(2012, 4, 17, 17, 55, 16, tzinfo=timezone.utc), + self.commit.html_url, "https://github.com/PyGithub/PyGithub/commit/3d84a47a88f6757514cb3ee91b829f53ba09e7e0" ) - self.assertEqual(self.commit.committer.name, "Vincent Jacques") - self.assertEqual(self.commit.committer.email, "vincent@vincent-jacques.net") + self.assertIsNone(self.commit.id) self.assertEqual( - self.commit.committer.date, - datetime(2012, 4, 17, 17, 55, 16, tzinfo=timezone.utc), + self.commit.message, + "Get branches where commit is head (#3083)\n\nImplements `GET\r\n/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head`\r\n\r\nhttps://docs.github.com/rest/commits/commits#list-branches-for-head-commit", ) - self.assertEqual(self.commit.message, "Merge branch 'develop'\n") - self.assertEqual(len(self.commit.parents), 2) - self.assertEqual(self.commit.parents[0].sha, "936f4a97f1a86392637ec002bbf89ff036a5062d") - self.assertEqual(self.commit.parents[1].sha, "2a7e80e6421c5d4d201d60619068dea6bae612cb") - self.assertEqual(self.commit.sha, "4303c5b90e2216d927155e9609436ccb8984c495") - self.assertEqual(self.commit.tree.sha, "f492784d8ca837779650d1fb406a1a3587a764ad") + self.assertEqual(self.commit.node_id, "C_kwDOADYVqtoAKDNkODRhNDdhODhmNjc1NzUxNGNiM2VlOTFiODI5ZjUzYmEwOWU3ZTA") + self.assertEqual(len(self.commit.parents), 1) + self.assertEqual(self.commit.parents[0].sha, "a50ae51b2c351b889055568bcaa9ab6000f1677f") + self.assertEqual(self.commit.sha, "3d84a47a88f6757514cb3ee91b829f53ba09e7e0") + self.assertIsNone(self.commit.timestamp) + self.assertEqual(self.commit.tree.sha, "d9e2468f2db35e158eb65e91b249dde20ca88c86") + self.assertIsNone(self.commit.tree_id) self.assertEqual( self.commit.url, - "https://api.github.com/repos/jacquev6/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495", + "https://api.github.com/repos/PyGithub/PyGithub/git/commits/3d84a47a88f6757514cb3ee91b829f53ba09e7e0", + ) + self.assertEqual(repr(self.commit), 'GitCommit(sha="3d84a47a88f6757514cb3ee91b829f53ba09e7e0")') + self.assertEqual(repr(self.commit.author), 'GitAuthor(name="Enrico Minack")') + self.assertEqual( + self.commit.verification.payload, + "tree d9e2468f2db35e158eb65e91b249dde20ca88c86\n" + "parent a50ae51b2c351b889055568bcaa9ab6000f1677f\n" + "author Enrico Minack 1734518419 +0100\n" + "committer GitHub 1734518419 +0100\n" + "\n" + "Get branches where commit is head (#3083)\n" + "\n" + "Implements `GET\r\n" + "/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head`\r\n" + "\r\n" + "https://docs.github.com/rest/commits/commits#list-branches-for-head-commit", ) + self.assertEqual(self.commit.verification.reason, "valid") self.assertEqual( - repr(self.commit), - 'GitCommit(sha="4303c5b90e2216d927155e9609436ccb8984c495")', + self.commit.verification.signature, + "-----BEGIN PGP SIGNATURE-----\n" + "\n" + "wsFcBAABCAAQBQJnYqaTCRC1aQ7uu5UhlAAAp3wQAGPaBPEC4WlL9rvDA6G+kaRZ\n" + "+296Qb/jRjZX6joS//aQq5rjHKn//qTv13lTBQnM1a7gFfvA7TSoxNsoqzkk6DAe\n" + "ME7qoSMYWl+GdvXsySo4ksGbFN0LL77CSmJyFXRXB5TIjUJT7dbjTkjE9/4zcfq4\n" + "mR8D57GowX7YgqUeRzf8+5zz7ySJ9hAMcF/n+OJjLiew0RFp3hQBSFOr/1B4YJbL\n" + "0Ln9i/DH9KBhwIUnc68k04GxVtAMaS7X0SOVbezylaBlQyF2JV3bDbb38h77KPJ1\n" + "ln0qPi+hamZu43pbKGNuj1BjiLsavKHx5v4EYQ5gUzBDLlUMvUUmFNb4lrbulmSw\n" + "g2Fr13dbjRmgHa5Lj7VAay3xXFwdTGNH3o04uefpvZ/6sRB1e9fP4VR5UVECZLe0\n" + "D5Au4VSA7usgOLdDjxoG6mBOzEY7vWkbCmbFxB1Q1tWY53ecw9NJ15p8NAtH2dR1\n" + "+xUeNzDeQMHS4FIZ/Z6c6RuUyusK7fRAxddhUoXu4KVEwbdEV9qsEKDqtW4eUMXX\n" + "QQBtkxzZkL1lMz4UTXnHwG5jSbHVz3tSyYYpQYZPO2zE/TOrfuZzYGOZ2g9vreNt\n" + "Ta8u/MMtvhguLV1qCEqAgzDQo0Kx+dc+ueNt/ruCuhWxn0jl0LMX4qvmZX1d2X58\n" + "J9ub7sFcpLb1gsueYKQ6\n" + "=RKbN\n" + "-----END PGP SIGNATURE-----\n", ) - self.assertEqual(repr(self.commit.author), 'GitAuthor(name="Vincent Jacques")') + self.assertEqual(self.commit.verification.verified, True) + self.assertEqual(self.commit.verification.verified_at, datetime(2024, 12, 18, 10, 45, 21, tzinfo=timezone.utc)) diff --git a/tests/GitCommitVerification.py b/tests/GitCommitVerification.py new file mode 100644 index 0000000000..8eadd0e9db --- /dev/null +++ b/tests/GitCommitVerification.py @@ -0,0 +1,42 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2021 Claire Johns <42869556+johnsc1@users.noreply.github.com> # +# Copyright 2023 Enrico Minack # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Tim Gates # +# # +# 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 . # +# # +################################################################################ + +from . import Framework + + +class GitCommitVerification(Framework.TestCase): + def setUp(self): + super().setUp() + self.commit = self.g.get_repo("PyGithub/PyGithub", lazy=True).get_commit( + "801d64a4c5c0fcb63f695e0f6799117e76e5fe67" + ) + + def testAttributes(self): + verification = self.commit.commit.verification + self.assertEqual(verification.verified, True) + self.assertIsNone(verification.verified_at) + self.assertEqual(verification.reason, "valid") + self.assertRegex(verification.signature, ".*PGP.*") + self.assertRegex(verification.payload, ".*tree.*") diff --git a/tests/GitRef.py b/tests/GitRef.py index 45d54e93e4..34023163e2 100644 --- a/tests/GitRef.py +++ b/tests/GitRef.py @@ -13,6 +13,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -32,6 +33,8 @@ # # ################################################################################ +from __future__ import annotations + from . import Framework @@ -41,6 +44,7 @@ def setUp(self): self.ref = self.g.get_user().get_repo("PyGithub").get_git_ref("heads/BranchCreatedByPyGithub") def testAttributes(self): + self.assertIsNone(self.ref.node_id) self.assertEqual(self.ref.object.sha, "1292bf0e22c796e91cc3d6e24b544aece8c21f2a") self.assertEqual(self.ref.object.type, "commit") self.assertEqual( diff --git a/tests/GitRelease.py b/tests/GitRelease.py index 37dfd71c44..1d1fedec41 100644 --- a/tests/GitRelease.py +++ b/tests/GitRelease.py @@ -24,6 +24,7 @@ # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2023 Mikhail f. Shiryaev # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -43,6 +44,8 @@ # # ################################################################################ +from __future__ import annotations + import os import zipfile from datetime import datetime, timezone @@ -125,8 +128,32 @@ def tearDownNewRelease(self): def testAttributes(self): release = self.release + self.assertEqual( + release.assets[0].url, "https://api.github.com/repos/rickrickston123/RepoTest/releases/assets/22848494" + ) + self.assertEqual( + release.assets_url, "https://api.github.com/repos/rickrickston123/RepoTest/releases/28524234/assets" + ) + self.assertEqual(release.author.login, "rickrickston123") + self.assertEqual(release.body, "Body") + self.assertIsNone(release.body_html) + self.assertIsNone(release.body_text) + self.assertEqual(release.created_at, datetime(2020, 7, 12, 7, 34, 42, tzinfo=timezone.utc)) + self.assertIsNone(release.discussion_url) + self.assertIsNone(release.documentation_url) + self.assertEqual(release.draft, False) + self.assertEqual(release.html_url, "https://github.com/rickrickston123/RepoTest/releases/tag/v1.0") self.assertEqual(release.id, release_id) + self.assertIsNone(release.mentions_count) + self.assertIsNone(release.message) + self.assertIsNone(release.name) + self.assertEqual(release.node_id, "MDc6UmVsZWFzZTI4NTI0MjM0") + self.assertEqual(release.prerelease, False) + self.assertEqual(release.published_at, datetime(2020, 7, 14, 0, 58, 20, tzinfo=timezone.utc)) + self.assertIsNone(release.reactions) + self.assertIsNone(release.status) self.assertEqual(release.tag_name, tag) + self.assertEqual(release.tarball_url, "https://api.github.com/repos/rickrickston123/RepoTest/tarball/v1.0") self.assertEqual(release.target_commitish, "master") self.assertEqual( release.upload_url, diff --git a/tests/GitReleaseAsset.py b/tests/GitReleaseAsset.py new file mode 100644 index 0000000000..52d2dcb332 --- /dev/null +++ b/tests/GitReleaseAsset.py @@ -0,0 +1,104 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2025 Enrico Minack # +# # +# 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 . # +# # +################################################################################ + +from __future__ import annotations + +import os +from datetime import datetime, timezone +from tempfile import NamedTemporaryFile +from unittest import skipIf + +from . import Framework + + +class GitReleaseAsset(Framework.TestCase): + def setUp(self): + super().setUp() + self.release = self.g.get_repo("EnricoMi/PyGithub", lazy=True).get_release(197548596) + self.asset = self.release.assets[0] + + def testAttributes(self): + self.assertEqual( + self.asset.browser_download_url, "https://github.com/EnricoMi/PyGithub/releases/download/v1.55/asset1.md" + ) + self.assertEqual(self.asset.content_type, "text/markdown") + self.assertEqual(self.asset.created_at, datetime(2025, 1, 30, 11, 11, 32, tzinfo=timezone.utc)) + self.assertEqual(self.asset.download_count, 0) + self.assertEqual(self.asset.id, 224868540) + self.assertIsNone(self.asset.label) + self.assertEqual(self.asset.name, "asset1.md") + self.assertEqual(self.asset.node_id, "RA_kwDOGpsAJ84NZzi8") + self.assertEqual(self.asset.size, 2524) + self.assertEqual(self.asset.state, "uploaded") + self.assertEqual(self.asset.updated_at, datetime(2025, 1, 30, 11, 12, tzinfo=timezone.utc)) + self.assertEqual(self.asset.uploader.login, "EnricoMi") + self.assertEqual(self.asset.url, "https://api.github.com/repos/EnricoMi/PyGithub/releases/assets/224868540") + + @skipIf(os.name == "nt", "not working on Windows") + def testDownloadAssetFile(self): + with NamedTemporaryFile(mode="rb") as file: + self.asset.download_asset(file.name) + content = file.read() + self.assertEqual(len(content), 2524) + self.assertEqual( + content[:172], + b"# PyGitHub\n\n" + b"[![PyPI](https://img.shields.io/pypi/v/PyGithub.svg)](https://pypi.python.org/pypi/PyGithub)\n" + b"![CI](https://github.com/PyGithub/PyGithub/workflows/CI/badge.svg)\n", + ) + self.assertEqual(content[-50:], b"send an email to someone in the MAINTAINERS file.\n") + + source_asset = self.release.assets[1] + with NamedTemporaryFile(mode="rb") as file: + source_asset.download_asset(file.name) + content = file.read() + self.assertEqual(len(content), 1199) + self.assertEqual(content[:19], b"\x1f\x8b\x08\x08\xf5\x9aag\x00\x03README.md") + + def testDownloadAssetStream(self): + (_, _, chunks) = self.asset.download_asset() + content = b"".join([chunk for chunk in chunks if chunk]) + self.assertEqual(len(content), 2524) + self.assertEqual( + content[:172], + b"# PyGitHub\n\n" + b"[![PyPI](https://img.shields.io/pypi/v/PyGithub.svg)](https://pypi.python.org/pypi/PyGithub)\n" + b"![CI](https://github.com/PyGithub/PyGithub/workflows/CI/badge.svg)\n", + ) + self.assertEqual(content[-50:], b"send an email to someone in the MAINTAINERS file.\n") + + source_asset = self.release.assets[1] + (_, _, chunks) = source_asset.download_asset() + content = b"".join([chunk for chunk in chunks if chunk]) + self.assertEqual(len(content), 1199) + self.assertEqual(content[:19], b"\x1f\x8b\x08\x08\xf5\x9aag\x00\x03README.md") diff --git a/tests/GitTag.py b/tests/GitTag.py index b658d7c851..a84a316f35 100644 --- a/tests/GitTag.py +++ b/tests/GitTag.py @@ -14,6 +14,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,6 +34,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -41,29 +44,25 @@ class GitTag(Framework.TestCase): def setUp(self): super().setUp() - self.tag = self.g.get_user().get_repo("PyGithub").get_git_tag("f5f37322407b02a80de4526ad88d5f188977bc3c") + self.tag = self.g.get_repo("PyGithub/PyGithub").get_git_tag("f5f37322407b02a80de4526ad88d5f188977bc3c") def testAttributes(self): self.assertEqual(self.tag.message, "Version 0.6\n") + self.assertEqual(self.tag.node_id, "MDM6VGFnMzU0NDQ5MDpmNWYzNzMyMjQwN2IwMmE4MGRlNDUyNmFkODhkNWYxODg5NzdiYzNj") self.assertEqual(self.tag.object.sha, "4303c5b90e2216d927155e9609436ccb8984c495") self.assertEqual(self.tag.object.type, "commit") self.assertEqual( self.tag.object.url, - "https://api.github.com/repos/jacquev6/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495", + "https://api.github.com/repos/PyGithub/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495", ) self.assertEqual(self.tag.sha, "f5f37322407b02a80de4526ad88d5f188977bc3c") self.assertEqual(self.tag.tag, "v0.6") - self.assertEqual( - self.tag.tagger.date, - datetime(2012, 5, 10, 18, 14, 15, tzinfo=timezone.utc), - ) + self.assertEqual(self.tag.tagger.date, datetime(2012, 5, 10, 18, 14, 15, tzinfo=timezone.utc)) self.assertEqual(self.tag.tagger.email, "vincent@vincent-jacques.net") self.assertEqual(self.tag.tagger.name, "Vincent Jacques") self.assertEqual( self.tag.url, - "https://api.github.com/repos/jacquev6/PyGithub/git/tags/f5f37322407b02a80de4526ad88d5f188977bc3c", - ) - self.assertEqual( - repr(self.tag), - 'GitTag(tag="v0.6", sha="f5f37322407b02a80de4526ad88d5f188977bc3c")', + "https://api.github.com/repos/PyGithub/PyGithub/git/tags/f5f37322407b02a80de4526ad88d5f188977bc3c", ) + self.assertEqual(repr(self.tag), 'GitTag(tag="v0.6", sha="f5f37322407b02a80de4526ad88d5f188977bc3c")') + self.assertEqual(self.tag.verification.reason, "unsigned") diff --git a/tests/GitTree.py b/tests/GitTree.py index af9143f76f..b54f942c18 100644 --- a/tests/GitTree.py +++ b/tests/GitTree.py @@ -14,6 +14,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,6 +34,8 @@ # # ################################################################################ +from __future__ import annotations + from . import Framework @@ -62,6 +65,7 @@ def testAttributes(self): self.tree.tree[6].url, "https://api.github.com/repos/jacquev6/PyGithub/git/trees/60b4602b2c2070246c5df078fb7a5150b45815eb", ) + self.assertIsNone(self.tree.truncated) self.assertEqual( self.tree.url, "https://api.github.com/repos/jacquev6/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad", diff --git a/tests/GithubApp.py b/tests/GithubApp.py index c2ddf8a97e..4da3667785 100644 --- a/tests/GithubApp.py +++ b/tests/GithubApp.py @@ -5,6 +5,7 @@ # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2023 chantra # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,6 +25,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone import github @@ -36,25 +39,34 @@ class GithubApp(Framework.TestCase): def setUp(self): super().setUp() self.app_slug = "github-actions" + self.app = self.g.get_app(slug=self.app_slug) + # fetch lazy object + self.app.id - def testGetPublicApp(self): - app = self.g.get_app(slug=self.app_slug) + def testAttributes(self): + app = self.app + self.assertEqual(app.client_id, "Iv1.05c79e9ad1f6bdfa") + self.assertIsNone(app.client_secret) self.assertEqual(app.created_at, datetime(2018, 7, 30, 9, 30, 17, tzinfo=timezone.utc)) self.assertEqual(app.description, "Automate your workflow from idea to production") self.assertListEqual( app.events, [ + "branch_protection_rule", "check_run", "check_suite", "create", "delete", "deployment", "deployment_status", + "discussion", + "discussion_comment", "fork", "gollum", "issues", "issue_comment", "label", + "merge_group", "milestone", "page_build", "project", @@ -78,16 +90,23 @@ def testGetPublicApp(self): self.assertEqual(app.external_url, "https://help.github.com/en/actions") self.assertEqual(app.html_url, "https://github.com/apps/github-actions") self.assertEqual(app.id, 15368) + self.assertIsNone(app.installations_count) self.assertEqual(app.name, "GitHub Actions") + self.assertEqual(app.node_id, "MDM6QXBwMTUzNjg=") self.assertEqual(app.owner.login, "github") + self.assertIsNone(app.pem) self.assertDictEqual( app.permissions, { "actions": "write", + "administration": "read", + "attestations": "write", "checks": "write", "contents": "write", "deployments": "write", + "discussions": "write", "issues": "write", + "merge_queues": "write", "metadata": "read", "packages": "write", "pages": "write", @@ -100,8 +119,9 @@ def testGetPublicApp(self): }, ) self.assertEqual(app.slug, "github-actions") - self.assertEqual(app.updated_at, datetime(2019, 12, 10, 19, 4, 12, tzinfo=timezone.utc)) + self.assertEqual(app.updated_at, datetime(2024, 4, 10, 20, 33, 16, tzinfo=timezone.utc)) self.assertEqual(app.url, "/apps/github-actions") + self.assertIsNone(app.webhook_secret) def testGetAuthenticatedApp(self): auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) diff --git a/tests/GithubIntegration.py b/tests/GithubIntegration.py index adc69362ec..95a5c5fbd2 100644 --- a/tests/GithubIntegration.py +++ b/tests/GithubIntegration.py @@ -14,6 +14,7 @@ # Copyright 2023 chantra # # Copyright 2024 Enrico Minack # # Copyright 2024 Min RK # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -138,6 +139,9 @@ def testGetGithubForInstallation(self): pool_size=10, seconds_between_requests=100, seconds_between_writes=1000, + # v3: this should not be the default value, so if this has been changed in v3, + # change it here is well + lazy=True, ) # assert kwargs consists of ALL requester constructor arguments @@ -171,6 +175,10 @@ def testGetAccessToken(self): {"issues": "read", "metadata": "read"}, ) self.assertEqual(repo_installation_authorization.repository_selection, "selected") + self.assertIsNone(repo_installation_authorization.repositories) + self.assertIsNone(repo_installation_authorization.single_file) + self.assertIsNone(repo_installation_authorization.has_multiple_single_files) + self.assertIsNone(repo_installation_authorization.single_file_paths) # Get org installation access token org_installation_authorization = github_integration.get_access_token(self.org_installation_id) @@ -186,6 +194,10 @@ def testGetAccessToken(self): } self.assertDictEqual(org_installation_authorization.permissions, org_permissions) self.assertEqual(org_installation_authorization.repository_selection, "selected") + self.assertIsNone(org_installation_authorization.repositories) + self.assertIsNone(org_installation_authorization.single_file) + self.assertIsNone(org_installation_authorization.has_multiple_single_files) + self.assertIsNone(org_installation_authorization.single_file_paths) # Get user installation access token user_installation_authorization = github_integration.get_access_token(self.user_installation_id) @@ -198,6 +210,10 @@ def testGetAccessToken(self): {"issues": "read", "metadata": "read"}, ) self.assertEqual(user_installation_authorization.repository_selection, "selected") + self.assertIsNone(user_installation_authorization.repositories) + self.assertIsNone(user_installation_authorization.single_file) + self.assertIsNone(user_installation_authorization.has_multiple_single_files) + self.assertIsNone(user_installation_authorization.single_file_paths) def testGetUserInstallation(self): auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) @@ -240,7 +256,10 @@ def testGetInstallationWithExpiredJWT(self): github_integration = github.GithubIntegration(auth=auth) with self.assertRaises(github.GithubException) as raisedexp: github_integration.get_org_installation(org="GithubApp-Test-Org") - + self.assertEqual( + raisedexp.exception.message, + "'Expiration time' claim ('exp') must be a numeric value representing the future time at which the assertion expires", + ) self.assertEqual(raisedexp.exception.status, 401) def testGetAccessTokenWithExpiredJWT(self): @@ -248,7 +267,10 @@ def testGetAccessTokenWithExpiredJWT(self): github_integration = github.GithubIntegration(auth=auth) with self.assertRaises(github.GithubException) as raisedexp: github_integration.get_access_token(self.repo_installation_id) - + self.assertEqual( + raisedexp.exception.message, + "'Expiration time' claim ('exp') must be a numeric value representing the future time at which the assertion expires", + ) self.assertEqual(raisedexp.exception.status, 401) def testGetAccessTokenForNoInstallation(self): @@ -264,7 +286,7 @@ def testGetAccessTokenWithInvalidPermissions(self): github_integration = github.GithubIntegration(auth=auth) with self.assertRaises(github.GithubException) as raisedexp: github_integration.get_access_token(self.repo_installation_id, permissions={"test-permissions": "read"}) - + self.assertEqual(raisedexp.exception.message, "The permissions requested are not granted to this installation.") self.assertEqual(raisedexp.exception.status, 422) def testGetAccessTokenWithInvalidData(self): @@ -272,7 +294,7 @@ def testGetAccessTokenWithInvalidData(self): github_integration = github.GithubIntegration(auth=auth) with self.assertRaises(github.GithubException) as raisedexp: github_integration.get_access_token(self.repo_installation_id, permissions="invalid_data") - + self.assertIsNone(raisedexp.exception.message) self.assertEqual(raisedexp.exception.status, 400) def testGetApp(self): diff --git a/tests/GithubRetry.py b/tests/GithubRetry.py index c9fc850f85..bb4b693f53 100644 --- a/tests/GithubRetry.py +++ b/tests/GithubRetry.py @@ -3,6 +3,7 @@ # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2023 Patryk Szulczyk # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -390,6 +391,7 @@ def test_error_in_get_content(self): with mock.patch.object(retry, "_GithubRetry__log") as log: with self.assertRaises(github.GithubException) as exp: retry.increment("TEST", "URL", response) + self.assertIsNone(exp.exception.message) self.assertEqual(403, exp.exception.status) self.assertEqual("NOT GOOD", exp.exception.data) self.assertEqual({}, exp.exception.headers) diff --git a/tests/Github_.py b/tests/Github_.py index d33d901159..4dd180d245 100644 --- a/tests/Github_.py +++ b/tests/Github_.py @@ -24,6 +24,7 @@ # Copyright 2023 Joseph Henrich # # Copyright 2024 Enrico Minack # # Copyright 2024 Min RK # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -282,6 +283,7 @@ def testGetHookDelivery(self): self.assertEqual(delivery.duration, 0.27) self.assertEqual(delivery.status, "OK") self.assertEqual(delivery.status_code, 200) + self.assertIsNone(delivery.throttled_at) self.assertEqual(delivery.event, "issues") self.assertEqual(delivery.action, "opened") self.assertEqual(delivery.installation_id, 123) diff --git a/tests/GlobalAdvisory.py b/tests/GlobalAdvisory.py index 202d0dc388..5b1cf31a28 100644 --- a/tests/GlobalAdvisory.py +++ b/tests/GlobalAdvisory.py @@ -4,6 +4,7 @@ # Copyright 2023 Joseph Henrich # # Copyright 2024 Enrico Minack # # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -23,6 +24,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from decimal import Decimal @@ -54,6 +57,13 @@ def testAttributes(self): self.assertEqual(self.advisory.cvss.version, Decimal("3.1")) self.assertEqual(self.advisory.cvss.score, Decimal("8.4")) self.assertEqual(self.advisory.cvss.vector_string, "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:L") + self.assertEqual( + self.advisory.cvss_severities, + { + "cvss_v3": {"vector_string": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:L", "score": 8.4}, + "cvss_v4": {"vector_string": None, "score": 0.0}, + }, + ) self.assertListKeyEqual( self.advisory.cwes, lambda e: (e.cwe_id, e.name), @@ -62,14 +72,12 @@ def testAttributes(self): ], ) self.assertEqual( - self.advisory.description, - "### Impact\n\nRestrictedPython does not check access to stack frames...", + self.advisory.description[:100], + "### Impact\n\nRestrictedPython does not check access to stack frames and their attributes. Stack frame", ) + self.assertEqual(self.advisory.epss, {"percentage": 0.00156, "percentile": 0.52841}) self.assertEqual(self.advisory.ghsa_id, "GHSA-wqc8-x2pr-7jqh") - self.assertEqual( - self.advisory.github_reviewed_at, - datetime(2023, 7, 10, 21, 53, 22, tzinfo=timezone.utc), - ) + self.assertEqual(self.advisory.github_reviewed_at, datetime(2023, 7, 10, 21, 53, 22, tzinfo=timezone.utc)) self.assertEqual( self.advisory.html_url, "https://github.com/advisories/GHSA-wqc8-x2pr-7jqh", @@ -78,7 +86,7 @@ def testAttributes(self): self.advisory.identifiers, [{"type": "GHSA", "value": "GHSA-wqc8-x2pr-7jqh"}, {"type": "CVE", "value": "CVE-2023-37271"}], ) - self.assertEqual(self.advisory.nvd_published_at, None) + self.assertEqual(self.advisory.nvd_published_at, datetime(2023, 7, 11, 18, 15, 20, tzinfo=timezone.utc)) self.assertEqual( self.advisory.published_at, datetime(2023, 7, 10, 21, 53, 22, tzinfo=timezone.utc), @@ -110,14 +118,8 @@ def testAttributes(self): self.advisory.type, "reviewed", ) - self.assertEqual( - self.advisory.updated_at, - datetime(2023, 7, 20, 18, 59, 27, tzinfo=timezone.utc), - ) - self.assertEqual( - self.advisory.url, - "https://api.github.com/advisories/GHSA-wqc8-x2pr-7jqh", - ) + self.assertEqual(self.advisory.updated_at, datetime(2023, 11, 7, 5, 5, 13, tzinfo=timezone.utc)) + self.assertEqual(self.advisory.url, "https://api.github.com/advisories/GHSA-wqc8-x2pr-7jqh") self.assertListKeyEqual( self.advisory.vulnerabilities, lambda e: ( diff --git a/tests/GraphQl.py b/tests/GraphQl.py index 4f03be0aea..e87eeb963e 100644 --- a/tests/GraphQl.py +++ b/tests/GraphQl.py @@ -1,6 +1,7 @@ ############################ Copyrights and license ############################ # # # Copyright 2024 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -109,9 +110,9 @@ def testNode(self): # wrong type should throw an exception with self.assertRaises(github.GithubException) as e: requester.graphql_node("D_kwDOADYVqs4ATJZD", "login", "User") + self.assertEqual(e.exception.message, "Retrieved User object is of different type: Discussion") self.assertEqual(e.exception.status, 400) self.assertEqual(e.exception.data, {"data": {"node": {"__typename": "Discussion"}}}) - self.assertEqual(e.exception.message, "Retrieved User object is of different type: Discussion") def testNodeClass(self): requester = self.g._Github__requester @@ -147,9 +148,9 @@ def testNodeClass(self): requester.graphql_node_class( "D_kwDOADYVqs4ATJZD", "login", github.RepositoryDiscussion.RepositoryDiscussion, "User" ) + self.assertEqual(e.exception.message, "Retrieved User object is of different type: Discussion") self.assertEqual(e.exception.status, 400) self.assertEqual(e.exception.data, {"data": {"node": {"__typename": "Discussion"}}}) - self.assertEqual(e.exception.message, "Retrieved User object is of different type: Discussion") def testQuery(self): requester = self.g._Github__requester diff --git a/tests/Hook.py b/tests/Hook.py index aac2b1bd27..0e523268ae 100644 --- a/tests/Hook.py +++ b/tests/Hook.py @@ -14,6 +14,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,6 +34,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -50,12 +53,16 @@ def testAttributes(self): self.hook.created_at, datetime(2012, 5, 19, 6, 1, 45, tzinfo=timezone.utc), ) + self.assertIsNone(self.hook.deliveries_url) self.assertEqual(self.hook.events, ["push"]) self.assertEqual(self.hook.id, 257993) self.assertEqual(self.hook.last_response.status, "ok") self.assertEqual(self.hook.last_response.message, "OK") self.assertEqual(self.hook.last_response.code, 200) self.assertEqual(self.hook.name, "web") + self.assertEqual(self.hook.ping_url, "https://api.github.com/repos/jacquev6/PyGithub/hooks/257993/pings") + self.assertEqual(self.hook.test_url, "https://api.github.com/repos/jacquev6/PyGithub/hooks/257993/tests") + self.assertIsNone(self.hook.type) self.assertEqual( self.hook.updated_at, datetime(2012, 5, 29, 18, 49, 47, tzinfo=timezone.utc), diff --git a/tests/Installation.py b/tests/Installation.py index 27297c044c..d1a52e998e 100644 --- a/tests/Installation.py +++ b/tests/Installation.py @@ -16,6 +16,7 @@ # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Enrico Minack # # Copyright 2024 Min RK # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -35,6 +36,10 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime, timezone + from urllib3.exceptions import InsecureRequestWarning import github @@ -52,12 +57,37 @@ def setUp(self): self.auth = AppAuth(app_id, private_key) self.integration = github.GithubIntegration(auth=self.auth) self.installations = list(self.integration.get_installations()) + self.installation = self.installations[0] - def testGetRepos(self): - self.assertEqual(len(self.installations), 1) - installation = self.installations[0] + def testAttributes(self): + self.assertEqual( + self.installation.access_tokens_url, "https://api.github.com/app/installations/36541767/access_tokens" + ) + self.assertEqual(self.installation.account.login, "EnricoMi") + self.assertEqual(self.installation.app_id, 319953) + self.assertEqual(self.installation.app_slug, "publish-test-results") + self.assertIsNone(self.installation.contact_email) + self.assertEqual(self.installation.created_at, datetime(2023, 4, 17, 16, 18, 5, tzinfo=timezone.utc)) + self.assertEqual(self.installation.events, []) + self.assertEqual(self.installation.has_multiple_single_files, False) + self.assertEqual(self.installation.html_url, "https://github.com/settings/installations/36541767") + self.assertEqual(self.installation.id, 36541767) + self.assertEqual( + self.installation.permissions, + {"checks": "write", "issues": "read", "contents": "read", "metadata": "read", "pull_requests": "write"}, + ) + self.assertEqual(self.installation.repositories_url, "https://api.github.com/installation/repositories") + self.assertEqual(self.installation.repository_selection, "selected") + self.assertIsNone(self.installation.single_file_name) + self.assertEqual(self.installation.single_file_paths, []) + self.assertIsNone(self.installation.suspended_at) + self.assertIsNone(self.installation.suspended_by) + self.assertEqual(self.installation.target_id, 44700269) + self.assertEqual(self.installation.target_type, "User") + self.assertEqual(self.installation.updated_at, datetime(2023, 6, 8, 7, 38, 12, tzinfo=timezone.utc)) - repos = list(installation.get_repos()) + def testGetRepos(self): + repos = list(self.installation.get_repos()) self.assertEqual(len(repos), 2) self.assertListEqual([repo.full_name for repo in repos], ["EnricoMi/sandbox", "EnricoMi/python"]) @@ -77,6 +107,9 @@ def testGetGithubForInstallation(self): pool_size=10, seconds_between_requests=100, seconds_between_writes=1000, + # v3: this should not be the default value, so if this has been changed in v3, + # change it here is well + lazy=True, ) # assert kwargs consists of ALL requester constructor arguments diff --git a/tests/Issue.py b/tests/Issue.py index 0389f037be..dba7bb063f 100644 --- a/tests/Issue.py +++ b/tests/Issue.py @@ -23,6 +23,7 @@ # Copyright 2023 Nicolas Schweitzer # # Copyright 2024 Enrico Minack # # Copyright 2024 Malik Shahzad Muzaffar # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -42,6 +43,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -50,55 +53,61 @@ class Issue(Framework.TestCase): def setUp(self): super().setUp() - self.repo = self.g.get_user().get_repo("PyGithub") + self.repo = self.g.get_repo("PyGithub/PyGithub") self.issue = self.repo.get_issue(28) def testAttributes(self): + self.assertIsNone(self.issue.active_lock_reason) self.assertEqual(self.issue.assignee.login, "jacquev6") - self.assertListKeyEqual(self.issue.assignees, lambda a: a.login, ["jacquev6", "stuglaser"]) - self.assertEqual(self.issue.body, "Body edited by PyGithub") - self.assertEqual( - self.issue.closed_at, - datetime(2012, 5, 26, 14, 59, 33, tzinfo=timezone.utc), - ) + self.assertListKeyEqual(self.issue.assignees, lambda a: a.login, ["jacquev6"]) + self.assertEqual(self.issue.author_association, "MEMBER") + self.assertEqual(self.issue.body, "Body edited by PyGithub\n") + self.assertIsNone(self.issue.body_html) + self.assertIsNone(self.issue.body_text) + self.assertEqual(self.issue.closed_at, datetime(2012, 5, 26, 14, 59, 33, tzinfo=timezone.utc)) self.assertEqual(self.issue.closed_by.login, "jacquev6") - self.assertEqual(self.issue.comments, 0) - self.assertEqual( - self.issue.comments_url, - "https://github.com/jacquev6/PyGithub/issues/28/comments", - ) - self.assertEqual( - self.issue.created_at, - datetime(2012, 5, 19, 10, 38, 23, tzinfo=timezone.utc), - ) - self.assertEqual( - self.issue.events_url, - "https://github.com/jacquev6/PyGithub/issues/28/events", - ) - self.assertEqual(self.issue.html_url, "https://github.com/jacquev6/PyGithub/issues/28") + self.assertEqual(self.issue.comments, 3) + self.assertEqual(self.issue.comments_url, "https://api.github.com/repos/PyGithub/PyGithub/issues/28/comments") + self.assertEqual(self.issue.created_at, datetime(2012, 5, 19, 10, 38, 23, tzinfo=timezone.utc)) + self.assertIsNone(self.issue.draft) + self.assertEqual(self.issue.events_url, "https://api.github.com/repos/PyGithub/PyGithub/issues/28/events") + self.assertEqual(self.issue.html_url, "https://github.com/PyGithub/PyGithub/issues/28") self.assertEqual(self.issue.id, 4653757) - self.assertListKeyEqual( - self.issue.labels, - lambda lb: lb.name, - ["Bug", "Project management", "Question"], - ) + self.assertListKeyEqual(self.issue.labels, lambda lb: lb.name, ["bug", "question"]) self.assertEqual( - self.issue.labels_url, - "https://github.com/jacquev6/PyGithub/issues/28/labels{/name}", + self.issue.labels_url, "https://api.github.com/repos/PyGithub/PyGithub/issues/28/labels{/name}" ) - self.assertEqual(self.issue.milestone.title, "Version 0.4") + self.assertEqual(self.issue.locked, False) + self.assertEqual(self.issue.milestone.title, "Version 1.4") + self.assertEqual(self.issue.node_id, "MDU6SXNzdWU0NjUzNzU3") self.assertEqual(self.issue.number, 28) - self.assertEqual(self.issue.pull_request.diff_url, None) - self.assertEqual(self.issue.pull_request.patch_url, None) - self.assertEqual(self.issue.pull_request.html_url, None) + self.assertIsNone(self.issue.performed_via_github_app) + self.assertIsNone(self.issue.pull_request) + self.assertEqual( + self.issue.reactions, + { + "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/28/reactions", + "total_count": 2, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 2, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0, + }, + ) + self.assertEqual(self.issue.repository.full_name, "PyGithub/PyGithub") + self.assertEqual(self.issue.repository_url, "https://api.github.com/repos/PyGithub/PyGithub") + self.assertEqual(self.issue.score, None) self.assertEqual(self.issue.state, "closed") self.assertEqual(self.issue.state_reason, "completed") + self.assertIsNone(self.issue.text_matches) + self.assertEqual(self.issue.timeline_url, "https://api.github.com/repos/PyGithub/PyGithub/issues/28/timeline") self.assertEqual(self.issue.title, "Issue created by PyGithub") - self.assertEqual( - self.issue.updated_at, - datetime(2012, 5, 26, 14, 59, 33, tzinfo=timezone.utc), - ) - self.assertEqual(self.issue.url, "https://api.github.com/repos/jacquev6/PyGithub/issues/28") + self.assertEqual(self.issue.updated_at, datetime(2019, 5, 3, 9, 44, 22, tzinfo=timezone.utc)) + self.assertEqual(self.issue.url, "https://api.github.com/repos/PyGithub/PyGithub/issues/28") self.assertFalse(self.issue.locked) self.assertIsNone(self.issue.active_lock_reason) self.assertEqual(self.issue.user.login, "jacquev6") @@ -107,16 +116,16 @@ def testAttributes(self): self.assertEqual( self.issue.reactions, { + "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/28/reactions", + "total_count": 2, "+1": 0, "-1": 0, + "laugh": 0, + "hooray": 2, "confused": 0, - "eyes": 0, "heart": 0, - "hooray": 2, - "laugh": 0, "rocket": 0, - "total_count": 2, - "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/28/reactions", + "eyes": 0, }, ) @@ -133,17 +142,17 @@ def testEditWithAllParameters(self): "open", milestone, ["Bug"], - ["jacquev6", "stuglaser"], + ["jacquev6"], ) self.assertEqual(self.issue.assignee.login, "jacquev6") - self.assertListKeyEqual(self.issue.assignees, lambda a: a.login, ["jacquev6", "stuglaser"]) + self.assertListKeyEqual(self.issue.assignees, lambda a: a.login, ["jacquev6"]) self.assertEqual(self.issue.body, "Body edited by PyGithub") self.assertEqual(self.issue.state, "open") self.assertEqual(self.issue.title, "Title edited by PyGithub") self.assertListKeyEqual(self.issue.labels, lambda lb: lb.name, ["Bug"]) def testEditResetMilestone(self): - self.assertEqual(self.issue.milestone.title, "Version 0.4") + self.assertEqual(self.issue.milestone.title, "Version 1.4") self.issue.edit(milestone=None) self.assertEqual(self.issue.milestone, None) @@ -195,15 +204,15 @@ def testGetLabels(self): def testAddAndRemoveAssignees(self): user1 = "jayfk" user2 = self.g.get_user("jzelinskie") - self.assertListKeyEqual(self.issue.assignees, lambda a: a.login, ["jacquev6", "stuglaser"]) + self.assertListKeyEqual(self.issue.assignees, lambda a: a.login, ["jacquev6"]) self.issue.add_to_assignees(user1, user2) self.assertListKeyEqual( self.issue.assignees, lambda a: a.login, - ["jacquev6", "stuglaser", "jayfk", "jzelinskie"], + ["jacquev6", "jayfk", "jzelinskie"], ) self.issue.remove_from_assignees(user1, user2) - self.assertListKeyEqual(self.issue.assignees, lambda a: a.login, ["jacquev6", "stuglaser"]) + self.assertListKeyEqual(self.issue.assignees, lambda a: a.login, ["jacquev6"]) def testAddAndRemoveLabels(self): bug = self.repo.get_label("Bug") diff --git a/tests/Issue134.py b/tests/Issue134.py index f30c5612ec..6d1615e5a6 100644 --- a/tests/Issue134.py +++ b/tests/Issue134.py @@ -14,6 +14,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -43,6 +44,7 @@ def testGetAuthorizationsFailsWhenAutenticatedThroughOAuth(self): g = github.Github(auth=self.oauth_token) with self.assertRaises(github.GithubException) as raisedexp: list(g.get_user().get_authorizations()) + self.assertIsNone(raisedexp.exception.message) self.assertEqual(raisedexp.exception.status, 404) def testGetAuthorizationsSucceedsWhenAutenticatedThroughLoginPassword(self): diff --git a/tests/Issue174.py b/tests/Issue174.py index ca0db121a2..6fce52d5c8 100644 --- a/tests/Issue174.py +++ b/tests/Issue174.py @@ -12,6 +12,7 @@ # Copyright 2019 Wan Liuyang # # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -37,8 +38,8 @@ class Issue174(Framework.TestCase): def setUp(self): super().setUp() - self.repo = self.g.get_repo("twitter/bootstrap") + self.repo = self.g.get_repo("twbs/bootstrap") - def testGetDirContentsWhithHttpRedirect(self): + def testGetDirContentsWithHttpRedirect(self): contents = self.repo.get_contents("js/") - self.assertEqual(len(contents), 15) + self.assertEqual(len(contents), 5) diff --git a/tests/IssueComment.py b/tests/IssueComment.py index 0e2eb6f619..5b68b4a000 100644 --- a/tests/IssueComment.py +++ b/tests/IssueComment.py @@ -18,6 +18,7 @@ # Copyright 2023 Malik Shahzad Muzaffar # # Copyright 2024 Arash Kadkhodaei # # Copyright 2024 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -37,6 +38,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -45,46 +48,55 @@ class IssueComment(Framework.TestCase): def setUp(self): super().setUp() - self.comment = self.g.get_user().get_repo("PyGithub").get_issue(28).get_comment(5808311) + self.comment = self.g.get_repo("PyGithub/PyGithub").get_issue(28).get_comment(20227753) def testAttributes(self): - self.assertEqual(self.comment.node_id, "IC_kwDOGpsAJ86Gecc_") - self.assertEqual(self.comment.body, "Comment created by PyGithub") - self.assertEqual( - self.comment.created_at, - datetime(2012, 5, 20, 11, 46, 42, tzinfo=timezone.utc), - ) - self.assertEqual(self.comment.id, 5808311) - self.assertEqual( - self.comment.updated_at, - datetime(2012, 5, 20, 11, 46, 42, tzinfo=timezone.utc), - ) - self.assertEqual( - self.comment.url, - "https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5808311", - ) - self.assertEqual(self.comment.user.login, "jacquev6") + self.assertEqual(self.comment.author_association, "CONTRIBUTOR") + self.assertEqual(self.comment.body, "Comment created by PyGithub\n") + self.assertIsNone(self.comment.body_html) + self.assertIsNone(self.comment.body_text) + self.assertEqual(self.comment.created_at, datetime(2013, 6, 29, 10, 31, 38, tzinfo=timezone.utc)) + self.assertEqual(self.comment.html_url, "https://github.com/PyGithub/PyGithub/issues/28#issuecomment-20227753") + self.assertEqual(self.comment.id, 20227753) + self.assertEqual(self.comment.issue_url, "https://api.github.com/repos/PyGithub/PyGithub/issues/28") + self.assertEqual(self.comment.node_id, "MDEyOklzc3VlQ29tbWVudDIwMjI3NzUz") + self.assertEqual(self.comment.body, "Comment created by PyGithub\n") + self.assertEqual(self.comment.created_at, datetime(2013, 6, 29, 10, 31, 38, tzinfo=timezone.utc)) + self.assertEqual(self.comment.id, 20227753) + self.assertIsNone(self.comment.performed_via_github_app) self.assertEqual( - self.comment.html_url, - "https://github.com/jacquev6/PyGithub/issues/28#issuecomment-5808311", - ) - self.assertEqual( - repr(self.comment), - 'IssueComment(user=NamedUser(login="jacquev6"), id=5808311)', + self.comment.reactions, + { + "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/comments/20227753/reactions", + "total_count": 2, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 1, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0, + }, ) + self.assertEqual(self.comment.updated_at, datetime(2013, 6, 29, 10, 31, 38, tzinfo=timezone.utc)) + self.assertEqual(self.comment.url, "https://api.github.com/repos/PyGithub/PyGithub/issues/comments/20227753") + self.assertEqual(self.comment.user.login, "stuglaser") + self.assertEqual(self.comment.html_url, "https://github.com/PyGithub/PyGithub/issues/28#issuecomment-20227753") + self.assertEqual(repr(self.comment), 'IssueComment(user=NamedUser(login="stuglaser"), id=20227753)') self.assertEqual( self.comment.reactions, { + "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/comments/20227753/reactions", + "total_count": 2, "+1": 1, "-1": 0, + "laugh": 0, + "hooray": 1, "confused": 0, - "eyes": 0, "heart": 0, - "hooray": 1, - "laugh": 0, "rocket": 0, - "total_count": 2, - "url": "https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5808311/reactions", + "eyes": 0, }, ) diff --git a/tests/IssueEvent.py b/tests/IssueEvent.py index 65e7cf2a71..e52c18672b 100644 --- a/tests/IssueEvent.py +++ b/tests/IssueEvent.py @@ -16,6 +16,8 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2024 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -35,6 +37,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -43,7 +47,7 @@ class IssueEvent(Framework.TestCase): def setUp(self): super().setUp() - repo = self.g.get_repo("PyGithub/PyGithub", lazy=True) + repo = self.g.get_repo("PyGithub/PyGithub") # From Issue #30 self.event_subscribed = repo.get_issues_event(16347479) @@ -99,9 +103,13 @@ def testEvent_subscribed_Attributes(self): self.assertEqual(self.event_subscribed.label, None) self.assertEqual(self.event_subscribed.assignee, None) self.assertEqual(self.event_subscribed.assigner, None) + self.assertEqual(self.event_subscribed.author_association, None) self.assertEqual(self.event_subscribed.review_requester, None) self.assertEqual(self.event_subscribed.requested_reviewer, None) + self.assertEqual(self.event_subscribed.requested_team, None) self.assertEqual(self.event_subscribed.milestone, None) + self.assertEqual(self.event_subscribed.performed_via_github_app, None) + self.assertEqual(self.event_subscribed.project_card, None) self.assertEqual(self.event_subscribed.rename, None) self.assertEqual(self.event_subscribed.dismissed_review, None) self.assertEqual(self.event_subscribed.lock_reason, None) @@ -126,9 +134,13 @@ def testEvent_assigned_Attributes(self): self.assertEqual(self.event_assigned.label, None) self.assertEqual(self.event_assigned.assignee.login, "jacquev6") self.assertEqual(self.event_assigned.assigner.login, "ghost") + self.assertEqual(self.event_assigned.author_association, None) self.assertEqual(self.event_assigned.review_requester, None) self.assertEqual(self.event_assigned.requested_reviewer, None) + self.assertEqual(self.event_assigned.requested_team, None) self.assertEqual(self.event_assigned.milestone, None) + self.assertEqual(self.event_assigned.performed_via_github_app, None) + self.assertEqual(self.event_assigned.project_card, None) self.assertEqual(self.event_assigned.rename, None) self.assertEqual(self.event_assigned.dismissed_review, None) self.assertEqual(self.event_assigned.lock_reason, None) @@ -156,9 +168,13 @@ def testEvent_referenced_Attributes(self): self.assertEqual(self.event_referenced.label, None) self.assertEqual(self.event_referenced.assignee, None) self.assertEqual(self.event_referenced.assigner, None) + self.assertEqual(self.event_referenced.author_association, None) self.assertEqual(self.event_referenced.review_requester, None) self.assertEqual(self.event_referenced.requested_reviewer, None) + self.assertEqual(self.event_referenced.requested_team, None) self.assertEqual(self.event_referenced.milestone, None) + self.assertEqual(self.event_referenced.performed_via_github_app, None) + self.assertEqual(self.event_referenced.project_card, None) self.assertEqual(self.event_referenced.rename, None) self.assertEqual(self.event_referenced.dismissed_review, None) self.assertEqual(self.event_referenced.lock_reason, None) @@ -183,9 +199,13 @@ def testEvent_closed_Attributes(self): self.assertEqual(self.event_closed.label, None) self.assertEqual(self.event_closed.assignee, None) self.assertEqual(self.event_closed.assigner, None) + self.assertEqual(self.event_closed.author_association, None) self.assertEqual(self.event_closed.review_requester, None) self.assertEqual(self.event_closed.requested_reviewer, None) + self.assertEqual(self.event_closed.requested_team, None) self.assertEqual(self.event_closed.milestone, None) + self.assertEqual(self.event_closed.performed_via_github_app, None) + self.assertEqual(self.event_closed.project_card, None) self.assertEqual(self.event_closed.rename, None) self.assertEqual(self.event_closed.dismissed_review, None) self.assertEqual(self.event_closed.lock_reason, None) @@ -210,9 +230,13 @@ def testEvent_labeled_Attributes(self): self.assertEqual(self.event_labeled.label.name, "v1") self.assertEqual(self.event_labeled.assignee, None) self.assertEqual(self.event_labeled.assigner, None) + self.assertEqual(self.event_labeled.author_association, None) self.assertEqual(self.event_labeled.review_requester, None) self.assertEqual(self.event_labeled.requested_reviewer, None) + self.assertEqual(self.event_labeled.requested_team, None) self.assertEqual(self.event_labeled.milestone, None) + self.assertEqual(self.event_labeled.performed_via_github_app, None) + self.assertEqual(self.event_labeled.project_card, None) self.assertEqual(self.event_labeled.rename, None) self.assertEqual(self.event_labeled.dismissed_review, None) self.assertEqual(self.event_labeled.lock_reason, None) @@ -237,9 +261,13 @@ def testEvent_mentioned_Attributes(self): self.assertEqual(self.event_mentioned.label, None) self.assertEqual(self.event_mentioned.assignee, None) self.assertEqual(self.event_mentioned.assigner, None) + self.assertEqual(self.event_mentioned.author_association, None) self.assertEqual(self.event_mentioned.review_requester, None) self.assertEqual(self.event_mentioned.requested_reviewer, None) + self.assertEqual(self.event_mentioned.requested_team, None) self.assertEqual(self.event_mentioned.milestone, None) + self.assertEqual(self.event_mentioned.performed_via_github_app, None) + self.assertEqual(self.event_mentioned.project_card, None) self.assertEqual(self.event_mentioned.rename, None) self.assertEqual(self.event_mentioned.dismissed_review, None) self.assertEqual(self.event_mentioned.lock_reason, None) @@ -267,9 +295,13 @@ def testEvent_merged_Attributes(self): self.assertEqual(self.event_merged.label, None) self.assertEqual(self.event_merged.assignee, None) self.assertEqual(self.event_merged.assigner, None) + self.assertEqual(self.event_merged.author_association, None) self.assertEqual(self.event_merged.review_requester, None) self.assertEqual(self.event_merged.requested_reviewer, None) + self.assertEqual(self.event_merged.requested_team, None) self.assertEqual(self.event_merged.milestone, None) + self.assertEqual(self.event_merged.performed_via_github_app, None) + self.assertEqual(self.event_merged.project_card, None) self.assertEqual(self.event_merged.rename, None) self.assertEqual(self.event_merged.dismissed_review, None) self.assertEqual(self.event_merged.lock_reason, None) @@ -297,9 +329,13 @@ def testEvent_review_requested_Attributes(self): self.assertEqual(self.event_review_requested.label, None) self.assertEqual(self.event_review_requested.assignee, None) self.assertEqual(self.event_review_requested.assigner, None) + self.assertEqual(self.event_review_requested.author_association, None) self.assertEqual(self.event_review_requested.review_requester.login, "jzelinskie") self.assertEqual(self.event_review_requested.requested_reviewer.login, "jzelinskie") + self.assertEqual(self.event_review_requested.requested_team, None) self.assertEqual(self.event_review_requested.milestone, None) + self.assertEqual(self.event_review_requested.performed_via_github_app, None) + self.assertEqual(self.event_review_requested.project_card, None) self.assertEqual(self.event_review_requested.rename, None) self.assertEqual(self.event_review_requested.dismissed_review, None) self.assertEqual(self.event_review_requested.lock_reason, None) @@ -324,9 +360,13 @@ def testEvent_reopened_Attributes(self): self.assertEqual(self.event_reopened.label, None) self.assertEqual(self.event_reopened.assignee, None) self.assertEqual(self.event_reopened.assigner, None) + self.assertEqual(self.event_reopened.author_association, None) self.assertEqual(self.event_reopened.review_requester, None) self.assertEqual(self.event_reopened.requested_reviewer, None) + self.assertEqual(self.event_reopened.requested_team, None) self.assertEqual(self.event_reopened.milestone, None) + self.assertEqual(self.event_reopened.performed_via_github_app, None) + self.assertEqual(self.event_reopened.project_card, None) self.assertEqual(self.event_reopened.rename, None) self.assertEqual(self.event_reopened.dismissed_review, None) self.assertEqual(self.event_reopened.lock_reason, None) @@ -349,11 +389,15 @@ def testEvent_unassigned_Attributes(self): self.assertEqual(self.event_unassigned.node_id, "MDE1OlVuYXNzaWduZWRFdmVudDE3ODI0NjMzNzk=") self.assertEqual(self.event_unassigned.commit_url, None) self.assertEqual(self.event_unassigned.label, None) - self.assertEqual(self.event_unassigned.actor.login, "sfdye") - self.assertEqual(self.event_unassigned.actor.login, "sfdye") + self.assertEqual(self.event_unassigned.assignee.login, "sfdye") + self.assertEqual(self.event_unassigned.assigner.login, "sfdye") + self.assertEqual(self.event_unassigned.author_association, None) self.assertEqual(self.event_unassigned.review_requester, None) self.assertEqual(self.event_unassigned.requested_reviewer, None) + self.assertEqual(self.event_unassigned.requested_team, None) self.assertEqual(self.event_unassigned.milestone, None) + self.assertEqual(self.event_unassigned.performed_via_github_app, None) + self.assertEqual(self.event_unassigned.project_card, None) self.assertEqual(self.event_unassigned.rename, None) self.assertEqual(self.event_unassigned.dismissed_review, None) self.assertEqual(self.event_unassigned.lock_reason, None) @@ -378,9 +422,13 @@ def testEvent_unlabeled_Attributes(self): self.assertEqual(self.event_unlabeled.label.name, "improvement") self.assertEqual(self.event_unlabeled.assignee, None) self.assertEqual(self.event_unlabeled.assigner, None) + self.assertEqual(self.event_unlabeled.author_association, None) self.assertEqual(self.event_unlabeled.review_requester, None) self.assertEqual(self.event_unlabeled.requested_reviewer, None) + self.assertEqual(self.event_unlabeled.requested_team, None) self.assertEqual(self.event_unlabeled.milestone, None) + self.assertEqual(self.event_unlabeled.performed_via_github_app, None) + self.assertEqual(self.event_unlabeled.project_card, None) self.assertEqual(self.event_unlabeled.rename, None) self.assertEqual(self.event_unlabeled.dismissed_review, None) self.assertEqual(self.event_unlabeled.lock_reason, None) @@ -405,9 +453,13 @@ def testEvent_renamed_Attributes(self): self.assertEqual(self.event_renamed.label, None) self.assertEqual(self.event_renamed.assignee, None) self.assertEqual(self.event_renamed.assigner, None) + self.assertEqual(self.event_renamed.author_association, None) self.assertEqual(self.event_renamed.review_requester, None) self.assertEqual(self.event_renamed.requested_reviewer, None) + self.assertEqual(self.event_renamed.requested_team, None) self.assertEqual(self.event_renamed.milestone, None) + self.assertEqual(self.event_renamed.performed_via_github_app, None) + self.assertEqual(self.event_renamed.project_card, None) self.assertEqual( self.event_renamed.rename, { @@ -441,10 +493,14 @@ def testEvent_base_ref_changed_Attributes(self): self.assertEqual(self.event_base_ref_changed.label, None) self.assertEqual(self.event_base_ref_changed.assignee, None) self.assertEqual(self.event_base_ref_changed.assigner, None) + self.assertEqual(self.event_base_ref_changed.author_association, None) self.assertEqual(self.event_base_ref_changed.review_requester, None) self.assertEqual(self.event_base_ref_changed.requested_reviewer, None) + self.assertEqual(self.event_base_ref_changed.requested_team, None) self.assertEqual(self.event_base_ref_changed.milestone, None) - self.assertEqual(self.event_head_ref_deleted.rename, None) + self.assertEqual(self.event_base_ref_changed.performed_via_github_app, None) + self.assertEqual(self.event_base_ref_changed.project_card, None) + self.assertEqual(self.event_base_ref_changed.rename, None) self.assertEqual(self.event_base_ref_changed.dismissed_review, None) self.assertEqual(self.event_base_ref_changed.lock_reason, None) self.assertEqual(repr(self.event_base_ref_changed), "IssueEvent(id=1782915693)") @@ -471,9 +527,13 @@ def testEvent_head_ref_deleted_Attributes(self): self.assertEqual(self.event_head_ref_deleted.label, None) self.assertEqual(self.event_head_ref_deleted.assignee, None) self.assertEqual(self.event_head_ref_deleted.assigner, None) + self.assertEqual(self.event_head_ref_deleted.author_association, None) self.assertEqual(self.event_head_ref_deleted.review_requester, None) self.assertEqual(self.event_head_ref_deleted.requested_reviewer, None) + self.assertEqual(self.event_head_ref_deleted.requested_team, None) self.assertEqual(self.event_head_ref_deleted.milestone, None) + self.assertEqual(self.event_head_ref_deleted.performed_via_github_app, None) + self.assertEqual(self.event_head_ref_deleted.project_card, None) self.assertEqual(self.event_head_ref_deleted.rename, None) self.assertEqual(self.event_head_ref_deleted.dismissed_review, None) self.assertEqual(self.event_head_ref_deleted.lock_reason, None) @@ -501,12 +561,16 @@ def testEvent_head_ref_restored_Attributes(self): self.assertEqual(self.event_head_ref_restored.label, None) self.assertEqual(self.event_head_ref_restored.assignee, None) self.assertEqual(self.event_head_ref_restored.assigner, None) + self.assertEqual(self.event_head_ref_restored.author_association, None) self.assertEqual(self.event_head_ref_restored.review_requester, None) self.assertEqual(self.event_head_ref_restored.requested_reviewer, None) + self.assertEqual(self.event_head_ref_restored.requested_team, None) self.assertEqual(self.event_head_ref_restored.milestone, None) - self.assertEqual(self.event_head_ref_deleted.rename, None) + self.assertEqual(self.event_head_ref_restored.performed_via_github_app, None) + self.assertEqual(self.event_head_ref_restored.project_card, None) + self.assertEqual(self.event_head_ref_restored.rename, None) self.assertEqual(self.event_head_ref_restored.dismissed_review, None) - self.assertEqual(self.event_head_ref_deleted.lock_reason, None) + self.assertEqual(self.event_head_ref_restored.lock_reason, None) self.assertEqual(repr(self.event_head_ref_restored), "IssueEvent(id=1782917299)") def testEvent_milestoned_Attributes(self): @@ -528,9 +592,13 @@ def testEvent_milestoned_Attributes(self): self.assertEqual(self.event_milestoned.label, None) self.assertEqual(self.event_milestoned.assignee, None) self.assertEqual(self.event_milestoned.assigner, None) + self.assertEqual(self.event_milestoned.author_association, None) self.assertEqual(self.event_milestoned.review_requester, None) self.assertEqual(self.event_milestoned.requested_reviewer, None) + self.assertEqual(self.event_milestoned.requested_team, None) self.assertEqual(self.event_milestoned.milestone.title, "Version 1.25.0") + self.assertEqual(self.event_milestoned.performed_via_github_app, None) + self.assertEqual(self.event_milestoned.project_card, None) self.assertEqual(self.event_milestoned.rename, None) self.assertEqual(self.event_milestoned.dismissed_review, None) self.assertEqual(self.event_milestoned.lock_reason, None) @@ -558,16 +626,20 @@ def testEvent_demilestoned_Attributes(self): self.assertEqual(self.event_demilestoned.label, None) self.assertEqual(self.event_demilestoned.assignee, None) self.assertEqual(self.event_demilestoned.assigner, None) + self.assertEqual(self.event_demilestoned.author_association, None) self.assertEqual(self.event_demilestoned.review_requester, None) self.assertEqual(self.event_demilestoned.requested_reviewer, None) + self.assertEqual(self.event_demilestoned.requested_team, None) self.assertEqual(self.event_demilestoned.milestone.title, "Version 1.25.0") + self.assertEqual(self.event_demilestoned.performed_via_github_app, None) + self.assertEqual(self.event_demilestoned.project_card, None) self.assertEqual(self.event_demilestoned.rename, None) self.assertEqual(self.event_demilestoned.dismissed_review, None) self.assertEqual(self.event_demilestoned.lock_reason, None) self.assertEqual(repr(self.event_demilestoned), "IssueEvent(id=1783596452)") def testEvent_locked_Attributes(self): - self.assertEqual(self.event_locked.actor.login, "PyGithub") + self.assertEqual(self.event_locked.actor.login, "sfdye") self.assertEqual(self.event_locked.commit_id, None) self.assertEqual( self.event_locked.created_at, @@ -585,16 +657,20 @@ def testEvent_locked_Attributes(self): self.assertEqual(self.event_locked.label, None) self.assertEqual(self.event_locked.assignee, None) self.assertEqual(self.event_locked.assigner, None) + self.assertEqual(self.event_locked.author_association, None) self.assertEqual(self.event_locked.review_requester, None) self.assertEqual(self.event_locked.requested_reviewer, None) + self.assertEqual(self.event_locked.requested_team, None) self.assertEqual(self.event_locked.milestone, None) + self.assertEqual(self.event_locked.performed_via_github_app, None) + self.assertEqual(self.event_locked.project_card, None) self.assertEqual(self.event_locked.rename, None) self.assertEqual(self.event_locked.dismissed_review, None) self.assertEqual(self.event_locked.lock_reason, "too heated") self.assertEqual(repr(self.event_locked), "IssueEvent(id=1783596743)") def testEvent_unlocked_Attributes(self): - self.assertEqual(self.event_unlocked.actor.login, "PyGithub") + self.assertEqual(self.event_unlocked.actor.login, "sfdye") self.assertEqual(self.event_unlocked.commit_id, None) self.assertEqual( self.event_unlocked.created_at, @@ -612,9 +688,13 @@ def testEvent_unlocked_Attributes(self): self.assertEqual(self.event_unlocked.label, None) self.assertEqual(self.event_unlocked.assignee, None) self.assertEqual(self.event_unlocked.assigner, None) + self.assertEqual(self.event_unlocked.author_association, None) self.assertEqual(self.event_unlocked.review_requester, None) self.assertEqual(self.event_unlocked.requested_reviewer, None) + self.assertEqual(self.event_unlocked.requested_team, None) self.assertEqual(self.event_unlocked.milestone, None) + self.assertEqual(self.event_unlocked.performed_via_github_app, None) + self.assertEqual(self.event_unlocked.project_card, None) self.assertEqual(self.event_unlocked.rename, None) self.assertEqual(self.event_unlocked.dismissed_review, None) self.assertEqual(self.event_unlocked.lock_reason, None) @@ -642,9 +722,13 @@ def testEvent_review_dismissed_Attributes(self): self.assertEqual(self.event_review_dismissed.label, None) self.assertEqual(self.event_review_dismissed.assignee, None) self.assertEqual(self.event_review_dismissed.assigner, None) + self.assertEqual(self.event_review_dismissed.author_association, None) self.assertEqual(self.event_review_dismissed.review_requester, None) self.assertEqual(self.event_review_dismissed.requested_reviewer, None) + self.assertEqual(self.event_review_dismissed.requested_team, None) self.assertEqual(self.event_review_dismissed.milestone, None) + self.assertEqual(self.event_review_dismissed.performed_via_github_app, None) + self.assertEqual(self.event_review_dismissed.project_card, None) self.assertEqual(self.event_review_dismissed.rename, None) self.assertEqual( self.event_review_dismissed.dismissed_review, @@ -679,9 +763,13 @@ def testEvent_review_request_removed_Attributes(self): self.assertEqual(self.event_review_request_removed.label, None) self.assertEqual(self.event_review_request_removed.assignee, None) self.assertEqual(self.event_review_request_removed.assigner, None) + self.assertEqual(self.event_review_request_removed.author_association, None) self.assertEqual(self.event_review_request_removed.review_requester.login, "sfdye") self.assertEqual(self.event_review_request_removed.requested_reviewer.login, "jasonwhite") + self.assertEqual(self.event_review_request_removed.requested_team, None) self.assertEqual(self.event_review_request_removed.milestone, None) + self.assertEqual(self.event_review_request_removed.performed_via_github_app, None) + self.assertEqual(self.event_review_request_removed.project_card, None) self.assertEqual(self.event_review_request_removed.rename, None) self.assertEqual(self.event_review_request_removed.dismissed_review, None) self.assertEqual(self.event_review_request_removed.lock_reason, None) @@ -709,9 +797,13 @@ def testEvent_marked_as_duplicate_Attributes(self): self.assertEqual(self.event_marked_as_duplicate.label, None) self.assertEqual(self.event_marked_as_duplicate.assignee, None) self.assertEqual(self.event_marked_as_duplicate.assigner, None) + self.assertEqual(self.event_marked_as_duplicate.author_association, None) self.assertEqual(self.event_marked_as_duplicate.review_requester, None) self.assertEqual(self.event_marked_as_duplicate.requested_reviewer, None) + self.assertEqual(self.event_marked_as_duplicate.requested_team, None) self.assertEqual(self.event_marked_as_duplicate.milestone, None) + self.assertEqual(self.event_marked_as_duplicate.performed_via_github_app, None) + self.assertEqual(self.event_marked_as_duplicate.project_card, None) self.assertEqual(self.event_marked_as_duplicate.rename, None) self.assertEqual(self.event_marked_as_duplicate.dismissed_review, None) self.assertEqual(self.event_marked_as_duplicate.lock_reason, None) @@ -739,9 +831,13 @@ def testEvent_unmarked_as_duplicate_Attributes(self): self.assertEqual(self.event_unmarked_as_duplicate.label, None) self.assertEqual(self.event_unmarked_as_duplicate.assignee, None) self.assertEqual(self.event_unmarked_as_duplicate.assigner, None) + self.assertEqual(self.event_unmarked_as_duplicate.author_association, None) self.assertEqual(self.event_unmarked_as_duplicate.review_requester, None) self.assertEqual(self.event_unmarked_as_duplicate.requested_reviewer, None) + self.assertEqual(self.event_unmarked_as_duplicate.requested_team, None) self.assertEqual(self.event_unmarked_as_duplicate.milestone, None) + self.assertEqual(self.event_unmarked_as_duplicate.performed_via_github_app, None) + self.assertEqual(self.event_unmarked_as_duplicate.project_card, None) self.assertEqual(self.event_unmarked_as_duplicate.rename, None) self.assertEqual(self.event_unmarked_as_duplicate.dismissed_review, None) self.assertEqual(self.event_unmarked_as_duplicate.lock_reason, None) @@ -769,9 +865,22 @@ def testEvent_added_to_project_Attributes(self): self.assertEqual(self.event_added_to_project.label, None) self.assertEqual(self.event_added_to_project.assignee, None) self.assertEqual(self.event_added_to_project.assigner, None) + self.assertEqual(self.event_added_to_project.author_association, None) self.assertEqual(self.event_added_to_project.review_requester, None) self.assertEqual(self.event_added_to_project.requested_reviewer, None) + self.assertEqual(self.event_added_to_project.requested_team, None) self.assertEqual(self.event_added_to_project.milestone, None) + self.assertEqual(self.event_added_to_project.performed_via_github_app, None) + self.assertEqual( + self.event_added_to_project.project_card, + { + "column_name": "To do", + "id": 12179888, + "project_id": 1714960, + "project_url": "https://api.github.com/projects/1714960", + "url": "https://api.github.com/projects/columns/cards/12179888", + }, + ) self.assertEqual(self.event_added_to_project.rename, None) self.assertEqual(self.event_added_to_project.dismissed_review, None) self.assertEqual(self.event_added_to_project.lock_reason, None) @@ -799,9 +908,23 @@ def testEvent_moved_columns_in_project_Attributes(self): self.assertEqual(self.event_moved_columns_in_project.label, None) self.assertEqual(self.event_moved_columns_in_project.assignee, None) self.assertEqual(self.event_moved_columns_in_project.assigner, None) + self.assertEqual(self.event_moved_columns_in_project.author_association, None) self.assertEqual(self.event_moved_columns_in_project.review_requester, None) self.assertEqual(self.event_moved_columns_in_project.requested_reviewer, None) + self.assertEqual(self.event_moved_columns_in_project.requested_team, None) self.assertEqual(self.event_moved_columns_in_project.milestone, None) + self.assertEqual(self.event_moved_columns_in_project.performed_via_github_app, None) + self.assertEqual( + self.event_moved_columns_in_project.project_card, + { + "column_name": "In progress", + "id": 12179888, + "previous_column_name": "To do", + "project_id": 1714960, + "project_url": "https://api.github.com/projects/1714960", + "url": "https://api.github.com/projects/columns/cards/12179888", + }, + ) self.assertEqual(self.event_moved_columns_in_project.rename, None) self.assertEqual(self.event_moved_columns_in_project.dismissed_review, None) self.assertEqual(self.event_moved_columns_in_project.lock_reason, None) @@ -829,9 +952,22 @@ def testEvent_removed_from_project_Attributes(self): self.assertEqual(self.event_removed_from_project.label, None) self.assertEqual(self.event_removed_from_project.assignee, None) self.assertEqual(self.event_removed_from_project.assigner, None) + self.assertEqual(self.event_removed_from_project.author_association, None) self.assertEqual(self.event_removed_from_project.review_requester, None) self.assertEqual(self.event_removed_from_project.requested_reviewer, None) + self.assertEqual(self.event_removed_from_project.requested_team, None) self.assertEqual(self.event_removed_from_project.milestone, None) + self.assertEqual(self.event_removed_from_project.performed_via_github_app, None) + self.assertEqual( + self.event_removed_from_project.project_card, + { + "column_name": "In progress", + "id": 12179888, + "project_id": 1714960, + "project_url": "https://api.github.com/projects/1714960", + "url": "https://api.github.com/projects/columns/cards/12179888", + }, + ) self.assertEqual(self.event_removed_from_project.rename, None) self.assertEqual(self.event_removed_from_project.dismissed_review, None) self.assertEqual(self.event_removed_from_project.lock_reason, None) @@ -859,9 +995,22 @@ def testEvent_converted_note_to_issue_Attributes(self): self.assertEqual(self.event_converted_note_to_issue.label, None) self.assertEqual(self.event_converted_note_to_issue.assignee, None) self.assertEqual(self.event_converted_note_to_issue.assigner, None) + self.assertEqual(self.event_converted_note_to_issue.author_association, None) self.assertEqual(self.event_converted_note_to_issue.review_requester, None) self.assertEqual(self.event_converted_note_to_issue.requested_reviewer, None) + self.assertEqual(self.event_converted_note_to_issue.requested_team, None) self.assertEqual(self.event_converted_note_to_issue.milestone, None) + self.assertEqual(self.event_converted_note_to_issue.performed_via_github_app, None) + self.assertEqual( + self.event_converted_note_to_issue.project_card, + { + "column_name": "To do", + "id": 12179901, + "project_id": 1714960, + "project_url": "https://api.github.com/projects/1714960", + "url": "https://api.github.com/projects/columns/cards/12179901", + }, + ) self.assertEqual(self.event_converted_note_to_issue.rename, None) self.assertEqual(self.event_converted_note_to_issue.dismissed_review, None) self.assertEqual(self.event_converted_note_to_issue.lock_reason, None) diff --git a/tests/Label.py b/tests/Label.py index 256d94bd68..077686cf37 100644 --- a/tests/Label.py +++ b/tests/Label.py @@ -15,6 +15,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -34,20 +35,26 @@ # # ################################################################################ +from __future__ import annotations + from . import Framework class Label(Framework.TestCase): def setUp(self): super().setUp() - self.label = self.g.get_user().get_repo("PyGithub").get_label("Bug") + self.label = self.g.get_repo("PyGithub/PyGithub").get_label("Bug") def testAttributes(self): self.assertEqual(self.label.color, "e10c02") - self.assertEqual(self.label.name, "Bug") + self.assertEqual(self.label.default, True) + self.assertIsNone(self.label.description) + self.assertEqual(self.label.id, 3330121) + self.assertEqual(self.label.name, "bug") self.assertIsNone(self.label.description) - self.assertEqual(self.label.url, "https://api.github.com/repos/jacquev6/PyGithub/labels/Bug") - self.assertEqual(repr(self.label), 'Label(name="Bug")') + self.assertEqual(self.label.node_id, "MDU6TGFiZWwzMzMwMTIx") + self.assertEqual(self.label.url, "https://api.github.com/repos/PyGithub/PyGithub/labels/bug") + self.assertEqual(repr(self.label), 'Label(name="bug")') def testEdit(self): self.label.edit("LabelEditedByPyGithub", "0000ff", "Description of LabelEditedByPyGithub") @@ -56,7 +63,7 @@ def testEdit(self): self.assertEqual(self.label.name, "LabelEditedByPyGithub") self.assertEqual( self.label.url, - "https://api.github.com/repos/jacquev6/PyGithub/labels/LabelEditedByPyGithub", + "https://api.github.com/repos/PyGithub/PyGithub/labels/LabelEditedByPyGithub", ) def testDelete(self): diff --git a/tests/License.py b/tests/License.py index fdf3baa014..0064abdcb2 100644 --- a/tests/License.py +++ b/tests/License.py @@ -7,6 +7,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,6 +27,8 @@ # # ################################################################################ +from __future__ import annotations + from . import Framework @@ -35,12 +38,14 @@ def setUp(self): self.license = self.g.get_license("mit") def testAttributes(self): + self.assertEqual(self.license.html_url, "http://choosealicense.com/licenses/mit/") self.assertEqual(self.license.key, "mit") self.assertEqual(self.license.name, "MIT License") self.assertEqual( self.license.description, "A short and simple permissive license with conditions only requiring preservation of copyright and license notices. Licensed works, modifications, and larger works may be distributed under different terms and without source code.", ) + self.assertEqual(self.license.node_id, "MDc6TGljZW5zZTEz") self.assertEqual(self.license.spdx_id, "MIT") self.assertEqual( self.license.body, diff --git a/tests/GitMembership.py b/tests/Membership.py similarity index 78% rename from tests/GitMembership.py rename to tests/Membership.py index bd8641b5d8..4884090816 100644 --- a/tests/GitMembership.py +++ b/tests/Membership.py @@ -17,6 +17,7 @@ # Copyright 2019 Wan Liuyang # # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -36,14 +37,21 @@ # # ################################################################################ +from __future__ import annotations + from . import Framework -class GitMembership(Framework.TestCase): - def testGetMembership(self): - octocat = self.g.get_user() - self.assertEqual(octocat.login, "octocat") - membership_data = octocat.get_organization_membership("github") - self.assertEqual(membership_data.user.login, "octocat") - self.assertEqual(membership_data.role, "admin") - self.assertEqual(membership_data.organization.login, "github") +class Membership(Framework.TestCase): + def setUp(self): + super().setUp() + self.membership = self.g.get_user().get_organization_membership("github") + + def testAttributes(self): + self.assertEqual(self.membership.organization.login, "github") + self.assertEqual(self.membership.organization_url, "https://api.github.com/orgs/invitocat") + self.assertIsNone(self.membership.permissions) + self.assertEqual(self.membership.role, "admin") + self.assertEqual(self.membership.state, "pending") + self.assertEqual(self.membership.url, "https://api.github.com/orgs/invitocat/memberships/defunkt") + self.assertEqual(self.membership.user.login, "octocat") diff --git a/tests/Migration.py b/tests/Migration.py index 0e8b660a41..23095a9422 100644 --- a/tests/Migration.py +++ b/tests/Migration.py @@ -8,6 +8,7 @@ # Copyright 2023 Christoph Reiter # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,6 +28,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timedelta, timezone import github @@ -41,14 +44,32 @@ def setUp(self): self.migration = self.user.get_migrations()[0] def testAttributes(self): + self.assertIsNone(self.migration.archive_url) + self.assertEqual( + self.migration.created_at, datetime(2018, 9, 14, 1, 35, 35, tzinfo=timezone(timedelta(seconds=19800))) + ) + self.assertEqual(self.migration.exclude, ["repositories"]) + self.assertEqual(self.migration.exclude_attachments, False) + self.assertEqual(self.migration.exclude_git_data, False) + self.assertEqual(self.migration.exclude_metadata, False) + self.assertEqual(self.migration.exclude_owner_projects, False) + self.assertEqual(self.migration.exclude_releases, False) + self.assertEqual(self.migration.guid, "608bceae-b790-11e8-8b43-4e3cb0dd56cc") self.assertEqual(self.migration.id, 25320) + self.assertEqual(self.migration.lock_repositories, False) + self.assertEqual(self.migration.node_id, "MDk6TWlncmF0aW9uMjUzMjA=") + self.assertEqual(self.migration.org_metadata_only, False) self.assertEqual(self.migration.owner.login, "singh811") self.assertEqual(self.migration.guid, "608bceae-b790-11e8-8b43-4e3cb0dd56cc") + self.assertEqual(self.migration.repositories[0].full_name, "singh811/sample-repo") self.assertEqual(self.migration.state, "exported") self.assertEqual(self.migration.lock_repositories, False) self.assertEqual(self.migration.exclude_attachments, False) self.assertEqual(len(self.migration.repositories), 1) self.assertEqual(self.migration.repositories[0].name, "sample-repo") + self.assertEqual( + self.migration.updated_at, datetime(2018, 9, 14, 1, 35, 46, tzinfo=timezone(timedelta(seconds=19800))) + ) self.assertEqual(self.migration.url, "https://api.github.com/user/migrations/25320") self.assertEqual( self.migration.created_at, diff --git a/tests/Milestone.py b/tests/Milestone.py index 89c43b29bc..1a00d876c7 100644 --- a/tests/Milestone.py +++ b/tests/Milestone.py @@ -14,6 +14,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,6 +34,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import date, datetime, timezone from . import Framework @@ -41,28 +44,27 @@ class Milestone(Framework.TestCase): def setUp(self): super().setUp() - self.milestone = self.g.get_user().get_repo("PyGithub").get_milestone(1) + self.milestone = self.g.get_repo("PyGithub/PyGithub").get_milestone(1) def testAttributes(self): + self.assertEqual(self.milestone.closed_at, datetime(2012, 3, 12, 22, 18, 49, tzinfo=timezone.utc)) self.assertEqual(self.milestone.closed_issues, 2) - self.assertEqual( - self.milestone.created_at, - datetime(2012, 3, 8, 12, 22, 10, tzinfo=timezone.utc), - ) + self.assertEqual(self.milestone.created_at, datetime(2012, 3, 8, 12, 22, 10, tzinfo=timezone.utc)) + self.assertEqual(self.milestone.creator.login, "jacquev6") self.assertEqual(self.milestone.description, "") + self.assertEqual(self.milestone.due_on, datetime(2012, 3, 13, 7, 0, 0, tzinfo=timezone.utc)) + self.assertEqual(self.milestone.html_url, "https://github.com/PyGithub/PyGithub/milestone/1") + self.assertEqual(self.milestone.id, 93546) self.assertEqual( - self.milestone.due_on, - datetime(2012, 3, 13, 7, 0, 0, tzinfo=timezone.utc), + self.milestone.labels_url, "https://api.github.com/repos/PyGithub/PyGithub/milestones/1/labels" ) - self.assertEqual(self.milestone.id, 93546) + self.assertEqual(self.milestone.node_id, "MDk6TWlsZXN0b25lOTM1NDY=") self.assertEqual(self.milestone.number, 1) self.assertEqual(self.milestone.open_issues, 0) self.assertEqual(self.milestone.state, "closed") self.assertEqual(self.milestone.title, "Version 0.4") - self.assertEqual( - self.milestone.url, - "https://api.github.com/repos/jacquev6/PyGithub/milestones/1", - ) + self.assertEqual(self.milestone.updated_at, datetime(2012, 9, 11, 18, 48, 34, tzinfo=timezone.utc)) + self.assertEqual(self.milestone.url, "https://api.github.com/repos/PyGithub/PyGithub/milestones/1") self.assertEqual(self.milestone.creator.login, "jacquev6") self.assertEqual(repr(self.milestone), 'Milestone(title="Version 0.4", number=1)') diff --git a/tests/NamedUser.py b/tests/NamedUser.py index 641d3685bc..76f04998b0 100644 --- a/tests/NamedUser.py +++ b/tests/NamedUser.py @@ -19,6 +19,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -38,6 +39,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -48,6 +51,62 @@ def setUp(self): super().setUp() self.user = self.g.get_user("jacquev6") + def testAttributes(self): + self.assertEqual(self.user.avatar_url, "https://avatars.githubusercontent.com/u/327146?v=4") + self.assertIsNone(self.user.bio) + self.assertEqual(self.user.blog, "http://vincent-jacques.net") + self.assertIsNone(self.user.collaborators) + self.assertIsNone(self.user.company) + self.assertIsNone(self.user.contributions) + self.assertEqual(self.user.created_at, datetime(2010, 7, 9, 6, 10, 6, tzinfo=timezone.utc)) + self.assertIsNone(self.user.disk_usage) + self.assertIsNone(self.user.display_login) + self.assertEqual(self.user.email, "vincent@vincent-jacques.net") + self.assertEqual(self.user.events_url, "https://api.github.com/users/jacquev6/events{/privacy}") + self.assertEqual(self.user.followers, 98) + self.assertEqual(self.user.followers_url, "https://api.github.com/users/jacquev6/followers") + self.assertEqual(self.user.following, 62) + self.assertEqual(self.user.following_url, "https://api.github.com/users/jacquev6/following{/other_user}") + self.assertEqual(self.user.gists_url, "https://api.github.com/users/jacquev6/gists{/gist_id}") + self.assertEqual(self.user.gravatar_id, "") + self.assertTrue(self.user.hireable) + self.assertEqual(self.user.html_url, "https://github.com/jacquev6") + self.assertEqual(self.user.id, 327146) + self.assertEqual(self.user.location, "France") + self.assertEqual(self.user.login, "jacquev6") + self.assertEqual(self.user.name, "Vincent Jacques") + self.assertEqual(self.user.node_id, "MDQ6VXNlcjMyNzE0Ng==") + self.assertIsNone(self.user.notification_email) + self.assertEqual(self.user.organizations_url, "https://api.github.com/users/jacquev6/orgs") + self.assertIsNone(self.user.owned_private_repos) + self.assertIsNone(self.user.permissions) + self.assertIsNone(self.user.plan) + self.assertIsNone(self.user.plan) + self.assertIsNone(self.user.plan) + self.assertIsNone(self.user.plan) + self.assertIsNone(self.user.private_gists) + self.assertEqual(self.user.public_gists, 18) + self.assertEqual(self.user.public_repos, 38) + self.assertEqual(self.user.received_events_url, "https://api.github.com/users/jacquev6/received_events") + self.assertEqual(self.user.repos_url, "https://api.github.com/users/jacquev6/repos") + self.assertIsNone(self.user.role_name) + self.assertEqual(self.user.score, None) + self.assertEqual(self.user.site_admin, False) + self.assertIsNone(self.user.starred_at) + self.assertEqual(self.user.starred_url, "https://api.github.com/users/jacquev6/starred{/owner}{/repo}") + self.assertEqual(self.user.subscriptions_url, "https://api.github.com/users/jacquev6/subscriptions") + self.assertIsNone(self.user.suspended_at) + self.assertIsNone(self.user.text_matches) + self.assertIsNone(self.user.total_private_repos) + self.assertIsNone(self.user.twitter_username) + self.assertEqual(self.user.type, "User") + self.assertEqual(self.user.updated_at, datetime(2024, 10, 20, 7, 14, 52, tzinfo=timezone.utc)) + self.assertEqual(self.user.url, "https://api.github.com/users/jacquev6") + self.assertEqual(self.user.node_id, "MDQ6VXNlcjMyNzE0Ng==") + self.assertEqual(repr(self.user), 'NamedUser(login="jacquev6")') + self.assertEqual(repr(self.user.plan), "None") + self.assertEqual(self.user.user_view_type, "public") + def testAttributesOfOtherUser(self): self.user = self.g.get_user("nvie") self.assertEqual( @@ -86,50 +145,6 @@ def testAttributesOfOtherUser(self): self.assertEqual(self.user.node_id, "MDQ6VXNlcjgzODQ0") self.assertEqual(repr(self.user), 'NamedUser(login="nvie")') - def testAttributesOfSelf(self): - self.assertEqual( - self.user.avatar_url, - "https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", - ) - self.assertEqual(self.user.bio, "") - self.assertEqual(self.user.blog, "http://vincent-jacques.net") - self.assertEqual(self.user.collaborators, 0) - self.assertEqual(self.user.company, "Criteo") - self.assertEqual( - self.user.created_at, - datetime(2010, 7, 9, 6, 10, 6, tzinfo=timezone.utc), - ) - self.assertEqual(self.user.disk_usage, 17080) - self.assertEqual(self.user.email, "vincent@vincent-jacques.net") - self.assertEqual(self.user.followers, 13) - self.assertEqual(self.user.following, 24) - self.assertEqual(self.user.gravatar_id, "b68de5ae38616c296fa345d2b9df2225") - self.assertFalse(self.user.hireable) - self.assertEqual(self.user.html_url, "https://github.com/jacquev6") - self.assertEqual(self.user.id, 327146) - self.assertEqual(self.user.location, "Paris, France") - self.assertEqual(self.user.login, "jacquev6") - self.assertEqual(self.user.name, "Vincent Jacques") - self.assertEqual(self.user.owned_private_repos, 5) - self.assertEqual(self.user.plan.name, "micro") - self.assertEqual(self.user.plan.collaborators, 1) - self.assertEqual(self.user.plan.space, 614400) - self.assertEqual(self.user.plan.private_repos, 5) - self.assertEqual(self.user.private_gists, 5) - self.assertEqual(self.user.public_gists, 2) - self.assertEqual(self.user.public_repos, 11) - self.assertEqual( - self.user.suspended_at, - datetime(2013, 8, 10, 7, 11, 7, tzinfo=timezone.utc), - ) - self.assertEqual(self.user.total_private_repos, 5) - self.assertIsNone(self.user.twitter_username) - self.assertEqual(self.user.type, "User") - self.assertEqual(self.user.url, "https://api.github.com/users/jacquev6") - self.assertEqual(self.user.node_id, "MDQ6VXNlcjMyNzE0Ng==") - self.assertEqual(repr(self.user), 'NamedUser(login="jacquev6")') - self.assertEqual(repr(self.user.plan), 'Plan(name="micro")') - def testGetGists(self): self.assertListKeyEqual( self.user.get_gists(), diff --git a/tests/Organization.py b/tests/Organization.py index 9195c4ae72..98edc35499 100644 --- a/tests/Organization.py +++ b/tests/Organization.py @@ -43,6 +43,8 @@ # Copyright 2024 Oskar Jansson <56458534+janssonoskar@users.noreply.github.com># # Copyright 2024 Thomas Cooper # # Copyright 2024 Thomas Crowley <15927917+thomascrowley@users.noreply.github.com># +# Copyright 2025 Bill Napier # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -62,6 +64,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from unittest import mock @@ -77,46 +81,72 @@ def setUp(self): self.org = self.g.get_organization("BeaverSoftware") def testAttributes(self): - self.assertEqual(self.org.avatar_url, "https://avatars1.githubusercontent.com/u/1?v=4") + self.assertIsNone(self.org.advanced_security_enabled_for_new_repositories) + self.assertIsNone(self.org.archived_at) + self.assertEqual(self.org.avatar_url, "https://avatars.githubusercontent.com/u/12345678?v=4") self.assertEqual(self.org.billing_email, "foo@example.com") self.assertEqual(self.org.blog, "http://www.example.com") self.assertEqual(self.org.collaborators, 9) self.assertEqual(self.org.company, None) - self.assertEqual( - self.org.created_at, - datetime(2014, 1, 9, 16, 56, 17, tzinfo=timezone.utc), - ) - self.assertEqual(self.org.default_repository_permission, "none") + self.assertEqual(self.org.created_at, datetime(2014, 1, 9, 16, 56, 17, tzinfo=timezone.utc)) + self.assertIsNone(self.org.default_repository_permission) + self.assertIsNone(self.org.dependabot_alerts_enabled_for_new_repositories) + self.assertIsNone(self.org.dependabot_security_updates_enabled_for_new_repositories) + self.assertIsNone(self.org.dependency_graph_enabled_for_new_repositories) self.assertEqual(self.org.description, "BeaverSoftware writes software.") - self.assertEqual(self.org.disk_usage, 2) - self.assertEqual(self.org.email, "") - self.assertEqual(self.org.followers, 0) - self.assertEqual(self.org.following, 0) + self.assertIsNone(self.org.disk_usage) + self.assertIsNone(self.org.display_login) + self.assertEqual(self.org.email, "foo@example.com") + self.assertEqual(self.org.events_url, "https://api.github.com/orgs/BeaverSoftware/events") + self.assertEqual(self.org.followers, 130) + self.assertEqual(self.org.following, 1) self.assertEqual(self.org.gravatar_id, None) - self.assertTrue(self.org.has_organization_projects) - self.assertTrue(self.org.has_repository_projects) + self.assertEqual(self.org.has_organization_projects, True) + self.assertEqual(self.org.has_repository_projects, True) self.assertEqual(self.org.hooks_url, "https://api.github.com/orgs/BeaverSoftware/hooks") self.assertEqual(self.org.html_url, "https://github.com/BeaverSoftware") - self.assertEqual(self.org.id, 1) + self.assertEqual(self.org.id, 21341965) + self.assertEqual(self.org.is_verified, False) self.assertEqual(self.org.issues_url, "https://api.github.com/orgs/BeaverSoftware/issues") self.assertEqual(self.org.location, "Paris, France") self.assertEqual(self.org.login, "BeaverSoftware") - self.assertFalse(self.org.members_can_create_repositories) + self.assertEqual(self.org.members_allowed_repository_creation_type, "none") + self.assertEqual(self.org.members_can_create_internal_repositories, False) + self.assertEqual(self.org.members_can_create_pages, True) + self.assertEqual(self.org.members_can_create_private_pages, True) + self.assertEqual(self.org.members_can_create_private_repositories, False) + self.assertEqual(self.org.members_can_create_public_pages, True) + self.assertEqual(self.org.members_can_create_public_repositories, False) + self.assertEqual(self.org.members_can_create_repositories, False) + self.assertEqual(self.org.members_can_fork_private_repositories, False) + self.assertEqual(self.org.members_url, "https://api.github.com/orgs/BeaverSoftware/members{/member}") self.assertEqual(self.org.name, "BeaverSoftware") - self.assertEqual(self.org.owned_private_repos, 0) - self.assertEqual(self.org.plan.name, "free") - self.assertEqual(self.org.plan.private_repos, 3) - self.assertEqual(self.org.plan.space, 1) - self.assertEqual(self.org.plan.filled_seats, 3) - self.assertEqual(self.org.plan.seats, 0) - self.assertEqual(self.org.private_gists, 0) + self.assertEqual(self.org.node_id, "AbCdEfG") + self.assertEqual(self.org.owned_private_repos, 191) + self.assertEqual(self.org.plan.name, "enterprise") + self.assertEqual(self.org.plan.private_repos, 999999) + self.assertEqual(self.org.plan.space, 123456789) + self.assertEqual(self.org.plan.filled_seats, 640) + self.assertEqual(self.org.plan.seats, 1024) + self.assertIsNone(self.org.private_gists) self.assertEqual(self.org.public_gists, 0) - self.assertEqual(self.org.public_repos, 27) - self.assertEqual(self.org.total_private_repos, 7) - self.assertEqual(self.org.two_factor_requirement_enabled, None) + self.assertEqual( + self.org.public_members_url, "https://api.github.com/orgs/BeaverSoftware/public_members{/member}" + ) + self.assertEqual(self.org.public_repos, 121) + self.assertEqual(self.org.repos_url, "https://api.github.com/orgs/BeaverSoftware/repos") + self.assertIsNone(self.org.secret_scanning_enabled_for_new_repositories) + self.assertIsNone(self.org.secret_scanning_push_protection_custom_link) + self.assertIsNone(self.org.secret_scanning_push_protection_custom_link_enabled) + self.assertIsNone(self.org.secret_scanning_push_protection_enabled_for_new_repositories) + self.assertEqual(self.org.total_private_repos, 176) + self.assertIsNone(self.org.twitter_username) + self.assertEqual(self.org.two_factor_requirement_enabled, True) self.assertEqual(self.org.type, "Organization") + self.assertEqual(self.org.updated_at, datetime(2024, 8, 20, 8, 44, 26, tzinfo=timezone.utc)) self.assertEqual(self.org.url, "https://api.github.com/orgs/BeaverSoftware") self.assertEqual(repr(self.org), 'Organization(login="BeaverSoftware")') + self.assertEqual(self.org.web_commit_signoff_required, False) def testAddMembersDefaultRole(self): lyloa = self.g.get_user("lyloa") @@ -226,6 +256,7 @@ def testGetHookDelivery(self): self.assertEqual(delivery.duration, 0.27) self.assertEqual(delivery.status, "OK") self.assertEqual(delivery.status_code, 200) + self.assertIsNone(delivery.throttled_at) self.assertEqual(delivery.event, "issues") self.assertEqual(delivery.action, "opened") self.assertEqual(delivery.installation_id, 123) @@ -525,6 +556,9 @@ def testInviteUserWithRoleAndTeam(self): def testInviteUserAsNonOwner(self): with self.assertRaises(github.GithubException) as raisedexp: self.org.invite_user(email="bar@example.com") + self.assertEqual( + raisedexp.exception.message, "You must be an admin to create an invitation to an organization." + ) self.assertEqual(raisedexp.exception.status, 403) self.assertEqual( raisedexp.exception.data, @@ -672,6 +706,7 @@ def testCreateCustomProperty(self): self.assertEqual(created_property.required, True) self.assertEqual(created_property.default_value, "foo") self.assertEqual(created_property.description, "description") + self.assertIsNone(created_property.url) self.assertEqual(created_property.values_editable_by, "org_actors") def testGetCustomProperties(self): @@ -687,6 +722,7 @@ def testGetCustomProperty(self): self.assertEqual(custom_property.required, True) self.assertEqual(custom_property.default_value, "foo") self.assertEqual(custom_property.description, "description") + self.assertIsNone(custom_property.url) self.assertEqual(custom_property.values_editable_by, "org_actors") def testCreateCustomPropertyValues(self): @@ -704,3 +740,39 @@ def testRemoveCustomProperty(self): self.org.remove_custom_property("property_1") with self.assertRaises(github.UnknownObjectException): self.org.get_custom_property("property_1") + + def testGetCodeSecurityConfigs(self): + configs = list(self.org.get_code_security_configs()) + self.assertEqual(configs.pop().id, 17) + + def testCreateCodeSecurityConfigs(self): + config = self.org.create_code_security_config(name="test1", description="This is a description") + self.assertEqual(config.name, "test1") + + self.org.delete_code_security_config(id=config.id) + + def testGetCodeSecurityConfig(self): + config = self.org.get_code_security_config(id=17) + self.assertEqual(config.id, 17) + + def testSetDefaultCodeSecurityConfig(self): + self.org.set_default_code_security_config(id=17, default_for_new_repos="all") + configs = self.org.get_default_code_security_configs() + for config in configs: + if config.default_for_new_repos == "all": + self.assertEqual(config.configuration.id, 17) + + def testAttachDetachSecurityConfig(self): + config = self.org.create_code_security_config(name="test1", description="This is a description") + repo = self.org.get_repo("test1") + repo.attach_security_config(id=config.id) + status = "unknown" + while status != "enforced": + repo_config = repo.get_security_config() + if repo_config: + status = repo_config.status + else: + status = "unknown" + + self.assertEqual(config.id, repo_config.configuration.id) + repo.detach_security_config() diff --git a/tests/PaginatedList.py b/tests/PaginatedList.py index 064b8cf19f..8cf19df583 100644 --- a/tests/PaginatedList.py +++ b/tests/PaginatedList.py @@ -19,6 +19,8 @@ # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2023 YugoHino # # Copyright 2024 Enrico Minack # +# Copyright 2024 Kian-Meng Ang # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -310,7 +312,7 @@ def testCustomPerPage(self): self.assertEqual(len(list(self.repo.get_issues())), 456) def testCustomPerPageWithNoUrlParams(self): - from . import ( # Don't polute github.tests namespace, it would conflict with github.tests.CommitComment + from . import ( # Don't pollute github.tests namespace, it would conflict with github.tests.CommitComment CommitComment, ) diff --git a/tests/Pickle.py b/tests/Pickle.py index ddee90774e..2d28f98ffa 100644 --- a/tests/Pickle.py +++ b/tests/Pickle.py @@ -3,6 +3,8 @@ # Copyright 2023 Andrew Dawes <53574062+AndrewJDawes@users.noreply.github.com> # # Copyright 2023 Enrico Minack # # Copyright 2023 Hemslo Wang # +# Copyright 2024 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -22,17 +24,22 @@ # # ################################################################################ +import inspect import pickle -import unittest +import sys +from abc import ABC import github +from github.Auth import AppAuth, AppAuthToken, AppInstallationAuth, AppUserAuth, Auth, Login, NetrcAuth, Token from github.PaginatedList import PaginatedList from github.Repository import Repository +from . import Framework + REPO_NAME = "PyGithub/PyGithub" -class Pickle(unittest.TestCase): +class Pickle(Framework.TestCase): def testPickleGithub(self): gh = github.Github() gh2 = pickle.loads(pickle.dumps(gh)) @@ -42,8 +49,8 @@ def testPickleGithub(self): self.assertEqual(len(gh2._Github__requester._Requester__custom_connections), 0) def testPickleRepository(self): - gh = github.Github() - repo = gh.get_repo(REPO_NAME, lazy=True) + gh = github.Github(lazy=True) + repo = gh.get_repo(REPO_NAME) repo2 = pickle.loads(pickle.dumps(repo)) self.assertIsInstance(repo2, Repository) self.assertIsNotNone(repo2._requester._Requester__connection_lock) @@ -56,3 +63,30 @@ def testPicklePaginatedList(self): branches = repo.get_branches() branches2 = pickle.loads(pickle.dumps(branches)) self.assertIsInstance(branches2, PaginatedList) + + auths = [ + Login("login", "password"), + Token("token"), + AppAuth("id", "key"), + AppAuthToken("token"), + AppInstallationAuth(AppAuth("id", "key"), 123), + AppUserAuth("client_id", "client_secret", "access_token"), + NetrcAuth(), + ] + + def testPickleAuthSetup(self): + # check we are testing *all* exiting auth classes + auth_module = sys.modules[github.Auth.__name__] + existing_auths = [ + clazz_type.__name__ + for clazz, clazz_type in inspect.getmembers(auth_module, inspect.isclass) + if Auth in clazz_type.mro() and ABC not in clazz_type.__bases__ + ] + tested_auths = [type(auth).__name__ for auth in self.auths] + self.assertSequenceEqual(sorted(existing_auths), sorted(tested_auths)) + + def testPickleAuth(self): + for auth in self.auths: + with self.subTest(auth=type(auth).__name__): + auth2 = pickle.loads(pickle.dumps(auth)) + self.assertIsInstance(auth2, type(auth)) diff --git a/tests/Project.py b/tests/Project.py index b7a5ab9652..181cb84327 100644 --- a/tests/Project.py +++ b/tests/Project.py @@ -10,6 +10,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,7 +30,9 @@ # # ################################################################################ -import github +from __future__ import annotations + +from datetime import datetime, timezone from . import Framework @@ -38,164 +41,34 @@ class Project(Framework.TestCase): def setUp(self): super().setUp() self.repo = self.g.get_user().get_repo("PyGithub") + self.proj = self.g.get_project(1682941) - def testGetProject(self): - pid = 1682941 - proj = self.g.get_project(pid) - self.assertEqual(proj.id, pid) - self.assertEqual(proj.name, "TestProject") - self.assertEqual(repr(proj), 'Project(name="TestProject")') + # See https://developer.github.com/v3/projects/#get-a-project + def testAttributes(self): + self.assertEqual(self.proj.body, "To be used for testing project access API for PyGithub.") + self.assertEqual(self.proj.columns_url, "https://api.github.com/projects/1682941/columns") + self.assertEqual(self.proj.created_at, datetime(2018, 8, 1, 4, 6, 57, tzinfo=timezone.utc)) + self.assertEqual(self.proj.creator.login, "bbi-yggy") + self.assertEqual(self.proj.html_url, "https://github.com/bbi-yggy/PyGithub/projects/1") + self.assertEqual(self.proj.id, 1682941) + self.assertEqual(self.proj.name, "TestProject") + self.assertEqual(repr(self.proj), 'Project(name="TestProject")') + self.assertEqual(self.proj.node_id, "MDc6UHJvamVjdDE2ODI5NDE=") + self.assertEqual(self.proj.number, 1) + self.assertIsNone(self.proj.organization_permission) + self.assertEqual(self.proj.owner_url, "https://api.github.com/repos/bbi-yggy/PyGithub") + self.assertIsNone(self.proj.private) + self.assertEqual(self.proj.state, "open") + self.assertEqual(self.proj.updated_at, datetime(2018, 8, 3, 0, 31, 17, tzinfo=timezone.utc)) + self.assertEqual(self.proj.url, "https://api.github.com/projects/1682941") def testGetOrganizationProjects(self): expectedProjects = ["Project1", "Project2", "Project3"] org = self.g.get_organization("PyGithubTestOrg") - projects = [] - for proj in org.get_projects("open"): - projects.append(proj.name) + projects = [proj.name for proj in org.get_projects("open")] self.assertEqual(projects, expectedProjects) def testGetRepositoryProjects(self): expectedProjects = ["TestProject", "TestProjectClosed"] - projects = [] - for proj in self.repo.get_projects("all"): - projects.append(proj.name) - self.assertEqual(projects, expectedProjects) - - # See https://developer.github.com/v3/projects/#get-a-project - def testProjectAttributes(self): - pid = 1682941 - proj = self.g.get_project(pid) - self.assertEqual(proj.owner_url, "https://api.github.com/repos/bbi-yggy/PyGithub") - self.assertEqual(proj.url, "https://api.github.com/projects/1682941") - self.assertEqual(proj.html_url, "https://github.com/bbi-yggy/PyGithub/projects/1") - self.assertEqual(proj.columns_url, "https://api.github.com/projects/1682941/columns") - self.assertEqual(proj.id, pid) - self.assertEqual(proj.node_id, "MDc6UHJvamVjdDE2ODI5NDE=") - self.assertEqual(proj.name, "TestProject") - self.assertEqual(proj.body, "To be used for testing project access API for PyGithub.") - self.assertEqual(proj.number, 1) - self.assertEqual(proj.state, "open") - self.assertEqual(proj.creator, self.repo.owner) - self.assertEqual(proj.created_at.year, 2018) - self.assertTrue(proj.updated_at > proj.created_at) - - # See https://developer.github.com/v3/projects/columns/#get-a-project-column - def testProjectColumnAttributes(self): - proj = self.g.get_project(1682941) - col = proj.get_columns()[0] - self.assertEqual(col.id, 3138830) - self.assertEqual(col.node_id, "MDEzOlByb2plY3RDb2x1bW4zMTM4ODMw") - self.assertEqual(col.name, "To Do") - self.assertEqual(col.url, "https://api.github.com/projects/columns/3138830") - self.assertEqual(col.project_url, "https://api.github.com/projects/1682941") - self.assertEqual(col.cards_url, "https://api.github.com/projects/columns/3138830/cards") - self.assertEqual(col.created_at.year, 2018) - self.assertTrue(col.updated_at >= col.created_at) - self.assertEqual(repr(col), 'ProjectColumn(name="To Do")') - - # See https://developer.github.com/v3/projects/cards/#get-a-project-card - def testProjectCardAttributes(self): - proj = self.g.get_project(1682941) - col = proj.get_columns()[1] - card = col.get_cards()[0] - self.assertEqual(card.url, "https://api.github.com/projects/columns/cards/11780055") - self.assertEqual(card.column_url, "https://api.github.com/projects/columns/3138831") - self.assertEqual(card.content_url, "https://api.github.com/repos/bbi-yggy/PyGithub/issues/1") - self.assertEqual(card.id, 11780055) - self.assertEqual(card.node_id, "MDExOlByb2plY3RDYXJkMTE3ODAwNTU=") - self.assertEqual(card.note, None) # No notes for cards with content. - self.assertEqual(card.creator, self.repo.owner) - self.assertEqual(card.created_at.year, 2018) - self.assertTrue(card.updated_at >= card.created_at) - self.assertFalse(card.archived) - self.assertEqual(repr(card), "ProjectCard(id=11780055)") - - def testGetProjectCardContent(self): - proj = self.g.get_project(1682941) - col = proj.get_columns()[1] - cards = col.get_cards() - - pull_card = cards[0] - pull = pull_card.get_content("PullRequest") - self.assertIsInstance(pull, github.PullRequest.PullRequest) - self.assertEqual(pull.title, "Work in progress on support for GitHub projects API.") - self.assertRaises(ValueError, pull_card.get_content, "foo") - - issue_card = cards[1] - issue = issue_card.get_content() - self.assertIsInstance(issue, github.Issue.Issue) - self.assertEqual(issue.title, "Test issue") - - note_card = cards[2] - note_content = note_card.get_content() - self.assertEqual(note_content, None) - - def testProjectCardMove(self): - proj = self.g.get_project(1682941) - cols = proj.get_columns() - card = cols[1].get_cards()[0] - self.assertTrue(card.move("top", cols[2].id)) - self.assertTrue(card.move("bottom", cols[1])) - - def testProjectCardDelete(self): - proj = self.g.get_project(1682941) - cols = proj.get_columns() - card = cols[1].get_cards()[0] - self.assertTrue(card.delete()) - - def testGetAllProjectCards(self): - expectedProjects = ["TestProject"] - expectedCards = 5 - projects = [] - cards = 0 - for proj in self.repo.get_projects(): - projects.append(proj.name) - for col in proj.get_columns(): - for card in col.get_cards("all"): - cards += 1 + projects = [proj.name for proj in self.repo.get_projects("all")] self.assertEqual(projects, expectedProjects) - self.assertEqual(cards, expectedCards) - - def testCreateColumn(self): - project = self.repo.create_project("Project created by PyGithub", "Project Body") - column = project.create_column( - "Project Column created by PyGithub", - ) - self.assertEqual(column.id, 3999333) - - def testCreateCardWithNote(self): - project = self.repo.create_project("Project created by PyGithub", "Project Body") - column = project.create_column( - "Project Column created by PyGithub", - ) - card1 = column.create_card(note="Project Card") - self.assertEqual(card1.id, 16039019) - - def testCreateCardFromIssue(self): - project = self.repo.create_project("Project created by PyGithub", "Project Body") - column = project.create_column( - "Project Column created by PyGithub", - ) - issue = self.repo.create_issue(title="Issue created by PyGithub") - card2 = column.create_card(content_id=issue.id, content_type="Issue") - self.assertEqual(card2.id, 16039106) - - def testEditCardWithoutParameters(self): - proj = self.g.get_project(4015343) - col = proj.get_columns()[0] - card = col.create_card(note="Project Card") - card.edit() - - def testEditCardNote(self): - proj = self.g.get_project(4015343) - col = proj.get_columns()[0] - card = col.create_card(note="Project Card") - card.edit(note="Edited Card") - self.assertEqual(card.note, "Edited Card") - - def testEditCardArchived(self): - proj = self.g.get_project(4015343) - col = proj.get_columns()[0] - card = col.create_card(note="Project Card") - card.edit(archived=True) - self.assertEqual(card.archived, True) diff --git a/tests/ProjectCard.py b/tests/ProjectCard.py new file mode 100644 index 0000000000..dc6dbbeee3 --- /dev/null +++ b/tests/ProjectCard.py @@ -0,0 +1,123 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2025 Enrico Minack # +# # +# 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 . # +# # +################################################################################ + +from __future__ import annotations + +import github + +from . import Framework + + +class ProjectCard(Framework.TestCase): + def setUp(self): + super().setUp() + self.repo = self.g.get_user().get_repo("PyGithub") + self.proj = self.g.get_project(1682941) + self.cols = self.proj.get_columns() + self.col = self.cols[1] + cards = self.col.get_cards() + self.pull_card = cards[0] + self.issue_card = cards[1] + self.note_card = cards[2] + self.edit_col = self.g.get_project(4015343).get_columns()[0] + + # See https://developer.github.com/v3/projects/cards/#get-a-project-card + def testAttributes(self): + card = self.pull_card + self.assertEqual(card.url, "https://api.github.com/projects/columns/cards/11780055") + self.assertEqual(card.column_url, "https://api.github.com/projects/columns/3138831") + self.assertEqual(card.content_url, "https://api.github.com/repos/bbi-yggy/PyGithub/issues/1") + self.assertEqual(card.id, 11780055) + self.assertEqual(card.node_id, "MDExOlByb2plY3RDYXJkMTE3ODAwNTU=") + self.assertEqual(card.note, None) # No notes for cards with content. + self.assertEqual(card.creator, self.repo.owner) + self.assertEqual(card.created_at.year, 2018) + self.assertTrue(card.updated_at >= card.created_at) + self.assertFalse(card.archived) + self.assertEqual(repr(card), "ProjectCard(id=11780055)") + + def testGetContent(self): + pull = self.pull_card.get_content("PullRequest") + self.assertIsInstance(pull, github.PullRequest.PullRequest) + self.assertEqual(pull.title, "Work in progress on support for GitHub projects API.") + self.assertRaises(ValueError, self.pull_card.get_content, "foo") + + issue = self.issue_card.get_content() + self.assertIsInstance(issue, github.Issue.Issue) + self.assertEqual(issue.title, "Test issue") + + note_content = self.note_card.get_content() + self.assertEqual(note_content, None) + + def testMove(self): + cols = self.cols + card = self.pull_card + self.assertTrue(card.move("top", cols[2].id)) + self.assertTrue(card.move("bottom", cols[1])) + + def testDelete(self): + card = self.pull_card + self.assertTrue(card.delete()) + + def testGetAll(self): + expectedProjects = ["TestProject"] + expectedCards = 5 + projects = [] + cards = 0 + for proj in self.repo.get_projects(): + projects.append(proj.name) + for col in proj.get_columns(): + for card in col.get_cards("all"): + cards += 1 + self.assertEqual(projects, expectedProjects) + self.assertEqual(cards, expectedCards) + + def testCreateWithNote(self): + project = self.repo.create_project("Project created by PyGithub", "Project Body") + column = project.create_column( + "Project Column created by PyGithub", + ) + card1 = column.create_card(note="Project Card") + self.assertEqual(card1.id, 16039019) + + def testCreateFromIssue(self): + project = self.repo.create_project("Project created by PyGithub", "Project Body") + column = project.create_column( + "Project Column created by PyGithub", + ) + issue = self.repo.create_issue(title="Issue created by PyGithub") + card2 = column.create_card(content_id=issue.id, content_type="Issue") + self.assertEqual(card2.id, 16039106) + + def testEditWithoutParameters(self): + card = self.edit_col.create_card(note="Project Card") + card.edit() + + def testEditNote(self): + card = self.edit_col.create_card(note="Project Card") + card.edit(note="Edited Card") + self.assertEqual(card.note, "Edited Card") + + def testEditArchived(self): + card = self.edit_col.create_card(note="Project Card") + card.edit(archived=True) + self.assertEqual(card.archived, True) diff --git a/tests/ProjectColumn.py b/tests/ProjectColumn.py index 9059b08c04..c02ae9473b 100644 --- a/tests/ProjectColumn.py +++ b/tests/ProjectColumn.py @@ -4,6 +4,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,6 +34,29 @@ def setUp(self): super().setUp() self.get_project_column = self.g.get_project_column(8700460) self.move_project_column = self.g.get_project_column(8748065) + proj = self.g.get_project(1682941) + self.col = proj.get_columns()[0] + + # See https://developer.github.com/v3/projects/columns/#get-a-project-column + def testAttributes(self): + col = self.col + self.assertEqual(col.id, 3138830) + self.assertEqual(col.node_id, "MDEzOlByb2plY3RDb2x1bW4zMTM4ODMw") + self.assertEqual(col.name, "To Do") + self.assertEqual(col.url, "https://api.github.com/projects/columns/3138830") + self.assertEqual(col.project_url, "https://api.github.com/projects/1682941") + self.assertEqual(col.cards_url, "https://api.github.com/projects/columns/3138830/cards") + self.assertEqual(col.created_at.year, 2018) + self.assertTrue(col.updated_at >= col.created_at) + self.assertEqual(repr(col), 'ProjectColumn(name="To Do")') + + def testCreate(self): + repo = self.g.get_user().get_repo("PyGithub") + project = repo.create_project("Project created by PyGithub", "Project Body") + column = project.create_column( + "Project Column created by PyGithub", + ) + self.assertEqual(column.id, 3999333) def testGetProjectColumn(self): self.assertEqual(self.get_project_column.id, 8700460) diff --git a/tests/PublicKey.py b/tests/PublicKey.py index d7ce794d61..95fc613abc 100644 --- a/tests/PublicKey.py +++ b/tests/PublicKey.py @@ -16,6 +16,7 @@ # Copyright 2021 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -35,18 +36,24 @@ # # ################################################################################ +from __future__ import annotations + from . import Framework class PublicKey(Framework.TestCase): def testAttributes(self): self.public_key = self.g.get_user().get_repo("PyGithub").get_public_key() + self.assertIsNone(self.public_key.created_at) + self.assertIsNone(self.public_key.id) self.assertEqual(self.public_key.key, "u5e1Z25+z8pmgVVt5Pd8k0z/sKpVL1MXYtRAecE4vm8=") self.assertEqual(self.public_key.key_id, "568250167242549743") self.assertEqual( repr(self.public_key), 'PublicKey(key_id="568250167242549743", key="u5e1Z25+z8pmgVVt5Pd8k0z/sKpVL1MXYtRAecE4vm8=")', ) + self.assertIsNone(self.public_key.title) + self.assertIsNone(self.public_key.url) def testAttributes_with_int_key_id(self): self.public_key = self.g.get_user().get_repo("PyGithub").get_public_key() diff --git a/tests/PullRequest.py b/tests/PullRequest.py index ce70840fa8..5f0b4757b4 100644 --- a/tests/PullRequest.py +++ b/tests/PullRequest.py @@ -28,6 +28,8 @@ # Copyright 2024 Austin Sasko # # Copyright 2024 Den Stroebel # # Copyright 2024 Enrico Minack # +# Copyright 2025 Bruno Didot # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -47,6 +49,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone import pytest @@ -107,9 +111,27 @@ def testAttributesIssue256(self): self.assertEqual(self.pullIssue256Uncached.mergeable_state, "unknown") def testAttributes(self): + self.assertEqual( + self.pull._links, + { + "self": {"href": "https://api.github.com/repos/PyGithub/PyGithub/pulls/31"}, + "html": {"href": "https://github.com/PyGithub/PyGithub/pull/31"}, + "issue": {"href": "https://api.github.com/repos/PyGithub/PyGithub/issues/31"}, + "comments": {"href": "https://api.github.com/repos/PyGithub/PyGithub/issues/31/comments"}, + "review_comments": {"href": "https://api.github.com/repos/PyGithub/PyGithub/pulls/31/comments"}, + "review_comment": {"href": "https://api.github.com/repos/PyGithub/PyGithub/pulls/comments{/number}"}, + "commits": {"href": "https://api.github.com/repos/PyGithub/PyGithub/pulls/31/commits"}, + "statuses": { + "href": "https://api.github.com/repos/PyGithub/PyGithub/statuses/8a4f306d4b223682dd19410d4a9150636ebe4206" + }, + }, + ) + self.assertIsNone(self.pull.active_lock_reason) self.assertEqual(self.pull.additions, 511) self.assertEqual(self.pull.assignee.login, "jacquev6") self.assertListKeyEqual(self.pull.assignees, lambda a: a.login, ["jacquev6"]) + self.assertEqual(self.pull.author_association, "MEMBER") + self.assertIsNone(self.pull.auto_merge) self.assertEqual(self.pull.base.label, "PyGithub:topic/RewriteWithGeneratedCode") self.assertEqual(self.pull.base.sha, "ed866fc43833802ab553e5ff8581c81bb00dd433") self.assertEqual(self.pull.base.user.login, "PyGithub") @@ -122,13 +144,16 @@ def testAttributes(self): datetime(2012, 5, 27, 10, 29, 7, tzinfo=timezone.utc), ) self.assertEqual(self.pull.comments, 1) + self.assertEqual(self.pull.comments_url, "https://api.github.com/repos/PyGithub/PyGithub/issues/31/comments") self.assertEqual(self.pull.commits, 3) + self.assertEqual(self.pull.commits_url, "https://api.github.com/repos/PyGithub/PyGithub/pulls/31/commits") self.assertEqual( self.pull.created_at, datetime(2012, 5, 27, 9, 25, 36, tzinfo=timezone.utc), ) self.assertEqual(self.pull.deletions, 384) self.assertEqual(self.pull.diff_url, "https://github.com/PyGithub/PyGithub/pull/31.diff") + self.assertEqual(self.pull.draft, False) self.assertEqual(self.pull.head.ref, "master") self.assertEqual(self.pull.html_url, "https://github.com/PyGithub/PyGithub/pull/31") self.assertEqual(self.pull.id, 1436215) @@ -137,7 +162,18 @@ def testAttributes(self): "https://api.github.com/repos/PyGithub/PyGithub/issues/31", ) self.assertListKeyEqual(self.pull.labels, lambda a: a.name, []) + self.assertEqual(self.pull.locked, False) + self.assertEqual(self.pull.maintainer_can_modify, False) + self.assertEqual(self.pull.merge_commit_sha, "28ae6dd10ebccd5eaf8db8dacb5b699ee7f4a663") self.assertFalse(self.pull.mergeable) + self.assertEqual(self.pull.mergeable_state, "dirty") + self.assertEqual(self.pull.merged, True) + self.assertEqual(self.pull.merged_at, datetime(2012, 5, 27, 10, 29, 7, tzinfo=timezone.utc)) + self.assertEqual(self.pull.merged_by.login, "jacquev6") + self.assertEqual(self.pull.milestone.number, 1) + self.assertEqual(self.pull.node_id, "MDExOlB1bGxSZXF1ZXN0MTQzNjIxNQ==") + self.assertEqual(self.pull.number, 31) + self.assertEqual(self.pull.patch_url, "https://github.com/PyGithub/PyGithub/pull/31.patch") self.assertFalse(self.pull.rebaseable) self.assertTrue(self.pull.merged) self.assertEqual( @@ -147,8 +183,20 @@ def testAttributes(self): self.assertEqual(self.pull.merged_by.login, "jacquev6") self.assertEqual(self.pull.number, 31) self.assertEqual(self.pull.patch_url, "https://github.com/PyGithub/PyGithub/pull/31.patch") + self.assertEqual(self.pull.requested_reviewers[0].login, "sfdye") + self.assertEqual(self.pull.requested_teams[0].id, 123) + self.assertEqual( + self.pull.review_comment_url, "https://api.github.com/repos/PyGithub/PyGithub/pulls/comments{/number}" + ) self.assertEqual(self.pull.review_comments, 2) + self.assertEqual( + self.pull.review_comments_url, "https://api.github.com/repos/PyGithub/PyGithub/pulls/31/comments" + ) self.assertEqual(self.pull.state, "closed") + self.assertEqual( + self.pull.statuses_url, + "https://api.github.com/repos/PyGithub/PyGithub/statuses/8a4f306d4b223682dd19410d4a9150636ebe4206", + ) self.assertEqual(self.pull.title, "Title edited by PyGithub") self.assertEqual( self.pull.updated_at, @@ -454,6 +502,30 @@ def testUpdateBranch(self): self.assertTrue(self.pull.update_branch("addaebea821105cf6600441f05ff2b413ab21a36")) self.assertTrue(self.pull.update_branch()) + def testConvertToDraft(self): + ready_pr = self.g.get_repo("didot/PyGithub", lazy=True).get_pull(1) + self.assertFalse(ready_pr.draft) + response = ready_pr.convert_to_draft() + self.assertTrue(ready_pr.draft) + assert response == { + "clientMutationId": None, + "pullRequest": { + "isDraft": True, + }, + } + + def testMarkReadyForReview(self): + draft_pr = self.g.get_repo("didot/PyGithub", lazy=True).get_pull(2) + self.assertTrue(draft_pr.draft) + response = draft_pr.mark_ready_for_review() + self.assertFalse(draft_pr.draft) + assert response == { + "clientMutationId": None, + "pullRequest": { + "isDraft": False, + }, + } + def testDeleteOnMerge(self): self.assertTrue(self.delete_restore_repo.get_branch(self.delete_restore_pull.head.ref)) self.assertFalse(self.delete_restore_pull.is_merged()) @@ -462,6 +534,7 @@ def testDeleteOnMerge(self): self.assertTrue(self.delete_restore_pull.is_merged()) with self.assertRaises(github.GithubException) as raisedexp: self.delete_restore_repo.get_branch(self.delete_restore_pull.head.ref) + self.assertEqual(raisedexp.exception.message, "Branch not found") self.assertEqual( raisedexp.exception.data, { @@ -473,6 +546,7 @@ def testDeleteOnMerge(self): def testRestoreBranch(self): with self.assertRaises(github.GithubException) as raisedexp: self.delete_restore_repo.get_branch(self.delete_restore_pull.head.ref) + self.assertEqual(raisedexp.exception.message, "Branch not found") self.assertEqual(raisedexp.exception.status, 404) self.assertEqual( raisedexp.exception.data, @@ -489,6 +563,7 @@ def testDeleteBranch(self): self.delete_restore_pull.delete_branch(force=False) with self.assertRaises(github.GithubException) as raisedexp: self.delete_restore_repo.get_branch(self.delete_restore_pull.head.ref) + self.assertEqual(raisedexp.exception.message, "Branch not found") self.assertEqual(raisedexp.exception.status, 404) self.assertEqual( raisedexp.exception.data, @@ -503,6 +578,7 @@ def testForceDeleteBranch(self): self.assertEqual(self.delete_restore_pull.delete_branch(force=True), None) with self.assertRaises(github.GithubException) as raisedexp: self.delete_restore_repo.get_branch(self.delete_restore_pull.head.ref) + self.assertEqual(raisedexp.exception.message, "Branch not found") self.assertEqual(raisedexp.exception.status, 404) self.assertEqual( raisedexp.exception.data, @@ -546,7 +622,7 @@ def testEnableAutomergeError(self): # To reproduce this, the PR repository need to have the "Allow auto-merge" option disabled with pytest.raises(github.GithubException) as error: self.pull.enable_automerge() - + assert error.value.message is None assert error.value.status == 400 assert error.value.data == { "data": {"enablePullRequestAutoMerge": None}, diff --git a/tests/PullRequest1684.py b/tests/PullRequest1684.py index b9489ea9dc..09b85c829f 100644 --- a/tests/PullRequest1684.py +++ b/tests/PullRequest1684.py @@ -16,6 +16,7 @@ # Copyright 2020 Victor Zeng # # Copyright 2023 Enrico Minack # # Copyright 2023 Trim21 # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -53,7 +54,7 @@ def testGetRunners(self): self.assertEqual("0D80B14DC506", runner.name) self.assertEqual("offline", runner.status) self.assertFalse(runner.busy) - labels = runner.labels() + labels = runner.labels self.assertEqual(3, len(labels)) self.assertEqual("self-hosted", labels[0]["name"]) self.assertEqual("Windows", labels[1]["name"]) diff --git a/tests/PullRequestComment.py b/tests/PullRequestComment.py index 47d6a711d4..e5af80cc42 100644 --- a/tests/PullRequestComment.py +++ b/tests/PullRequestComment.py @@ -15,6 +15,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -34,6 +35,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -42,37 +45,61 @@ class PullRequestComment(Framework.TestCase): def setUp(self): super().setUp() - self.comment = self.g.get_user().get_repo("PyGithub").get_pull(31).get_comment(886298) + self.comment = self.g.get_repo("PyGithub/PyGithub").get_pull(31).get_comment(1580134) def testAttributes(self): - self.assertEqual(self.comment.body, "Comment created by PyGithub") - self.assertEqual(self.comment.commit_id, "8a4f306d4b223682dd19410d4a9150636ebe4206") self.assertEqual( - self.comment.created_at, - datetime(2012, 5, 27, 9, 40, 12, tzinfo=timezone.utc), + self.comment._links, + { + "html": {"href": "https://github.com/PyGithub/PyGithub/pull/31#discussion_r1580134"}, + "pull_request": {"href": "https://api.github.com/repos/PyGithub/PyGithub/pulls/31"}, + "self": {"href": "https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/1580134"}, + }, ) - self.assertEqual(self.comment.id, 886298) + self.assertEqual(self.comment.author_association, "MEMBER") + self.assertEqual(self.comment.body, "Review comment created for PyGithub\n") + self.assertIsNone(self.comment.body_html) + self.assertIsNone(self.comment.body_text) + self.assertEqual(self.comment.commit_id, "8a4f306d4b223682dd19410d4a9150636ebe4206") + self.assertEqual(self.comment.created_at, datetime(2012, 9, 11, 20, 6, 32, tzinfo=timezone.utc)) + self.assertEqual(len(self.comment.diff_hunk), 434) + self.assertEqual(self.comment.html_url, "https://github.com/PyGithub/PyGithub/pull/31#discussion_r1580134") + self.assertEqual(self.comment.id, 1580134) + self.assertIsNone(self.comment.in_reply_to_id) + self.assertEqual(self.comment.line, 73) + self.assertEqual(self.comment.node_id, "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE1ODAxMzQ=") self.assertEqual(self.comment.original_commit_id, "8a4f306d4b223682dd19410d4a9150636ebe4206") + self.assertIsNone(self.comment.original_line) self.assertEqual(self.comment.original_position, 5) - self.assertEqual(self.comment.path, "src/github/Issue.py") + self.assertIsNone(self.comment.original_start_line) + self.assertEqual(self.comment.path, "codegen/templates/GithubObject.py") self.assertEqual(self.comment.position, 5) + self.assertIsNone(self.comment.pull_request_review_id) + self.assertEqual(self.comment.pull_request_url, "https://api.github.com/repos/PyGithub/PyGithub/pulls/31") self.assertEqual( - self.comment.updated_at, - datetime(2012, 5, 27, 9, 40, 12, tzinfo=timezone.utc), - ) - self.assertEqual( - self.comment.url, - "https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/886298", + self.comment.reactions, + { + "url": "https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/1580134/reactions", + "total_count": 2, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 1, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0, + }, ) + self.assertEqual(self.comment.side, "RIGHT") + self.assertIsNone(self.comment.start_line) + self.assertIsNone(self.comment.start_side) + self.assertEqual(self.comment.subject_type, "line") + self.assertEqual(self.comment.updated_at, datetime(2012, 9, 11, 20, 6, 32, tzinfo=timezone.utc)) + self.assertEqual(self.comment.url, "https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/1580134") self.assertEqual(self.comment.user.login, "jacquev6") - self.assertEqual( - self.comment.html_url, - "https://github.com/jacquev6/PyGithub/pull/170#issuecomment-18637907", - ) - self.assertEqual( - repr(self.comment), - 'PullRequestComment(user=NamedUser(login="jacquev6"), id=886298)', - ) + self.assertEqual(self.comment.html_url, "https://github.com/PyGithub/PyGithub/pull/31#discussion_r1580134") + self.assertEqual(repr(self.comment), 'PullRequestComment(user=NamedUser(login="jacquev6"), id=1580134)') def testEdit(self): self.comment.edit("Comment edited by PyGithub") diff --git a/tests/RateLimiting.py b/tests/RateLimiting.py index f9311cee8d..16909ead48 100644 --- a/tests/RateLimiting.py +++ b/tests/RateLimiting.py @@ -15,6 +15,8 @@ # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2023 Nikolay Yurin # +# Copyright 2024 Bill Napier # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -53,13 +55,34 @@ def testGetRateLimit(self): rateLimit = self.g.get_rate_limit() self.assertEqual( repr(rateLimit), - "RateLimit(core=Rate(reset=2023-05-15 23:57:21+00:00, remaining=4904, limit=5000))", + "RateLimit(core=Rate(reset=2024-12-13 06:43:18+00:00, remaining=4988, limit=5000))", ) self.assertEqual( repr(rateLimit.core), - "Rate(reset=2023-05-15 23:57:21+00:00, remaining=4904, limit=5000)", + "Rate(reset=2024-12-13 06:43:18+00:00, remaining=4988, limit=5000)", ) self.assertEqual(rateLimit.core.limit, 5000) - self.assertEqual(rateLimit.core.remaining, 4904) - self.assertEqual(rateLimit.core.used, 96) - self.assertEqual(rateLimit.core.reset, datetime(2023, 5, 15, 23, 57, 21, tzinfo=timezone.utc)) + self.assertEqual(rateLimit.core.remaining, 4988) + self.assertEqual(rateLimit.core.used, 12) + self.assertEqual(rateLimit.core.reset, datetime(2024, 12, 13, 6, 43, 18, tzinfo=timezone.utc)) + + self.assertEqual( + repr(rateLimit.actions_runner_registration), + "Rate(reset=2024-12-13 07:28:18+00:00, remaining=10000, limit=10000)", + ) + self.assertEqual( + repr(rateLimit.code_scanning_upload), "Rate(reset=2024-12-13 07:28:18+00:00, remaining=1000, limit=1000)" + ) + self.assertEqual(repr(rateLimit.code_search), "Rate(reset=2024-12-13 06:29:18+00:00, remaining=10, limit=10)") + self.assertEqual( + repr(rateLimit.dependency_snapshots), "Rate(reset=2024-12-13 06:29:18+00:00, remaining=100, limit=100)" + ) + self.assertEqual(repr(rateLimit.graphql), "Rate(reset=2024-12-13 06:43:42+00:00, remaining=4808, limit=5000)") + self.assertEqual( + repr(rateLimit.integration_manifest), "Rate(reset=2024-12-13 07:28:18+00:00, remaining=5000, limit=5000)" + ) + self.assertEqual(repr(rateLimit.scim), "Rate(reset=2024-12-13 07:28:18+00:00, remaining=15000, limit=15000)") + self.assertEqual(repr(rateLimit.search), "Rate(reset=2024-12-13 06:29:18+00:00, remaining=30, limit=30)") + self.assertEqual( + repr(rateLimit.source_import), "Rate(reset=2024-12-13 06:29:18+00:00, remaining=100, limit=100)" + ) diff --git a/tests/ReplayData/AuthenticatedUser.testGetInvitations.txt b/tests/ReplayData/AuthenticatedUser.testGetInvitations.txt index 84082582c1..255629a1be 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetInvitations.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetInvitations.txt @@ -7,4 +7,4 @@ None None 200 [('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', 'W/"35a3bb21f0a95b0eb36e9c82b157f5da"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('referrer-policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('status', '200 OK'), ('x-ratelimit-remaining', '4998'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type'), ('transfer-encoding', 'chunked'), ('date', 'Thu, 27 Jun 2019 11:53:53 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('content-encoding', 'gzip'), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1561640033')] -[{"node_id":"MDIwOlJlcG9zaXRvcnlJbnZpdGF0aW9uMTcyODUzODg=","repository":{"deployments_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","private":false,"owner":{"disk_usage":16692,"total_private_repos":5,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","hireable":false,"id":327146,"blog":"http://vincent-jacques.net","followers":13,"location":"Paris,France","type":"User","email":"vincent@vincent-jacques.net","private_gists":5,"owned_private_repos":5,"company":"Criteo","html_url":"https://github.com/jacquev6","node_id":"MDQ6VXNlcjMyNzE0Ng==","plan":{"collaborators":1,"name":"micro","private_repos":5,"space":614400},"bio":"","public_gists":1,"collaborators":0,"name":"VincentJacques","url":"https://api.github.com/users/jacquev6","created_at":"2010-07-09T06:10:06Z","public_repos":10,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","following":24,"login":"jacquev6"},"tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","fork":true,"releases_url":"https://api.github.com/repos/jacquev6/PyGithub/releases{/id}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","html_url":"https://github.com/jacquev6/PyGithub","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","name":"PyGithub","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments{/number}","full_name":"jacquev6/PyGithub","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","id":129349732,"keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","description":"TypedinteractionswiththeGitHubAPIv3","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","node_id":"MDEwOlJlcG9zaXRvcnkxMjkzNDk3MzI=","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","url":"https://api.github.com/repos/jacquev6/PyGithub","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers"},"permissions":"write","url":"https://api.github.com/user/repository_invitations/17285388","created_at":"2019-06-27T11:47:00Z","invitee":{"following_url":"https://api.github.com/users/foobar-test1/following{/other_user}","gists_url":"https://api.github.com/users/foobar-test1/gists{/gist_id}","organizations_url":"https://api.github.com/users/foobar-test1/orgs","url":"https://api.github.com/users/foobar-test1","events_url":"https://api.github.com/users/foobar-test1/events{/privacy}","html_url":"https://github.com/foobar-test1","subscriptions_url":"https://api.github.com/users/foobar-test1/subscriptions","avatar_url":"https://avatars3.githubusercontent.com/u/52282986?v=4","repos_url":"https://api.github.com/users/foobar-test1/repos","received_events_url":"https://api.github.com/users/foobar-test1/received_events","gravatar_id":"","starred_url":"https://api.github.com/users/foobar-test1/starred{/owner}{/repo}","site_admin":false,"login":"foobar-test1","node_id":"MDQ6VXNlcjUyMjgyOTg2","type":"User","id":52282986,"followers_url":"https://api.github.com/users/foobar-test1/followers"},"inviter":{"disk_usage":16692,"total_private_repos":5,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","hireable":false,"id":327146,"blog":"http://vincent-jacques.net","followers":13,"location":"Paris,France","type":"User","email":"vincent@vincent-jacques.net","private_gists":5,"owned_private_repos":5,"company":"Criteo","html_url":"https://github.com/jacquev6","node_id":"MDQ6VXNlcjMyNzE0Ng==","plan":{"collaborators":1,"name":"micro","private_repos":5,"space":614400},"bio":"","public_gists":1,"collaborators":0,"name":"VincentJacques","url":"https://api.github.com/users/jacquev6","created_at":"2010-07-09T06:10:06Z","public_repos":10,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","following":24,"login":"jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/invitations","id":17285388}] +[{"node_id":"MDIwOlJlcG9zaXRvcnlJbnZpdGF0aW9uMTcyODUzODg=","repository":{"deployments_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","private":false,"owner":{"disk_usage":16692,"total_private_repos":5,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","hireable":false,"id":327146,"blog":"http://vincent-jacques.net","followers":13,"location":"Paris,France","type":"User","email":"vincent@vincent-jacques.net","private_gists":5,"owned_private_repos":5,"company":"Criteo","html_url":"https://github.com/jacquev6","node_id":"MDQ6VXNlcjMyNzE0Ng==","plan":{"collaborators":1,"name":"micro","private_repos":5,"space":614400},"bio":"","public_gists":1,"collaborators":0,"name":"VincentJacques","url":"https://api.github.com/users/jacquev6","created_at":"2010-07-09T06:10:06Z","public_repos":10,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","following":24,"login":"jacquev6"},"tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","fork":true,"releases_url":"https://api.github.com/repos/jacquev6/PyGithub/releases{/id}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","html_url":"https://github.com/jacquev6/PyGithub","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","name":"PyGithub","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments{/number}","full_name":"jacquev6/PyGithub","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","id":129349732,"keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","description":"TypedinteractionswiththeGitHubAPIv3","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","node_id":"MDEwOlJlcG9zaXRvcnkxMjkzNDk3MzI=","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","url":"https://api.github.com/repos/jacquev6/PyGithub","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers"},"permissions":"write","url":"https://api.github.com/user/repository_invitations/17285388","created_at":"2019-06-27T11:47:00Z","expired":true,"invitee":{"following_url":"https://api.github.com/users/foobar-test1/following{/other_user}","gists_url":"https://api.github.com/users/foobar-test1/gists{/gist_id}","organizations_url":"https://api.github.com/users/foobar-test1/orgs","url":"https://api.github.com/users/foobar-test1","events_url":"https://api.github.com/users/foobar-test1/events{/privacy}","html_url":"https://github.com/foobar-test1","subscriptions_url":"https://api.github.com/users/foobar-test1/subscriptions","avatar_url":"https://avatars3.githubusercontent.com/u/52282986?v=4","repos_url":"https://api.github.com/users/foobar-test1/repos","received_events_url":"https://api.github.com/users/foobar-test1/received_events","gravatar_id":"","starred_url":"https://api.github.com/users/foobar-test1/starred{/owner}{/repo}","site_admin":false,"login":"foobar-test1","node_id":"MDQ6VXNlcjUyMjgyOTg2","type":"User","id":52282986,"followers_url":"https://api.github.com/users/foobar-test1/followers"},"inviter":{"disk_usage":16692,"total_private_repos":5,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","hireable":false,"id":327146,"blog":"http://vincent-jacques.net","followers":13,"location":"Paris,France","type":"User","email":"vincent@vincent-jacques.net","private_gists":5,"owned_private_repos":5,"company":"Criteo","html_url":"https://github.com/jacquev6","node_id":"MDQ6VXNlcjMyNzE0Ng==","plan":{"collaborators":1,"name":"micro","private_repos":5,"space":614400},"bio":"","public_gists":1,"collaborators":0,"name":"VincentJacques","url":"https://api.github.com/users/jacquev6","created_at":"2010-07-09T06:10:06Z","public_repos":10,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","following":24,"login":"jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/invitations","id":17285388}] diff --git a/tests/ReplayData/Branch.setUp.txt b/tests/ReplayData/Branch.setUp.txt index 2d4c5d9987..707613d886 100644 --- a/tests/ReplayData/Branch.setUp.txt +++ b/tests/ReplayData/Branch.setUp.txt @@ -6,8 +6,8 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4967'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"27524c635501121933f4f78c95b1945a"'), ('date', 'Fri, 18 May 2012 20:12:19 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"owned_private_repos":5,"collaborators":0,"type":"User","hireable":false,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","public_gists":1,"company":"Criteo","bio":"","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","private_gists":5,"plan":{"collaborators":1,"private_repos":5,"name":"micro","space":614400},"public_repos":11,"followers":13,"login":"jacquev6","blog":"http://vincent-jacques.net","email":"vincent@vincent-jacques.net","disk_usage":16852,"html_url":"https://github.com/jacquev6","name":"Vincent Jacques","total_private_repos":5,"created_at":"2010-07-09T06:10:06Z","location":"Paris, France","id":327146,"following":24} +[('Date', 'Fri, 03 Jan 2025 13:59:16 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"8bdb9fd004aa2396a00fe6e7a7d95fa51df7d5cece2ab66cb6937fcc79fefd36"'), ('Last-Modified', 'Sat, 21 Dec 2024 12:42:47 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4999'), ('X-RateLimit-Reset', '1735916356'), ('X-RateLimit-Used', '1'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '99A2:59502:2086CF0C:2164DB7E:6777ED34')] +{"login":"jacquev6","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Enrico Minack","company":null,"blog":"","location":"Hannover, Germany","email":"github@enrico.minack.dev","hireable":null,"bio":"Open Source Software enthusiast, LF AI Horovod maintainer, Apache Spark contributor.","twitter_username":null,"notification_email":"github@enrico.minack.dev","public_repos":46,"public_gists":0,"followers":71,"following":1,"created_at":"2018-11-02T11:17:22Z","updated_at":"2024-12-21T12:42:47Z"} https GET @@ -17,8 +17,8 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4966'), ('content-length', '1097'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c5eec74d4b76b80283636a8efe1a132c"'), ('date', 'Fri, 18 May 2012 20:12:20 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"svn_url":"https://github.com/jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-18T05:29:54Z","forks":2,"homepage":"http://vincent-jacques.net/PyGithub","git_url":"git://github.com/jacquev6/PyGithub.git","url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","open_issues":17,"fork":false,"ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-18T05:18:16Z","size":304,"private":false,"has_downloads":true,"watchers":13,"html_url":"https://github.com/jacquev6/PyGithub","owner":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"PyGithub","permissions":{"pull":true,"admin":true,"push":true},"mirror_url":null,"language":"Python","description":"Python library implementing the full Github API v3","created_at":"2012-02-25T12:53:47Z","id":3544490} +[('Date', 'Fri, 03 Jan 2025 13:59:16 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"e27e013f9e12a242447948259448b536efd4bdb927d18be9807967290a464cd7"'), ('Last-Modified', 'Sat, 23 Nov 2024 18:31:09 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1735916356'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '99A4:4D2C4:221AEA18:22F8F7F4:6777ED34')] +{"id":446365735,"node_id":"R_kgDOGpsAJw","name":"PyGithub","full_name":"jacquev6/PyGithub","private":false,"owner":{"login":"jacquev6","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/jacquev6/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments","created_at":"2022-01-10T09:52:53Z","updated_at":"2024-11-23T18:31:09Z","pushed_at":"2025-01-03T11:21:33Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":16928,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":2,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":15,"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":2,"open_issues":15,"watchers":0,"default_branch":"main","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","user_view_type":"public","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":"2025-01-03T05:23:15Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7115,"watchers_count":7115,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":356,"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":1793,"open_issues":356,"watchers":7115,"default_branch":"main"},"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","user_view_type":"public","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":"2025-01-03T05:23:15Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7115,"watchers_count":7115,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":356,"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":1793,"open_issues":356,"watchers":7115,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"disabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":0} https GET @@ -28,8 +28,8 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '330'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"2dada6dafd332016bcdf06e42487e520"'), ('date', 'Thu, 10 May 2012 13:56:55 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"name":"topic/RewriteWithGeneratedCode","commit":{"sha":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a"},"protected":false,"protection_url":"https://api.github.com/repos/jacquev6/PyGithub/branches/topic/RewriteWithGeneratedCode/protection"} +[('Date', 'Fri, 03 Jan 2025 13:59:16 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"dce770e09e3a3ed99772d1fef739b02b468f447e542c7b761c361fd26052d139"'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4997'), ('X-RateLimit-Reset', '1735916356'), ('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'"), ('Content-Encoding', 'gzip'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '99B2:47716:2361F0A5:243FFB4B:6777ED34')] +{"name":"topic/RewriteWithGeneratedCode","commit":{"sha":"f23da453917a36c8bd48ab8d99e5fa7221884342","node_id":"C_kwDOGpsAJ9oAKGYyM2RhNDUzOTE3YTM2YzhiZDQ4YWI4ZDk5ZTVmYTcyMjE4ODQzNDI","commit":{"author":{"name":"Enrico Minack","email":"github@enrico.minack.dev","date":"2024-11-23T10:19:47Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2024-11-23T10:19:47Z"},"message":"Add capability for global laziness (#2746)\n\nAdds capability to configure global laziness Github objects through\r\n`Github(lazy=…)` and `GithubIntegration(lazy=…)`. Does not add any\r\nlaziness capability to any particular Github object.\r\n\r\nReworks `CompletableGithubObject` to support following features:\r\n- It fetches initial complete JSON, which allows to replace\r\n```python\r\nheaders, data = self.__requester.requestJsonAndCheck(\"GET\", f\"/users/{login}\")\r\nreturn github.NamedUser.NamedUser(self.__requester, headers, data, completed=True)\r\n```\r\nwith\r\n```python\r\nreturn github.NamedUser.NamedUser(self.__requester, url=f\"/users/{login}\")\r\n```\r\nWhich allows that returned `CompletableGithubObject` to be lazy.\r\n\r\nRemoves any code related to `CompletableGithubObject` from\r\n`NonCompletableGithubObject`.\r\n- Which requires replacing (for `NonCompletableGithubObject` only)\r\n```python\r\n return github.Branch.Branch(self._requester, headers, data, completed=True)\r\n```\r\nfor `NonCompletableGithubObject` with\r\n```python\r\n return github.Branch.Branch(self._requester, headers, data)\r\n```\r\n\r\nFixes #2334","tree":{"sha":"0816d1f0ddb5de2a877c5c5638b41d2fb19e6676","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/0816d1f0ddb5de2a877c5c5638b41d2fb19e6676"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/f23da453917a36c8bd48ab8d99e5fa7221884342","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJnQaxDCRC1aQ7uu5UhlAAAk4kQAARCvBiHek9LfUEKraminhu5\n+n6u4inyim2GRt1JNTlqW2UXmqAKNkPNpKUVAYeo+QdqAq2v7Io1j3+5PZFFJvkz\nJSYY0irXU0YfhU1byMJ5nc8zojT3swYGtoJMhwvFX3RrN73DcMYqyhleEaFJ3Vuo\n7rUala2gVY/c03fSPjFwej3BuYO6muL1G4KtoB0GfGze1Jr2FuhSC2ra1uMy7MHT\nhquIcAWfVUVISf8IiWck7l7G06JqTX+erobcWPMmzWoEiRGJujnFdPdoMiIvzM21\n2AcpLftQ2mhDiP6RDRXCFeUnMZsLE4Arthpujo1zSEiewcJr1mEByHSZSOWG5y2k\n5gqFOryfar/1ZPhoPHyFNhn3UdM7t88mLPFkVoS88BpLKxvAb+S336vbfNLiqtTq\n4YgFvLBwvDu4sjgdH/3/dqhsytC1v2NaDzj4kwUWbVLlBy2g/VQ+WXsHWfqk63ov\npP7l0+6b+7F+nSAlfxsQ2CWtwfHrqJvNclP2gbDkWW4fBRUJCLoTrbZlC3eXa36n\ncGPRssRbaF4ndt79eUhILJV8gmYqT0EaFv2jD+efiz+TewESqRsW9NL38bYVYv4e\nNn1kHt0DOgeD7X6xWkhHca2/f9nNDG6RqkON4OZyurJeZh19oTK5smjQxrKDOf3y\nPj1ykGfKEZYVgmR9Fd8L\n=K/fC\n-----END PGP SIGNATURE-----\n","payload":"tree 0816d1f0ddb5de2a877c5c5638b41d2fb19e6676\nparent 19ddb9f4fd996e99a5010d271b3c2e76dd280fb5\nauthor Enrico Minack 1732357187 +0100\ncommitter GitHub 1732357187 +0100\n\nAdd capability for global laziness (#2746)\n\nAdds capability to configure global laziness Github objects through\r\n`Github(lazy=…)` and `GithubIntegration(lazy=…)`. Does not add any\r\nlaziness capability to any particular Github object.\r\n\r\nReworks `CompletableGithubObject` to support following features:\r\n- It fetches initial complete JSON, which allows to replace\r\n```python\r\nheaders, data = self.__requester.requestJsonAndCheck(\"GET\", f\"/users/{login}\")\r\nreturn github.NamedUser.NamedUser(self.__requester, headers, data, completed=True)\r\n```\r\nwith\r\n```python\r\nreturn github.NamedUser.NamedUser(self.__requester, url=f\"/users/{login}\")\r\n```\r\nWhich allows that returned `CompletableGithubObject` to be lazy.\r\n\r\nRemoves any code related to `CompletableGithubObject` from\r\n`NonCompletableGithubObject`.\r\n- Which requires replacing (for `NonCompletableGithubObject` only)\r\n```python\r\n return github.Branch.Branch(self._requester, headers, data, completed=True)\r\n```\r\nfor `NonCompletableGithubObject` with\r\n```python\r\n return github.Branch.Branch(self._requester, headers, data)\r\n```\r\n\r\nFixes #2334","verified_at":"2024-11-23T10:19:51Z"}},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f23da453917a36c8bd48ab8d99e5fa7221884342","html_url":"https://github.com/jacquev6/PyGithub/commit/f23da453917a36c8bd48ab8d99e5fa7221884342","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f23da453917a36c8bd48ab8d99e5fa7221884342/comments","author":{"login":"jacquev6","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"19ddb9f4fd996e99a5010d271b3c2e76dd280fb5","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/19ddb9f4fd996e99a5010d271b3c2e76dd280fb5","html_url":"https://github.com/jacquev6/PyGithub/commit/19ddb9f4fd996e99a5010d271b3c2e76dd280fb5"}]},"_links":{"self":"https://api.github.com/repos/jacquev6/PyGithub/branches/topic/RewriteWithGeneratedCode","html":"https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode"},"protected":false,"protection":{"enabled":false,"required_status_checks":{"enforcement_level":"off","contexts":[],"checks":[]}},"protection_url":"https://api.github.com/repos/jacquev6/PyGithub/branches/topic/RewriteWithGeneratedCode/protection"} https GET diff --git a/tests/ReplayData/Branch.testEditProtection.txt b/tests/ReplayData/Branch.testEditProtection.txt index fbf3e6aaf5..be9195a1bc 100644 --- a/tests/ReplayData/Branch.testEditProtection.txt +++ b/tests/ReplayData/Branch.testEditProtection.txt @@ -3,19 +3,19 @@ PUT api.github.com None /repos/jacquev6/PyGithub/branches/integrations/protection -{'Authorization': 'Basic login_and_password_removed', 'Content-Type': 'application/json', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.luke-cage-preview+json'} -{"restrictions": null, "required_pull_request_reviews": {"require_code_owner_reviews": true, "required_approving_review_count": 2, "require_last_push_approval": true}, "required_status_checks": {"contexts": [], "strict": true}, "enforce_admins": null, "allow_force_pushes": null, "allow_fork_syncing": null, "lock_branch": null, "required_conversation_resolution": null, "required_linear_history": null, "block_creations": null, "allow_deletions": null } +{'Accept': 'application/vnd.github.luke-cage-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"required_status_checks": {"strict": true, "checks": []}, "enforce_admins": null, "required_pull_request_reviews": {"require_code_owner_reviews": true, "required_approving_review_count": 2, "require_last_push_approval": true}, "restrictions": null, "required_linear_history": null, "allow_force_pushes": null, "required_conversation_resolution": null, "lock_branch": null, "allow_fork_syncing": null, "block_creations": null, "allow_deletions": null} 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '0'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e0dc2dfc56971f4a36de1216356ea98b"'), ('date', 'Sat, 05 May 2018 06:05:54 GMT'), ('content-type', 'application/json; charset=utf-8')] -'' +[('Date', 'Tue, 17 Dec 2024 15:34:12 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"7183d96085bf729a314755409418bbead92fbd43a9fb54d5f82ac9c67cca3390"'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=luke-cage-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4803'), ('X-RateLimit-Reset', '1734453089'), ('X-RateLimit-Used', '197'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'C500:3E80EA:1547284:1590C22:676199F4')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection","required_status_checks":{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks","strict":true,"contexts":[],"contexts_url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks/contexts","checks":[]},"required_pull_request_reviews":{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_pull_request_reviews","dismiss_stale_reviews":false,"require_code_owner_reviews":true,"require_last_push_approval":true,"required_approving_review_count":2},"required_signatures":{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_signatures","enabled":false},"enforce_admins":{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/enforce_admins","enabled":true},"required_linear_history":{"enabled":false},"allow_force_pushes":{"enabled":false},"allow_deletions":{"enabled":false},"block_creations":{"enabled":false},"required_conversation_resolution":{"enabled":false},"lock_branch":{"enabled":false},"allow_fork_syncing":{"enabled":false}} https GET api.github.com None /repos/jacquev6/PyGithub/branches/integrations/protection -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.luke-cage-preview+json'} +{'Accept': 'application/vnd.github.luke-cage-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '0'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"81ba94a48ad867b26d48c023ac584f43"'), ('date', 'Mon, 07 May 2018 13:42:41 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection","required_pull_request_reviews":{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_pull_request_reviews","dismiss_stale_reviews":false,"require_code_owner_reviews":true,"required_approving_review_count":2,"require_last_push_approval":true},"required_status_checks":{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks","strict":true,"contexts":[],"contexts_url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks/contexts"},"enforce_admins":{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/enforce_admins","enabled":true}} +[('Date', 'Tue, 17 Dec 2024 15:34:13 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"7183d96085bf729a314755409418bbead92fbd43a9fb54d5f82ac9c67cca3390"'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=luke-cage-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4802'), ('X-RateLimit-Reset', '1734453089'), ('X-RateLimit-Used', '198'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'C50E:3C5A13:15674C2:15B0E6A:676199F5')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection","required_status_checks":{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks","strict":true,"contexts":[],"contexts_url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks/contexts","checks":[]},"required_pull_request_reviews":{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_pull_request_reviews","dismiss_stale_reviews":false,"require_code_owner_reviews":true,"require_last_push_approval":true,"required_approving_review_count":2},"required_signatures":{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_signatures","enabled":false},"enforce_admins":{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/enforce_admins","enabled":true},"required_linear_history":{"enabled":false},"allow_force_pushes":{"enabled":false},"allow_deletions":{"enabled":false},"block_creations":{"enabled":false},"required_conversation_resolution":{"enabled":false},"lock_branch":{"enabled":false},"allow_fork_syncing":{"enabled":false}} diff --git a/tests/ReplayData/Branch.testEditRequiredStatusChecksChecks.txt b/tests/ReplayData/Branch.testEditRequiredStatusChecksChecks.txt new file mode 100644 index 0000000000..3413d57f91 --- /dev/null +++ b/tests/ReplayData/Branch.testEditRequiredStatusChecksChecks.txt @@ -0,0 +1,21 @@ +https +PATCH +api.github.com +None +/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"checks": [{"context": "check1"}, {"context": "check2", "app_id": -1}, {"context": "check3", "app_id": 123456}]} +200 +[('Date', 'Tue, 17 Dec 2024 16:27:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"a162f49d4e13f6d7169a69116cb451428a9769591fffd0f0ef00dd110b4d36f4"'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4623'), ('X-RateLimit-Reset', '1734453089'), ('X-RateLimit-Used', '377'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '805C:3AA3B8:19B8617:1A0FA57:6761A68C')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks","strict":true,"contexts":["check1","check2","check3"],"contexts_url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks/contexts","checks":[{"context":"check1","app_id":null},{"context":"check2","app_id":null},{"context":"check3","app_id":123456}]} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Tue, 17 Dec 2024 16:27:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"a162f49d4e13f6d7169a69116cb451428a9769591fffd0f0ef00dd110b4d36f4"'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4622'), ('X-RateLimit-Reset', '1734453089'), ('X-RateLimit-Used', '378'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '806C:3C5A13:1906D32:195E15D:6761A68D')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks","strict":true,"contexts":["check1","check2","check3"],"contexts_url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks/contexts","checks":[{"context":"check1","app_id":null},{"context":"check2","app_id":null},{"context":"check3","app_id":123456}]} diff --git a/tests/ReplayData/Branch.testEditRequiredStatusChecksContexts.txt b/tests/ReplayData/Branch.testEditRequiredStatusChecksContexts.txt new file mode 100644 index 0000000000..b15e41b0df --- /dev/null +++ b/tests/ReplayData/Branch.testEditRequiredStatusChecksContexts.txt @@ -0,0 +1,21 @@ +https +PATCH +api.github.com +None +/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"checks": [{"context": "check1"}, {"context": "check2"}]} +200 +[('Date', 'Tue, 17 Dec 2024 16:27:59 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"8dad79961dbe48313587d3ea3b19eabfdf9475390a086a41e74a2e62d20ce7a7"'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4616'), ('X-RateLimit-Reset', '1734453089'), ('X-RateLimit-Used', '384'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'C0A6:3A3F07:193A220:199164D:6761A68F')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks","strict":true,"contexts":["check1","check2"],"contexts_url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks/contexts","checks":[{"context":"check1","app_id":null},{"context":"check2","app_id":null}]} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Tue, 17 Dec 2024 16:27:59 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"8dad79961dbe48313587d3ea3b19eabfdf9475390a086a41e74a2e62d20ce7a7"'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4615'), ('X-RateLimit-Reset', '1734453089'), ('X-RateLimit-Used', '385'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'C0AE:3B27D5:18F5879:194CC92:6761A68F')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks","strict":true,"contexts":["check1","check2"],"contexts_url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_status_checks/contexts","checks":[{"context":"check1","app_id":null},{"context":"check2","app_id":null}]} diff --git a/tests/ReplayData/Branch.testRemoveTeamPushRestrictions.txt b/tests/ReplayData/Branch.testRemoveTeamPushRestrictions.txt index d4aac16918..5f3320e7b5 100644 --- a/tests/ReplayData/Branch.testRemoveTeamPushRestrictions.txt +++ b/tests/ReplayData/Branch.testRemoveTeamPushRestrictions.txt @@ -7,7 +7,7 @@ None ["org-team"] 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4994'), ('content-length', '0'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"81ba94a48ad867b26d48c023ac584f43"'), ('date', 'Sun, 13 May 2018 11:06:07 GMT'), ('content-type', 'application/json; charset=utf-8')] -'' + https GET diff --git a/tests/ReplayData/Branch.testRemoveUserPushRestrictions.txt b/tests/ReplayData/Branch.testRemoveUserPushRestrictions.txt index b7805c8f10..da1752509c 100644 --- a/tests/ReplayData/Branch.testRemoveUserPushRestrictions.txt +++ b/tests/ReplayData/Branch.testRemoveUserPushRestrictions.txt @@ -7,7 +7,7 @@ None ["jacquev6"] 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4994'), ('content-length', '0'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"81ba94a48ad867b26d48c023ac584f43"'), ('date', 'Sun, 13 May 2018 11:06:07 GMT'), ('content-type', 'application/json; charset=utf-8')] -'' + https GET diff --git a/tests/ReplayData/CheckRun.setUp.txt b/tests/ReplayData/CheckRun.setUp.txt index 8a772308d6..726ee9719a 100644 --- a/tests/ReplayData/CheckRun.setUp.txt +++ b/tests/ReplayData/CheckRun.setUp.txt @@ -6,8 +6,8 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Date', 'Fri, 23 Oct 2020 03:05:29 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"3b6fa569ece26515a5a427bfd936d8b231c9e7e70f979ed93ec65b4e9a92dfe0"'), ('Last-Modified', 'Fri, 23 Oct 2020 01:43:15 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4847'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '153'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CF5E:0A11:F41419:14F889A:5F924879')] -{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.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":"2020-10-23T01:43:15Z","pushed_at":"2020-10-22T19:14:07Z","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":13024,"stargazers_count":3825,"watchers_count":3825,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1212,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":75,"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"},"forks":1212,"open_issues":75,"watchers":3825,"default_branch":"master","permissions":{"admin":false,"push":false,"pull":false},"temp_clone_token":"","organization":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.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},"network_count":1212,"subscribers_count":104} +[('Date', 'Fri, 03 Jan 2025 15:27:21 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"1b88c089a1e6863e1ce80f34340070e2ac596331034a24535f079d3af895faa2"'), ('Last-Modified', 'Fri, 03 Jan 2025 05:23:15 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4984'), ('X-RateLimit-Reset', '1735920624'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '98BE:12E656:1D8E63BC:1E5479C0:677801D9')] +{"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","user_view_type":"public","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":"2025-01-03T05:23:15Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7115,"watchers_count":7115,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":356,"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":1793,"open_issues":356,"watchers":7115,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"PR_BODY","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"enabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":111} https GET @@ -17,27 +17,27 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Date', 'Fri, 23 Oct 2020 03:05:29 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"0de7aded85e6a22a09013b0d210fad42df83268d23eaf29e9e6baa17308b2122"'), ('Last-Modified', 'Wed, 21 Oct 2020 17:12:01 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4846'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '154'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CF5F:09F2:EC7EB1:1442E84:5F924879')] -{"id":305573836,"node_id":"MDEwOlJlcG9zaXRvcnkzMDU1NzM4MzY=","name":"pygithub-testing","full_name":"dhruvmanila/pygithub-testing","private":false,"owner":{"login":"dhruvmanila","id":67177269,"node_id":"MDQ6VXNlcjY3MTc3MjY5","avatar_url":"https://avatars0.githubusercontent.com/u/67177269?v=4","gravatar_id":"","url":"https://api.github.com/users/dhruvmanila","html_url":"https://github.com/dhruvmanila","followers_url":"https://api.github.com/users/dhruvmanila/followers","following_url":"https://api.github.com/users/dhruvmanila/following{/other_user}","gists_url":"https://api.github.com/users/dhruvmanila/gists{/gist_id}","starred_url":"https://api.github.com/users/dhruvmanila/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dhruvmanila/subscriptions","organizations_url":"https://api.github.com/users/dhruvmanila/orgs","repos_url":"https://api.github.com/users/dhruvmanila/repos","events_url":"https://api.github.com/users/dhruvmanila/events{/privacy}","received_events_url":"https://api.github.com/users/dhruvmanila/received_events","type":"User","site_admin":false},"html_url":"https://github.com/dhruvmanila/pygithub-testing","description":"This repository is a hot bed for testing GitHub API endpoints for PyGithub.","fork":false,"url":"https://api.github.com/repos/dhruvmanila/pygithub-testing","forks_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/forks","keys_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/teams","hooks_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/hooks","issue_events_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/issues/events{/number}","events_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/events","assignees_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/assignees{/user}","branches_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/branches{/branch}","tags_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/tags","blobs_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/git/refs{/sha}","trees_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/statuses/{sha}","languages_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/languages","stargazers_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/stargazers","contributors_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/contributors","subscribers_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/subscribers","subscription_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/subscription","commits_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/commits{/sha}","git_commits_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/git/commits{/sha}","comments_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/comments{/number}","issue_comment_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/issues/comments{/number}","contents_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/contents/{+path}","compare_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/merges","archive_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/downloads","issues_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/issues{/number}","pulls_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/pulls{/number}","milestones_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/milestones{/number}","notifications_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/labels{/name}","releases_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/releases{/id}","deployments_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/deployments","created_at":"2020-10-20T02:59:36Z","updated_at":"2020-10-21T17:12:01Z","pushed_at":"2020-10-20T02:59:38Z","git_url":"git://github.com/dhruvmanila/pygithub-testing.git","ssh_url":"git@github.com:dhruvmanila/pygithub-testing.git","clone_url":"https://github.com/dhruvmanila/pygithub-testing.git","svn_url":"https://github.com/dhruvmanila/pygithub-testing","homepage":null,"size":1,"stargazers_count":1,"watchers_count":1,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":1,"default_branch":"main","permissions":{"admin":false,"push":false,"pull":false},"temp_clone_token":"","network_count":0,"subscribers_count":1} +[('Date', 'Fri, 03 Jan 2025 15:27:22 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"00790cbca9809e8bd0f110c8e955d6e53241fc62273d434ec75e9e7daf61e7cf"'), ('Last-Modified', 'Fri, 27 Nov 2020 19:19:41 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4983'), ('X-RateLimit-Reset', '1735920624'), ('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'"), ('Content-Encoding', 'gzip'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '98CE:654DF:228DAECD:236D25A9:677801D9')] +{"id":305573836,"node_id":"MDEwOlJlcG9zaXRvcnkzMDU1NzM4MzY=","name":"pygithub-testing","full_name":"dhruvmanila/pygithub-testing","private":false,"owner":{"login":"dhruvmanila","id":67177269,"node_id":"MDQ6VXNlcjY3MTc3MjY5","avatar_url":"https://avatars.githubusercontent.com/u/67177269?v=4","gravatar_id":"","url":"https://api.github.com/users/dhruvmanila","html_url":"https://github.com/dhruvmanila","followers_url":"https://api.github.com/users/dhruvmanila/followers","following_url":"https://api.github.com/users/dhruvmanila/following{/other_user}","gists_url":"https://api.github.com/users/dhruvmanila/gists{/gist_id}","starred_url":"https://api.github.com/users/dhruvmanila/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dhruvmanila/subscriptions","organizations_url":"https://api.github.com/users/dhruvmanila/orgs","repos_url":"https://api.github.com/users/dhruvmanila/repos","events_url":"https://api.github.com/users/dhruvmanila/events{/privacy}","received_events_url":"https://api.github.com/users/dhruvmanila/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/dhruvmanila/pygithub-testing","description":"This repository is a hot bed for testing GitHub API endpoints for PyGithub.","fork":false,"url":"https://api.github.com/repos/dhruvmanila/pygithub-testing","forks_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/forks","keys_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/teams","hooks_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/hooks","issue_events_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/issues/events{/number}","events_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/events","assignees_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/assignees{/user}","branches_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/branches{/branch}","tags_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/tags","blobs_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/git/refs{/sha}","trees_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/statuses/{sha}","languages_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/languages","stargazers_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/stargazers","contributors_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/contributors","subscribers_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/subscribers","subscription_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/subscription","commits_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/commits{/sha}","git_commits_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/git/commits{/sha}","comments_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/comments{/number}","issue_comment_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/issues/comments{/number}","contents_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/contents/{+path}","compare_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/merges","archive_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/downloads","issues_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/issues{/number}","pulls_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/pulls{/number}","milestones_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/milestones{/number}","notifications_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/labels{/name}","releases_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/releases{/id}","deployments_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/deployments","created_at":"2020-10-20T02:59:36Z","updated_at":"2020-11-27T19:19:41Z","pushed_at":"2020-12-09T11:00:30Z","git_url":"git://github.com/dhruvmanila/pygithub-testing.git","ssh_url":"git@github.com:dhruvmanila/pygithub-testing.git","clone_url":"https://github.com/dhruvmanila/pygithub-testing.git","svn_url":"https://github.com/dhruvmanila/pygithub-testing","homepage":null,"size":3,"stargazers_count":1,"watchers_count":1,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"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":[],"visibility":"public","forks":0,"open_issues":0,"watchers":1,"default_branch":"main","permissions":{"admin":false,"maintain":false,"push":false,"triage":false,"pull":true},"temp_clone_token":"","network_count":0,"subscribers_count":1} https GET api.github.com None -/repos/PyGithub/PyGithub/check-runs/1039891953 +/repos/PyGithub/PyGithub/check-runs/34942661139 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Date', 'Fri, 23 Oct 2020 03:05:30 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"7bd9e7cebc68da0d1818bc0cc91f78162e552ee14fdc0ebf7c960546a5f4fd08"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4845'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '155'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CF60:66AD:C722F3:1125A6B:5F924879')] -{"id":1039891953,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]} +[('Date', 'Fri, 03 Jan 2025 15:27:22 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"0a98474e63c737c32a5d5ab131d72f09a5746cb2ca670ee6011d4c05f1baaf1c"'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4982'), ('X-RateLimit-Reset', '1735920624'), ('X-RateLimit-Used', '18'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '98DA:4D504:21C8977C:22A80EED:677801DA')] +{"id":34942661139,"name":"test (Python 3.8 on Ubuntu)","node_id":"CR_kwDOADYVqs8AAAAIIr6yEw","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"8ece7711-e8e8-5d87-8f8a-6791d424ecd6","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/12528252236/job/34942661139","details_url":"https://github.com/PyGithub/PyGithub/actions/runs/12528252236/job/34942661139","status":"completed","conclusion":"success","started_at":"2024-12-28T16:51:59Z","completed_at":"2024-12-28T16:53:10Z","output":{"title":null,"summary":null,"text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139/annotations"},"check_suite":{"id":32504127411},"app":{"id":15368,"client_id":"Iv1.05c79e9ad1f6bdfa","slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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","user_view_type":"public","site_admin":false},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2024-04-10T20:33:16Z","permissions":{"actions":"write","administration":"read","attestations":"write","checks":"write","contents":"write","deployments":"write","discussions":"write","issues":"write","merge_queues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["branch_protection_rule","check_run","check_suite","create","delete","deployment","deployment_status","discussion","discussion_comment","fork","gollum","issues","issue_comment","label","merge_group","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]} https GET api.github.com None -/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a +/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Date', 'Fri, 23 Oct 2020 03:05:30 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"e1285aae8d5d64943c72eb70a505f3accbb906a496ce25d54fb97f0c979b5a01"'), ('Last-Modified', 'Fri, 28 Aug 2020 04:20:12 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4844'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '156'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CF61:6561:C6782F:110B51E:5F92487A')] -{"sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","node_id":"MDY6Q29tbWl0MzU0NDQ5MDo2YmM5ZWNjOGM4NDlkZjRlNDVlNjBjMWU2YTVkZjg4NzYxODBhMjBh","commit":{"author":{"name":"Neil Williams","email":"spladug@users.noreply.github.com","date":"2020-08-28T04:20:12Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2020-08-28T04:20:12Z"},"message":"Add get_timeline() to Issue's type stubs (#1663)\n\nAdd get_timeline() to Issue's type stubs","tree":{"sha":"196dc01e06f7bb631c18f76d620d7fac981194b5","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/196dc01e06f7bb631c18f76d620d7fac981194b5"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJfSIX8CRBK7hj4Ov3rIwAAdHIIAC7ARR4daWuDXZoA41Bk6QJC\nLwgikiCrNulUp0VYmrLoEE/sBY3YlVbQdYgS9ulYJcKyInd8hWQ31TG/SSyz1SRd\ncp8SD9bAu8SbqX4DWa6tV2XxopsabwQgWqGtJWzYIyuVFvdSuXGaZIjAo3VvWAuo\nZE+z5LJ99EHlnT2utyG4SyU3yZ+G8AHPB3X+9gkXq1jLpqBP2eGeWGRyEf7MqxQz\nQOPSQ/dtn4VmDt+p7TpfmZL87/t6/gol8bFKxxbtmNckDjoWTdFxf3CHTCNgZ+fW\nm2OgJc2UOttcAvegAFs5vAKpf4WABa+nEBG8qaG+Lg9IO3twYgYJ7WXW/YuSEPU=\n=O4Ol\n-----END PGP SIGNATURE-----\n","payload":"tree 196dc01e06f7bb631c18f76d620d7fac981194b5\nparent 743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5\nauthor Neil Williams 1598588412 -0700\ncommitter GitHub 1598588412 +1000\n\nAdd get_timeline() to Issue's type stubs (#1663)\n\nAdd get_timeline() to Issue's type stubs"}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","html_url":"https://github.com/PyGithub/PyGithub/commit/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/comments","author":{"login":"spladug","id":338853,"node_id":"MDQ6VXNlcjMzODg1Mw==","avatar_url":"https://avatars0.githubusercontent.com/u/338853?v=4","gravatar_id":"","url":"https://api.github.com/users/spladug","html_url":"https://github.com/spladug","followers_url":"https://api.github.com/users/spladug/followers","following_url":"https://api.github.com/users/spladug/following{/other_user}","gists_url":"https://api.github.com/users/spladug/gists{/gist_id}","starred_url":"https://api.github.com/users/spladug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spladug/subscriptions","organizations_url":"https://api.github.com/users/spladug/orgs","repos_url":"https://api.github.com/users/spladug/repos","events_url":"https://api.github.com/users/spladug/events{/privacy}","received_events_url":"https://api.github.com/users/spladug/received_events","type":"User","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars3.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","site_admin":false},"parents":[{"sha":"743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","html_url":"https://github.com/PyGithub/PyGithub/commit/743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5"}],"stats":{"total":2,"additions":2,"deletions":0},"files":[{"sha":"b1290df61bbcf8340f0752649358ec7f080b77fd","filename":"github/Issue.pyi","status":"modified","additions":2,"deletions":0,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/github/Issue.pyi","raw_url":"https://github.com/PyGithub/PyGithub/raw/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/github/Issue.pyi","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github/Issue.pyi?ref=6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","patch":"@@ -12,6 +12,7 @@ from github.PaginatedList import PaginatedList\n from github.PullRequest import PullRequest\n from github.Reaction import Reaction\n from github.Repository import Repository\n+from github.TimelineEvent import TimelineEvent\n \n class Issue(CompletableGithubObject):\n def __repr__(self) -> str: ...\n@@ -40,6 +41,7 @@ class Issue(CompletableGithubObject):\n def comments_url(self) -> str: ...\n def create_comment(self, body: str) -> IssueComment: ...\n def create_reaction(self, reaction_type: str) -> Reaction: ...\n+ def get_timeline(self) -> PaginatedList[TimelineEvent]: ...\n @property\n def created_at(self) -> datetime: ...\n def delete_labels(self) -> None: ..."}]} +[('Date', 'Fri, 03 Jan 2025 15:27:22 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"22515990de05401ec0b7dcd40dd82e085940cf75f2f0b9fd9a8ce9d63a6997c0"'), ('Last-Modified', 'Sat, 28 Dec 2024 16:51:40 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4981'), ('X-RateLimit-Reset', '1735920624'), ('X-RateLimit-Used', '19'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '98E2:4DB83:20817CB3:2160F372:677801DA')] +{"sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","node_id":"C_kwDOADYVqtoAKDEwYTcxMzVhMDRmNzFlNjEwMWY4YjAxM2FkZWQ4YTY2MmQwOGZkMWY","commit":{"author":{"name":"Enrico Minack","email":"github@enrico.minack.dev","date":"2024-12-28T16:41:46Z"},"committer":{"name":"Enrico Minack","email":"github@enrico.minack.dev","date":"2024-12-28T16:51:40Z"},"message":"Patch httpretty socket for latest urllib3 release","tree":{"sha":"deb3f7784c24794fe277714a37d9f874d24543eb","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/deb3f7784c24794fe277714a37d9f874d24543eb"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f","html_url":"https://github.com/PyGithub/PyGithub/commit/10a7135a04f71e6101f8b013aded8a662d08fd1f","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f/comments","author":{"login":"EnricoMi","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?v=4","gravatar_id":"","url":"https://api.github.com/users/EnricoMi","html_url":"https://github.com/EnricoMi","followers_url":"https://api.github.com/users/EnricoMi/followers","following_url":"https://api.github.com/users/EnricoMi/following{/other_user}","gists_url":"https://api.github.com/users/EnricoMi/gists{/gist_id}","starred_url":"https://api.github.com/users/EnricoMi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EnricoMi/subscriptions","organizations_url":"https://api.github.com/users/EnricoMi/orgs","repos_url":"https://api.github.com/users/EnricoMi/repos","events_url":"https://api.github.com/users/EnricoMi/events{/privacy}","received_events_url":"https://api.github.com/users/EnricoMi/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"EnricoMi","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?v=4","gravatar_id":"","url":"https://api.github.com/users/EnricoMi","html_url":"https://github.com/EnricoMi","followers_url":"https://api.github.com/users/EnricoMi/followers","following_url":"https://api.github.com/users/EnricoMi/following{/other_user}","gists_url":"https://api.github.com/users/EnricoMi/gists{/gist_id}","starred_url":"https://api.github.com/users/EnricoMi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EnricoMi/subscriptions","organizations_url":"https://api.github.com/users/EnricoMi/orgs","repos_url":"https://api.github.com/users/EnricoMi/repos","events_url":"https://api.github.com/users/EnricoMi/events{/privacy}","received_events_url":"https://api.github.com/users/EnricoMi/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"3d84a47a88f6757514cb3ee91b829f53ba09e7e0","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/3d84a47a88f6757514cb3ee91b829f53ba09e7e0","html_url":"https://github.com/PyGithub/PyGithub/commit/3d84a47a88f6757514cb3ee91b829f53ba09e7e0"}],"stats":{"total":18,"additions":18,"deletions":0},"files":[{"sha":"8269150ead8825d3a0607bb3f60b0d1466c1fbd2","filename":"tests/Framework.py","status":"modified","additions":18,"deletions":0,"changes":18,"blob_url":"https://github.com/PyGithub/PyGithub/blob/10a7135a04f71e6101f8b013aded8a662d08fd1f/tests%2FFramework.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/10a7135a04f71e6101f8b013aded8a662d08fd1f/tests%2FFramework.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FFramework.py?ref=10a7135a04f71e6101f8b013aded8a662d08fd1f","patch":"@@ -62,6 +62,8 @@\n from typing import Optional\n \n import httpretty # type: ignore\n+import urllib3\n+from packaging.version import Version\n from requests.structures import CaseInsensitiveDict\n from urllib3.util import Url # type: ignore\n \n@@ -87,6 +89,22 @@\n \"\"\"\n \n \n+# patch httpretty against urllib3>=2.3.0 https://github.com/PyGithub/PyGithub/issues/3101\n+if Version(urllib3.__version__) >= Version(\"2.3.0\"):\n+ getattr = httpretty.core.fakesock.socket.__getattr__\n+\n+ def patched_getattr(self, name):\n+ def shutdown(how: int):\n+ pass\n+\n+ if name == \"shutdown\" and not httpretty.core.httpretty.allow_net_connect and not self.truesock:\n+ return shutdown\n+\n+ return getattr(self, name)\n+\n+ httpretty.core.fakesock.socket.__getattr__ = patched_getattr\n+\n+\n def readLine(file_):\n line = file_.readline()\n if isinstance(line, bytes):"}]} diff --git a/tests/ReplayData/CheckRun.testAttributes.txt b/tests/ReplayData/CheckRun.testAttributes.txt new file mode 100644 index 0000000000..c0467e93d9 --- /dev/null +++ b/tests/ReplayData/CheckRun.testAttributes.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/check-suites/32504127411 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Tue, 07 Jan 2025 18:39:51 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"cf37edb770e117d44287f2b73ea121cea53b58824434ae25c42768094feb7718"'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4994'), ('X-RateLimit-Reset', '1736275846'), ('X-RateLimit-Used', '6'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'E55A:3F163C:341D0EB:354A600:677D74F7')] +{"id":32504127411,"node_id":"CS_kwDOADYVqs8AAAAHkWWfsw","head_branch":"httpretty-urllib3-fix","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","status":"completed","conclusion":"success","url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/32504127411","before":null,"after":null,"pull_requests":[],"app":{"id":15368,"client_id":"Iv1.05c79e9ad1f6bdfa","slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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","user_view_type":"public","site_admin":false},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2024-04-10T20:33:16Z","permissions":{"actions":"write","administration":"read","attestations":"write","checks":"write","contents":"write","deployments":"write","discussions":"write","issues":"write","merge_queues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["branch_protection_rule","check_run","check_suite","create","delete","deployment","deployment_status","discussion","discussion_comment","fork","gollum","issues","issue_comment","label","merge_group","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"created_at":"2024-12-28T16:51:51Z","updated_at":"2024-12-28T17:13:41Z","rerequestable":true,"runs_rerequestable":false,"latest_check_runs_count":10,"check_runs_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/32504127411/check-runs","head_commit":{"id":"10a7135a04f71e6101f8b013aded8a662d08fd1f","tree_id":"deb3f7784c24794fe277714a37d9f874d24543eb","message":"Patch httpretty socket for latest urllib3 release","timestamp":"2024-12-28T16:51:40Z","author":{"name":"Enrico Minack","email":"github@enrico.minack.dev"},"committer":{"name":"Enrico Minack","email":"github@enrico.minack.dev"}},"repository":{"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","user_view_type":"public","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"}} diff --git a/tests/ReplayData/CheckRun.testCheckRunOutputAttributes.txt b/tests/ReplayData/CheckRun.testCheckRunOutputAttributes.txt index bef5925dad..2a0bfe3c29 100644 --- a/tests/ReplayData/CheckRun.testCheckRunOutputAttributes.txt +++ b/tests/ReplayData/CheckRun.testCheckRunOutputAttributes.txt @@ -7,4 +7,4 @@ None None 200 [('Date', 'Fri, 23 Oct 2020 03:05:00 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"f9cc9072c36d45bce89bde08d78c37bd463290dc6ee98938b4251c2f642a9594"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4906'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '94'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CF23:66AD:C720EC:11257BC:5F92485B')] -{"id":1039891917,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTE3","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"ced8afa2-0de1-5007-330b-c6fb982580f9","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","status":"completed","conclusion":"failure","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:22:35Z","output":{"title":"test (Python 3.6)","summary":"There are 1 failures, 0 warnings, and 0 notices.","text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations"},"name":"test (Python 3.6)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]} +{"id":1039891917,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTE3","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"ced8afa2-0de1-5007-330b-c6fb982580f9","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","status":"completed","conclusion":"failure","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:22:35Z","output":{"title":"test (Python 3.6)","summary":"There are 1 failures, 0 warnings, and 0 notices.","text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations"},"name":"test (Python 3.6)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]} diff --git a/tests/ReplayData/CheckRun.testGetCheckRunsForRef.txt b/tests/ReplayData/CheckRun.testGetCheckRunsForRef.txt index 3bbca75fae..d4817db974 100644 --- a/tests/ReplayData/CheckRun.testGetCheckRunsForRef.txt +++ b/tests/ReplayData/CheckRun.testGetCheckRunsForRef.txt @@ -2,20 +2,20 @@ https GET api.github.com None -/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/check-runs?per_page=1 +/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f/check-runs?per_page=1 {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Date', 'Fri, 23 Oct 2020 03:05:08 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"23899cd4213d4493f54600e530f4a43575402b503586eeb8d9c7340e56cf8b8a"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4890'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '110'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CF33:6DFC:1520D6C:1CD42FE:5F924864')] -{"total_count":4,"check_runs":[{"id":1039891953,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} +[('Date', 'Fri, 23 Oct 2020 03:05:08 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"23899cd4213d4493f54600e530f4a43575402b503586eeb8d9c7340e56cf8b8a"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4890'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '110'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CF33:6DFC:1520D6C:1CD42FE:5F924864')] +{"total_count":4,"check_runs":[{"id":34942661139,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139","html_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","details_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} https GET api.github.com None -/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/check-runs +/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f/check-runs {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('Date', 'Fri, 23 Oct 2020 03:05:09 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"12597e85447ab058b30dc5520ecbf8e3a8d7623a4c0bfe53dfc235b1da5297d5"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4889'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '111'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CF34:0A11:F412F2:14F8735:5F924865')] -{"total_count":4,"check_runs":[{"id":1039891953,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891931,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTMx","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"02f808e0-98fe-55de-7c6a-7b611811c378","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:32Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931/annotations"},"name":"test (Python 3.7)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891917,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTE3","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"ced8afa2-0de1-5007-330b-c6fb982580f9","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","status":"completed","conclusion":"failure","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:22:35Z","output":{"title":"test (Python 3.6)","summary":"There are 1 failures, 0 warnings, and 0 notices.","text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations"},"name":"test (Python 3.6)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891902,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTAy","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"faa62fff-0a61-5a65-b80e-0b42a7456be1","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:34Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902/annotations"},"name":"test (Python 3.5)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} +{"total_count":4,"check_runs":[{"id":34942661139,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139","html_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","details_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891931,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTMx","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"02f808e0-98fe-55de-7c6a-7b611811c378","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:32Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931/annotations"},"name":"test (Python 3.7)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891917,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTE3","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"ced8afa2-0de1-5007-330b-c6fb982580f9","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","status":"completed","conclusion":"failure","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:22:35Z","output":{"title":"test (Python 3.6)","summary":"There are 1 failures, 0 warnings, and 0 notices.","text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations"},"name":"test (Python 3.6)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891902,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTAy","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"faa62fff-0a61-5a65-b80e-0b42a7456be1","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:34Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902/annotations"},"name":"test (Python 3.5)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} diff --git a/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByCheckName.txt b/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByCheckName.txt index 8f4433a97b..ea53a80dca 100644 --- a/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByCheckName.txt +++ b/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByCheckName.txt @@ -2,20 +2,20 @@ https GET api.github.com None -/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/check-runs?check_name=test+%28Python+3.6%29&per_page=1 +/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f/check-runs?check_name=test+%28Python+3.6%29&per_page=1 {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('Date', 'Fri, 23 Oct 2020 03:05:11 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"0cfd4fd6b16162ce7ee38ef08f9c65f2673b52557d1ed9107cb550b5eba06e8a"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4884'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '116'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CF39:2DDD:170E4F7:1EB98D4:5F924867')] -{"total_count":1,"check_runs":[{"id":1039891917,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTE3","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"ced8afa2-0de1-5007-330b-c6fb982580f9","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","status":"completed","conclusion":"failure","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:22:35Z","output":{"title":"test (Python 3.6)","summary":"There are 1 failures, 0 warnings, and 0 notices.","text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations"},"name":"test (Python 3.6)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} +{"total_count":1,"check_runs":[{"id":1039891917,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTE3","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"ced8afa2-0de1-5007-330b-c6fb982580f9","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","status":"completed","conclusion":"failure","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:22:35Z","output":{"title":"test (Python 3.6)","summary":"There are 1 failures, 0 warnings, and 0 notices.","text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations"},"name":"test (Python 3.6)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} https GET api.github.com None -/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/check-runs?check_name=test+%28Python+3.6%29 +/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f/check-runs?check_name=test+%28Python+3.6%29 {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('Date', 'Fri, 23 Oct 2020 03:05:12 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"0cfd4fd6b16162ce7ee38ef08f9c65f2673b52557d1ed9107cb550b5eba06e8a"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4883'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '117'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CF3A:0A11:F4133D:14F8791:5F924867')] -{"total_count":1,"check_runs":[{"id":1039891917,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTE3","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"ced8afa2-0de1-5007-330b-c6fb982580f9","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","status":"completed","conclusion":"failure","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:22:35Z","output":{"title":"test (Python 3.6)","summary":"There are 1 failures, 0 warnings, and 0 notices.","text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations"},"name":"test (Python 3.6)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} +{"total_count":1,"check_runs":[{"id":1039891917,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTE3","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"ced8afa2-0de1-5007-330b-c6fb982580f9","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","status":"completed","conclusion":"failure","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:22:35Z","output":{"title":"test (Python 3.6)","summary":"There are 1 failures, 0 warnings, and 0 notices.","text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations"},"name":"test (Python 3.6)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} diff --git a/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByFilter.txt b/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByFilter.txt index 4860df5632..623af7a965 100644 --- a/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByFilter.txt +++ b/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByFilter.txt @@ -2,42 +2,42 @@ https GET api.github.com None -/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/check-runs?filter=latest&per_page=1 +/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f/check-runs?filter=latest&per_page=1 {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 23 Mar 2021 04:46:58 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/"06e8aed3f8138a33bf4e9d7238c911364fed4855aab7f5521a0305864cb02ae4"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4980'), ('X-RateLimit-Reset', '1616475784'), ('X-RateLimit-Used', '20'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', 'BE18:1432:321360:366F74:605972C2')] -{"total_count":4,"check_runs":[{"id":1039891953,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} +[('Server', 'GitHub.com'), ('Date', 'Tue, 23 Mar 2021 04:46:58 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/"06e8aed3f8138a33bf4e9d7238c911364fed4855aab7f5521a0305864cb02ae4"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4980'), ('X-RateLimit-Reset', '1616475784'), ('X-RateLimit-Used', '20'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', 'BE18:1432:321360:366F74:605972C2')] +{"total_count":4,"check_runs":[{"id":34942661139,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139","html_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","details_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} https GET api.github.com None -/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/check-runs?filter=latest +/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f/check-runs?filter=latest {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 23 Mar 2021 04:46:59 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/"b55d1ee82bdff5f80cd733dc047fca54748fcf7b9f3d0cc0d20e4ce0e86880a9"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4979'), ('X-RateLimit-Reset', '1616475784'), ('X-RateLimit-Used', '21'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', 'BE1A:5544:101C6E9:116D22B:605972C2')] -{"total_count":4,"check_runs":[{"id":1039891953,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891931,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTMx","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"02f808e0-98fe-55de-7c6a-7b611811c378","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:32Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931/annotations"},"name":"test (Python 3.7)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891917,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTE3","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"ced8afa2-0de1-5007-330b-c6fb982580f9","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","status":"completed","conclusion":"failure","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:22:35Z","output":{"title":"test (Python 3.6)","summary":"There are 1 failures, 0 warnings, and 0 notices.","text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations"},"name":"test (Python 3.6)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891902,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTAy","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"faa62fff-0a61-5a65-b80e-0b42a7456be1","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:34Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902/annotations"},"name":"test (Python 3.5)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} +{"total_count":4,"check_runs":[{"id":34942661139,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139","html_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","details_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891931,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTMx","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"02f808e0-98fe-55de-7c6a-7b611811c378","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:32Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931/annotations"},"name":"test (Python 3.7)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891917,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTE3","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"ced8afa2-0de1-5007-330b-c6fb982580f9","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","status":"completed","conclusion":"failure","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:22:35Z","output":{"title":"test (Python 3.6)","summary":"There are 1 failures, 0 warnings, and 0 notices.","text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations"},"name":"test (Python 3.6)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891902,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTAy","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"faa62fff-0a61-5a65-b80e-0b42a7456be1","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:34Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902/annotations"},"name":"test (Python 3.5)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} https GET api.github.com None -/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/check-runs?filter=all&per_page=1 +/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f/check-runs?filter=all&per_page=1 {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 23 Mar 2021 04:46:59 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/"06e8aed3f8138a33bf4e9d7238c911364fed4855aab7f5521a0305864cb02ae4"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4978'), ('X-RateLimit-Reset', '1616475784'), ('X-RateLimit-Used', '22'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', 'BE1C:1713:5049B6:56C8BF:605972C3')] -{"total_count":4,"check_runs":[{"id":1039891953,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} +[('Server', 'GitHub.com'), ('Date', 'Tue, 23 Mar 2021 04:46:59 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/"06e8aed3f8138a33bf4e9d7238c911364fed4855aab7f5521a0305864cb02ae4"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4978'), ('X-RateLimit-Reset', '1616475784'), ('X-RateLimit-Used', '22'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', 'BE1C:1713:5049B6:56C8BF:605972C3')] +{"total_count":4,"check_runs":[{"id":34942661139,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139","html_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","details_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} https GET api.github.com None -/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/check-runs?filter=all +/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f/check-runs?filter=all {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 23 Mar 2021 04:47:00 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/"b55d1ee82bdff5f80cd733dc047fca54748fcf7b9f3d0cc0d20e4ce0e86880a9"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4977'), ('X-RateLimit-Reset', '1616475784'), ('X-RateLimit-Used', '23'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', 'BE1E:5544:101C708:116D256:605972C3')] -{"total_count":4,"check_runs":[{"id":1039891953,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891931,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTMx","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"02f808e0-98fe-55de-7c6a-7b611811c378","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:32Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931/annotations"},"name":"test (Python 3.7)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891917,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTE3","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"ced8afa2-0de1-5007-330b-c6fb982580f9","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","status":"completed","conclusion":"failure","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:22:35Z","output":{"title":"test (Python 3.6)","summary":"There are 1 failures, 0 warnings, and 0 notices.","text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations"},"name":"test (Python 3.6)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891902,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTAy","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"faa62fff-0a61-5a65-b80e-0b42a7456be1","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:34Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902/annotations"},"name":"test (Python 3.5)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} +{"total_count":4,"check_runs":[{"id":34942661139,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139","html_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","details_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891931,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTMx","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"02f808e0-98fe-55de-7c6a-7b611811c378","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:32Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931/annotations"},"name":"test (Python 3.7)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891917,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTE3","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"ced8afa2-0de1-5007-330b-c6fb982580f9","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","status":"completed","conclusion":"failure","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:22:35Z","output":{"title":"test (Python 3.6)","summary":"There are 1 failures, 0 warnings, and 0 notices.","text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations"},"name":"test (Python 3.6)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891902,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTAy","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"faa62fff-0a61-5a65-b80e-0b42a7456be1","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:34Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902/annotations"},"name":"test (Python 3.5)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} diff --git a/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByStatus.txt b/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByStatus.txt index a873ab3fd1..664614401a 100644 --- a/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByStatus.txt +++ b/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByStatus.txt @@ -2,29 +2,29 @@ https GET api.github.com None -/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/check-runs?status=completed&per_page=1 +/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f/check-runs?status=completed&per_page=1 {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 23 Mar 2021 04:59:40 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/"06e8aed3f8138a33bf4e9d7238c911364fed4855aab7f5521a0305864cb02ae4"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4972'), ('X-RateLimit-Reset', '1616475784'), ('X-RateLimit-Used', '28'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', 'BE52:1712:155BAA:1BB173:605975BC')] -{"total_count":4,"check_runs":[{"id":1039891953,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} +[('Server', 'GitHub.com'), ('Date', 'Tue, 23 Mar 2021 04:59:40 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/"06e8aed3f8138a33bf4e9d7238c911364fed4855aab7f5521a0305864cb02ae4"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4972'), ('X-RateLimit-Reset', '1616475784'), ('X-RateLimit-Used', '28'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', 'BE52:1712:155BAA:1BB173:605975BC')] +{"total_count":4,"check_runs":[{"id":34942661139,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139","html_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","details_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} https GET api.github.com None -/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/check-runs?status=completed +/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f/check-runs?status=completed {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 23 Mar 2021 04:59:41 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/"b55d1ee82bdff5f80cd733dc047fca54748fcf7b9f3d0cc0d20e4ce0e86880a9"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4971'), ('X-RateLimit-Reset', '1616475784'), ('X-RateLimit-Used', '29'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', 'BE54:1432:32A411:370ADF:605975BD')] -{"total_count":4,"check_runs":[{"id":1039891953,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891953","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891953/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891931,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTMx","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"02f808e0-98fe-55de-7c6a-7b611811c378","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:32Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931/annotations"},"name":"test (Python 3.7)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891917,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTE3","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"ced8afa2-0de1-5007-330b-c6fb982580f9","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","status":"completed","conclusion":"failure","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:22:35Z","output":{"title":"test (Python 3.6)","summary":"There are 1 failures, 0 warnings, and 0 notices.","text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations"},"name":"test (Python 3.6)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891902,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTAy","head_sha":"6bc9ecc8c849df4e45e60c1e6a5df8876180a20a","external_id":"faa62fff-0a61-5a65-b80e-0b42a7456be1","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:34Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902/annotations"},"name":"test (Python 3.5)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} +{"total_count":4,"check_runs":[{"id":34942661139,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTUz","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"6b512fe7-587c-5ecc-c4a3-03b7358c152d","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139","html_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","details_url":"https://github.com/PyGithub/PyGithub/runs/34942661139","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:21:21Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/34942661139/annotations"},"name":"test (Python 3.8)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891931,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTMx","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"02f808e0-98fe-55de-7c6a-7b611811c378","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891931","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:32Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891931/annotations"},"name":"test (Python 3.7)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891917,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTE3","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"ced8afa2-0de1-5007-330b-c6fb982580f9","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891917","status":"completed","conclusion":"failure","started_at":"2020-08-28T04:20:27Z","completed_at":"2020-08-28T04:22:35Z","output":{"title":"test (Python 3.6)","summary":"There are 1 failures, 0 warnings, and 0 notices.","text":null,"annotations_count":1,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations"},"name":"test (Python 3.6)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]},{"id":1039891902,"node_id":"MDg6Q2hlY2tSdW4xMDM5ODkxOTAy","head_sha":"10a7135a04f71e6101f8b013aded8a662d08fd1f","external_id":"faa62fff-0a61-5a65-b80e-0b42a7456be1","url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902","html_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","details_url":"https://github.com/PyGithub/PyGithub/runs/1039891902","status":"completed","conclusion":"success","started_at":"2020-08-28T04:20:26Z","completed_at":"2020-08-28T04:21:34Z","output":{"title":null,"summary":null,"text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891902/annotations"},"name":"test (Python 3.5)","check_suite":{"id":1110219217},"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","organization_packages":"write","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"pull_requests":[]}]} https GET api.github.com None -/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/check-runs?status=queued&per_page=1 +/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f/check-runs?status=queued&per_page=1 {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -35,7 +35,7 @@ https GET api.github.com None -/repos/PyGithub/PyGithub/commits/6bc9ecc8c849df4e45e60c1e6a5df8876180a20a/check-runs?status=in_progress&per_page=1 +/repos/PyGithub/PyGithub/commits/10a7135a04f71e6101f8b013aded8a662d08fd1f/check-runs?status=in_progress&per_page=1 {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/CheckSuite.setUp.txt b/tests/ReplayData/CheckSuite.setUp.txt index c486d0db38..3d02e71de0 100644 --- a/tests/ReplayData/CheckSuite.setUp.txt +++ b/tests/ReplayData/CheckSuite.setUp.txt @@ -40,7 +40,7 @@ None None 200 [('Date', 'Fri, 27 Nov 2020 20:31:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"54bee91f21251778dfe26b78dd22686a970c56729c09928324a355045e87d553"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4986'), ('X-RateLimit-Reset', '1606511185'), ('X-RateLimit-Used', '14'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D596:790C:D2CD7:106AEE:5FC16234')] -{"id":1004503837,"node_id":"MDEwOkNoZWNrU3VpdGUxMDA0NTAzODM3","head_branch":"wrecker-patch-1","head_sha":"fd09d934bcce792176d6b79d6d0387e938b62b7a","status":"completed","conclusion":"success","url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503837","before":"9ee0caba8648aa0b8b5fc68ebc37c3c1162aa283","after":"fd09d934bcce792176d6b79d6d0387e938b62b7a","pull_requests":[{"url":"https://api.github.com/repos/wrecker/PySample/pulls/7","id":462527907,"number":7,"head":{"ref":"wrecker-patch-1","sha":"fd09d934bcce792176d6b79d6d0387e938b62b7a","repo":{"id":283963162,"url":"https://api.github.com/repos/wrecker/PySample","name":"PySample"}},"base":{"ref":"main","sha":"ad83eb83895dafacb1384f89e3be6a9d9cf2b719","repo":{"id":283963162,"url":"https://api.github.com/repos/wrecker/PySample","name":"PySample"}}}],"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"created_at":"2020-08-04T05:06:54Z","updated_at":"2020-08-04T05:07:40Z","latest_check_runs_count":2,"check_runs_url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503837/check-runs","head_commit":{"id":"fd09d934bcce792176d6b79d6d0387e938b62b7a","tree_id":"ece026d8b3d79448ead6e7a2e2919dea8057db38","message":"Update README.md","timestamp":"2020-08-04T05:06:50Z","author":{"name":"Mahesh Raju","email":"coder@mahesh.net"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":283963162,"node_id":"MDEwOlJlcG9zaXRvcnkyODM5NjMxNjI=","name":"PySample","full_name":"wrecker/PySample","private":false,"owner":{"login":"wrecker","id":4432114,"node_id":"MDQ6VXNlcjQ0MzIxMTQ=","avatar_url":"https://avatars2.githubusercontent.com/u/4432114?v=4","gravatar_id":"","url":"https://api.github.com/users/wrecker","html_url":"https://github.com/wrecker","followers_url":"https://api.github.com/users/wrecker/followers","following_url":"https://api.github.com/users/wrecker/following{/other_user}","gists_url":"https://api.github.com/users/wrecker/gists{/gist_id}","starred_url":"https://api.github.com/users/wrecker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wrecker/subscriptions","organizations_url":"https://api.github.com/users/wrecker/orgs","repos_url":"https://api.github.com/users/wrecker/repos","events_url":"https://api.github.com/users/wrecker/events{/privacy}","received_events_url":"https://api.github.com/users/wrecker/received_events","type":"User","site_admin":false},"html_url":"https://github.com/wrecker/PySample","description":"A Sample Python Project","fork":false,"url":"https://api.github.com/repos/wrecker/PySample","forks_url":"https://api.github.com/repos/wrecker/PySample/forks","keys_url":"https://api.github.com/repos/wrecker/PySample/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wrecker/PySample/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wrecker/PySample/teams","hooks_url":"https://api.github.com/repos/wrecker/PySample/hooks","issue_events_url":"https://api.github.com/repos/wrecker/PySample/issues/events{/number}","events_url":"https://api.github.com/repos/wrecker/PySample/events","assignees_url":"https://api.github.com/repos/wrecker/PySample/assignees{/user}","branches_url":"https://api.github.com/repos/wrecker/PySample/branches{/branch}","tags_url":"https://api.github.com/repos/wrecker/PySample/tags","blobs_url":"https://api.github.com/repos/wrecker/PySample/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wrecker/PySample/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wrecker/PySample/git/refs{/sha}","trees_url":"https://api.github.com/repos/wrecker/PySample/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wrecker/PySample/statuses/{sha}","languages_url":"https://api.github.com/repos/wrecker/PySample/languages","stargazers_url":"https://api.github.com/repos/wrecker/PySample/stargazers","contributors_url":"https://api.github.com/repos/wrecker/PySample/contributors","subscribers_url":"https://api.github.com/repos/wrecker/PySample/subscribers","subscription_url":"https://api.github.com/repos/wrecker/PySample/subscription","commits_url":"https://api.github.com/repos/wrecker/PySample/commits{/sha}","git_commits_url":"https://api.github.com/repos/wrecker/PySample/git/commits{/sha}","comments_url":"https://api.github.com/repos/wrecker/PySample/comments{/number}","issue_comment_url":"https://api.github.com/repos/wrecker/PySample/issues/comments{/number}","contents_url":"https://api.github.com/repos/wrecker/PySample/contents/{+path}","compare_url":"https://api.github.com/repos/wrecker/PySample/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wrecker/PySample/merges","archive_url":"https://api.github.com/repos/wrecker/PySample/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wrecker/PySample/downloads","issues_url":"https://api.github.com/repos/wrecker/PySample/issues{/number}","pulls_url":"https://api.github.com/repos/wrecker/PySample/pulls{/number}","milestones_url":"https://api.github.com/repos/wrecker/PySample/milestones{/number}","notifications_url":"https://api.github.com/repos/wrecker/PySample/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wrecker/PySample/labels{/name}","releases_url":"https://api.github.com/repos/wrecker/PySample/releases{/id}","deployments_url":"https://api.github.com/repos/wrecker/PySample/deployments"}} +{"id":1004503837,"node_id":"MDEwOkNoZWNrU3VpdGUxMDA0NTAzODM3","head_branch":"wrecker-patch-1","head_sha":"fd09d934bcce792176d6b79d6d0387e938b62b7a","status":"completed","conclusion":"success","url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503837","before":"9ee0caba8648aa0b8b5fc68ebc37c3c1162aa283","after":"fd09d934bcce792176d6b79d6d0387e938b62b7a","pull_requests":[{"url":"https://api.github.com/repos/wrecker/PySample/pulls/7","id":462527907,"number":7,"head":{"ref":"wrecker-patch-1","sha":"fd09d934bcce792176d6b79d6d0387e938b62b7a","repo":{"id":283963162,"url":"https://api.github.com/repos/wrecker/PySample","name":"PySample"}},"base":{"ref":"main","sha":"ad83eb83895dafacb1384f89e3be6a9d9cf2b719","repo":{"id":283963162,"url":"https://api.github.com/repos/wrecker/PySample","name":"PySample"}}}],"app":{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"created_at":"2020-08-04T05:06:54Z","updated_at":"2020-08-04T05:07:40Z","latest_check_runs_count":2,"check_runs_url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503837/check-runs","head_commit":{"id":"fd09d934bcce792176d6b79d6d0387e938b62b7a","tree_id":"ece026d8b3d79448ead6e7a2e2919dea8057db38","message":"Update README.md","timestamp":"2020-08-04T05:06:50Z","author":{"name":"Mahesh Raju","email":"coder@mahesh.net"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"rerequestable": true, "runs_rerequestable": true,"repository":{"id":283963162,"node_id":"MDEwOlJlcG9zaXRvcnkyODM5NjMxNjI=","name":"PySample","full_name":"wrecker/PySample","private":false,"owner":{"login":"wrecker","id":4432114,"node_id":"MDQ6VXNlcjQ0MzIxMTQ=","avatar_url":"https://avatars2.githubusercontent.com/u/4432114?v=4","gravatar_id":"","url":"https://api.github.com/users/wrecker","html_url":"https://github.com/wrecker","followers_url":"https://api.github.com/users/wrecker/followers","following_url":"https://api.github.com/users/wrecker/following{/other_user}","gists_url":"https://api.github.com/users/wrecker/gists{/gist_id}","starred_url":"https://api.github.com/users/wrecker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wrecker/subscriptions","organizations_url":"https://api.github.com/users/wrecker/orgs","repos_url":"https://api.github.com/users/wrecker/repos","events_url":"https://api.github.com/users/wrecker/events{/privacy}","received_events_url":"https://api.github.com/users/wrecker/received_events","type":"User","site_admin":false},"html_url":"https://github.com/wrecker/PySample","description":"A Sample Python Project","fork":false,"url":"https://api.github.com/repos/wrecker/PySample","forks_url":"https://api.github.com/repos/wrecker/PySample/forks","keys_url":"https://api.github.com/repos/wrecker/PySample/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wrecker/PySample/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wrecker/PySample/teams","hooks_url":"https://api.github.com/repos/wrecker/PySample/hooks","issue_events_url":"https://api.github.com/repos/wrecker/PySample/issues/events{/number}","events_url":"https://api.github.com/repos/wrecker/PySample/events","assignees_url":"https://api.github.com/repos/wrecker/PySample/assignees{/user}","branches_url":"https://api.github.com/repos/wrecker/PySample/branches{/branch}","tags_url":"https://api.github.com/repos/wrecker/PySample/tags","blobs_url":"https://api.github.com/repos/wrecker/PySample/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wrecker/PySample/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wrecker/PySample/git/refs{/sha}","trees_url":"https://api.github.com/repos/wrecker/PySample/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wrecker/PySample/statuses/{sha}","languages_url":"https://api.github.com/repos/wrecker/PySample/languages","stargazers_url":"https://api.github.com/repos/wrecker/PySample/stargazers","contributors_url":"https://api.github.com/repos/wrecker/PySample/contributors","subscribers_url":"https://api.github.com/repos/wrecker/PySample/subscribers","subscription_url":"https://api.github.com/repos/wrecker/PySample/subscription","commits_url":"https://api.github.com/repos/wrecker/PySample/commits{/sha}","git_commits_url":"https://api.github.com/repos/wrecker/PySample/git/commits{/sha}","comments_url":"https://api.github.com/repos/wrecker/PySample/comments{/number}","issue_comment_url":"https://api.github.com/repos/wrecker/PySample/issues/comments{/number}","contents_url":"https://api.github.com/repos/wrecker/PySample/contents/{+path}","compare_url":"https://api.github.com/repos/wrecker/PySample/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wrecker/PySample/merges","archive_url":"https://api.github.com/repos/wrecker/PySample/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wrecker/PySample/downloads","issues_url":"https://api.github.com/repos/wrecker/PySample/issues{/number}","pulls_url":"https://api.github.com/repos/wrecker/PySample/pulls{/number}","milestones_url":"https://api.github.com/repos/wrecker/PySample/milestones{/number}","notifications_url":"https://api.github.com/repos/wrecker/PySample/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wrecker/PySample/labels{/name}","releases_url":"https://api.github.com/repos/wrecker/PySample/releases{/id}","deployments_url":"https://api.github.com/repos/wrecker/PySample/deployments"}} https GET diff --git a/tests/ReplayData/Commit.setUp.txt b/tests/ReplayData/Commit.setUp.txt index 3800c24086..e9bb3f7122 100644 --- a/tests/ReplayData/Commit.setUp.txt +++ b/tests/ReplayData/Commit.setUp.txt @@ -6,8 +6,8 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4976'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"eb9e14862baa71c04b8f0e73ab870756"'), ('date', 'Sun, 27 May 2012 06:50:51 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"public_gists":3,"type":"User","disk_usage":16976,"private_gists":5,"public_repos":11,"url":"https://api.github.com/users/jacquev6","total_private_repos":5,"plan":{"private_repos":5,"collaborators":1,"name":"micro","space":614400},"blog":"http://vincent-jacques.net","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","owned_private_repos":5,"collaborators":0,"company":"Criteo","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","email":"vincent@vincent-jacques.net","hireable":false,"followers":13,"name":"Vincent Jacques","created_at":"2010-07-09T06:10:06Z","location":"Paris, France","bio":"","id":327146,"following":24,"html_url":"https://github.com/jacquev6"} +[('Date', 'Fri, 03 Jan 2025 16:05:25 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"8bdb9fd004aa2396a00fe6e7a7d95fa51df7d5cece2ab66cb6937fcc79fefd36"'), ('Last-Modified', 'Sat, 21 Dec 2024 12:42:47 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4978'), ('X-RateLimit-Reset', '1735920624'), ('X-RateLimit-Used', '22'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B7D4:12E178:1CE79C76:1DA80274:67780AC5')] +{"login":"jacquev6","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Enrico Minack","company":null,"blog":"","location":"Hannover, Germany","email":"github@enrico.minack.dev","hireable":null,"bio":"Open Source Software enthusiast, LF AI Horovod maintainer, Apache Spark contributor.","twitter_username":null,"notification_email":"github@enrico.minack.dev","public_repos":46,"public_gists":0,"followers":71,"following":1,"created_at":"2018-11-02T11:17:22Z","updated_at":"2024-12-21T12:42:47Z"} https GET @@ -17,8 +17,8 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4975'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"2f4d8b003c5c4f390be2ac28fe623bdb"'), ('date', 'Sun, 27 May 2012 06:50:52 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":15,"git_url":"git://github.com/jacquev6/PyGithub.git","updated_at":"2012-05-27T06:00:29Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","has_wiki":false,"has_issues":true,"fork":false,"forks":3,"mirror_url":null,"size":308,"private":false,"open_issues":16,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-27T06:00:28Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"} +[('Date', 'Fri, 03 Jan 2025 16:05:26 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"f17b549fb3d5c3dc2196e3e2aa8c668b810d51712948343415b7213d59164209"'), ('Last-Modified', 'Sat, 23 Nov 2024 18:31:09 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4977'), ('X-RateLimit-Reset', '1735920624'), ('X-RateLimit-Used', '23'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B7DE:59502:20E9FBCB:21CA106F:67780AC6')] +{"id":446365735,"node_id":"R_kgDOGpsAJw","name":"PyGithub","full_name":"jacquev6/PyGithub","private":false,"owner":{"login":"jacquev6","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/jacquev6/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments","created_at":"2022-01-10T09:52:53Z","updated_at":"2024-11-23T18:31:09Z","pushed_at":"2025-01-03T15:45:54Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":16938,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":2,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":15,"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":2,"open_issues":15,"watchers":0,"default_branch":"main","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","user_view_type":"public","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":"2025-01-03T05:23:15Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7115,"watchers_count":7115,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":356,"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":1793,"open_issues":356,"watchers":7115,"default_branch":"main"},"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","user_view_type":"public","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":"2025-01-03T05:23:15Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7115,"watchers_count":7115,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":356,"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":1793,"open_issues":356,"watchers":7115,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"disabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":0} https GET @@ -28,5 +28,5 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4974'), ('content-length', '3445'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"bcfd8d733465b9c28525edfc78ede564"'), ('date', 'Sun, 27 May 2012 06:50:52 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"parents":[{"sha":"b46ed0dfde5ad02d3b91eb54a41c5ed960710eae","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b46ed0dfde5ad02d3b91eb54a41c5ed960710eae"}],"commit":{"message":"Remove completion functions from GitAuthor","author":{"date":"2012-05-09T09:22:33-07:00","name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"committer":{"date":"2012-05-09T09:22:33-07:00","name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"tree":{"sha":"4c6bd50994f0f9823f898b1c6c964ad7d4fa11ab","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/4c6bd50994f0f9823f898b1c6c964ad7d4fa11ab"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a"},"author":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"committer":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"sha":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","stats":{"total":20,"deletions":20,"additions":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","files":[{"patch":"@@ -14,22 +14,17 @@ def __init__( self, requester, attributes, lazy ):\n self.__completed = False\n self.__initAttributes()\n self.__useAttributes( attributes )\n- if not lazy:\n- self.__complete()\n \n @property\n def date( self ):\n- self.__completeIfNeeded( self.__date )\n return self.__date\n \n @property\n def email( self ):\n- self.__completeIfNeeded( self.__email )\n return self.__email\n \n @property\n def name( self ):\n- self.__completeIfNeeded( self.__name )\n return self.__name\n \n def __initAttributes( self ):\n@@ -37,21 +32,6 @@ def __initAttributes( self ):\n self.__email = None\n self.__name = None\n \n- def __completeIfNeeded( self, testedAttribute ):\n- if not self.__completed and testedAttribute is None:\n- self.__complete()\n-\n- # @toto Do not generate __complete if type has no url attribute\n- def __complete( self ):\n- status, headers, data = self.__requester.request(\n- \"GET\",\n- self.__url,\n- None,\n- None\n- )\n- self.__useAttributes( data )\n- self.__completed = True\n-\n def __useAttributes( self, attributes ):\n #@toto No need to check if attribute is in attributes when attribute is mandatory\n if \"date\" in attributes and attributes[ \"date\" ] is not None:","status":"modified","deletions":20,"blob_url":"https://github.com/jacquev6/PyGithub/blob/1292bf0e22c796e91cc3d6e24b544aece8c21f2a/github/GithubObjects/GitAuthor.py","changes":20,"additions":0,"sha":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","raw_url":"https://github.com/jacquev6/PyGithub/raw/1292bf0e22c796e91cc3d6e24b544aece8c21f2a/github/GithubObjects/GitAuthor.py","filename":"github/GithubObjects/GitAuthor.py"}]} +[('Date', 'Fri, 03 Jan 2025 16:05:26 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"0e8453c032d980643d8786bd25539c4163b92fe1080fffc442f42fcb63541cd7"'), ('Last-Modified', 'Wed, 09 May 2012 16:22:33 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4976'), ('X-RateLimit-Reset', '1735920624'), ('X-RateLimit-Used', '24'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B7E4:4D504:21E6A61F:22C6BAA5:67780AC6')] +{"sha":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","node_id":"MDY6Q29tbWl0NDQ2MzY1NzM1OjEyOTJiZjBlMjJjNzk2ZTkxY2MzZDZlMjRiNTQ0YWVjZThjMjFmMmE=","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2012-05-09T16:22:33Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2012-05-09T16:22:33Z"},"message":"Remove completion functions from GitAuthor","tree":{"sha":"4c6bd50994f0f9823f898b1c6c964ad7d4fa11ab","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/4c6bd50994f0f9823f898b1c6c964ad7d4fa11ab"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","html_url":"https://github.com/jacquev6/PyGithub/commit/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a/comments","author":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"b46ed0dfde5ad02d3b91eb54a41c5ed960710eae","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b46ed0dfde5ad02d3b91eb54a41c5ed960710eae","html_url":"https://github.com/jacquev6/PyGithub/commit/b46ed0dfde5ad02d3b91eb54a41c5ed960710eae"}],"stats":{"total":20,"additions":0,"deletions":20},"files":[{"sha":"ca6a3c616fc1367b6d01d04a7cf6ee27cf216f26","filename":"github/GithubObjects/GitAuthor.py","status":"modified","additions":0,"deletions":20,"changes":20,"blob_url":"https://github.com/jacquev6/PyGithub/blob/1292bf0e22c796e91cc3d6e24b544aece8c21f2a/github%2FGithubObjects%2FGitAuthor.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/1292bf0e22c796e91cc3d6e24b544aece8c21f2a/github%2FGithubObjects%2FGitAuthor.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github%2FGithubObjects%2FGitAuthor.py?ref=1292bf0e22c796e91cc3d6e24b544aece8c21f2a","patch":"@@ -14,44 +14,24 @@ def __init__( self, requester, attributes, lazy ):\n self.__completed = False\n self.__initAttributes()\n self.__useAttributes( attributes )\n- if not lazy:\n- self.__complete()\n \n @property\n def date( self ):\n- self.__completeIfNeeded( self.__date )\n return self.__date\n \n @property\n def email( self ):\n- self.__completeIfNeeded( self.__email )\n return self.__email\n \n @property\n def name( self ):\n- self.__completeIfNeeded( self.__name )\n return self.__name\n \n def __initAttributes( self ):\n self.__date = None\n self.__email = None\n self.__name = None\n \n- def __completeIfNeeded( self, testedAttribute ):\n- if not self.__completed and testedAttribute is None:\n- self.__complete()\n-\n- # @todo Do not generate __complete if type has no url attribute\n- def __complete( self ):\n- status, headers, data = self.__requester.request(\n- \"GET\",\n- self.__url,\n- None,\n- None\n- )\n- self.__useAttributes( data )\n- self.__completed = True\n-\n def __useAttributes( self, attributes ):\n #@todo No need to check if attribute is in attributes when attribute is mandatory\n if \"date\" in attributes and attributes[ \"date\" ] is not None:"}]} diff --git a/tests/ReplayData/Commit.testCreateStatusWithAllParameters.txt b/tests/ReplayData/Commit.testCreateStatusWithAllParameters.txt index 4276a0c2e0..fe7322ea5a 100644 --- a/tests/ReplayData/Commit.testCreateStatusWithAllParameters.txt +++ b/tests/ReplayData/Commit.testCreateStatusWithAllParameters.txt @@ -4,7 +4,7 @@ api.github.com None /repos/jacquev6/PyGithub/statuses/1292bf0e22c796e91cc3d6e24b544aece8c21f2a {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -{"state": "success", "target_url": "https://github.com/jacquev6/PyGithub/issues/67", "description": "Status successfuly created by PyGithub"} +{"state": "success", "target_url": "https://github.com/jacquev6/PyGithub/issues/67", "description": "Status successfully created by PyGithub"} 201 [('status', '201 Created'), ('content-length', '603'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('x-ratelimit-remaining', '4975'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"06233b816702bedc54a6f68734a910bc"'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/statuses/277040'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Sat, 08 Sep 2012 11:30:56 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"state":"success","updated_at":"2012-09-08T11:30:56Z","target_url":"https://github.com/jacquev6/PyGithub/issues/67","url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/277040","description":"Status successfuly created by PyGithub","id":277040,"created_at":"2012-09-08T11:30:56Z"} +{"creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"state":"success","updated_at":"2012-09-08T11:30:56Z","target_url":"https://github.com/jacquev6/PyGithub/issues/67","url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/277040","description":"Status successfully created by PyGithub","id":277040,"created_at":"2012-09-08T11:30:56Z"} diff --git a/tests/ReplayData/Commit.testGetBranchesWhereHead.txt b/tests/ReplayData/Commit.testGetBranchesWhereHead.txt new file mode 100644 index 0000000000..7fdd74cb92 --- /dev/null +++ b/tests/ReplayData/Commit.testGetBranchesWhereHead.txt @@ -0,0 +1,32 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Fri, 22 Nov 2024 17:49:09 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"3b6c36f50d6e093db7fb1c9b925c4e9f4fc0995880d09205fd79b58e2f0f70d0"'), ('Last-Modified', 'Fri, 22 Nov 2024 11:14:22 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('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'), ('Server', 'github.com'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '48'), ('X-RateLimit-Reset', '1732300847'), ('X-RateLimit-Resource', 'core'), ('X-RateLimit-Used', '12'), ('Accept-Ranges', 'bytes'), ('Content-Length', '1461'), ('X-GitHub-Request-Id', 'D400:184C4C:27A457A:2818963:6740C416')] +{"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","user_view_type":"public","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":"2024-11-22T11:14:22Z","pushed_at":"2024-11-06T20:49:20Z","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":16447,"stargazers_count":7048,"watchers_count":7048,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1786,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":351,"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":1786,"open_issues":351,"watchers":7048,"default_branch":"main","temp_clone_token":null,"custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"network_count":1786,"subscribers_count":111} + +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/commits/0791cc7b1a706ab5d7c607ddff35de4d486ba3e9 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Fri, 22 Nov 2024 17:49:10 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"d881425df5536b0fb95213928ad35316ca7f4bc4bc8759bbca66d904a071e73b"'), ('Last-Modified', 'Mon, 28 Aug 2023 18:27:45 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('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'), ('Server', 'github.com'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '47'), ('X-RateLimit-Reset', '1732300847'), ('X-RateLimit-Resource', 'core'), ('X-RateLimit-Used', '13'), ('Accept-Ranges', 'bytes'), ('Content-Length', '1923'), ('X-GitHub-Request-Id', 'D406:D7387:27C39FB:28367CF:6740C416')] +{"sha":"0791cc7b1a706ab5d7c607ddff35de4d486ba3e9","node_id":"C_kwDOADYVqtoAKDA3OTFjYzdiMWE3MDZhYjVkN2M2MDdkZGZmMzVkZTRkNDg2YmEzZTk","commit":{"author":{"name":"Enrico Minack","email":"github@enrico.minack.dev","date":"2023-08-28T18:27:45Z"},"committer":{"name":"Enrico Minack","email":"github@enrico.minack.dev","date":"2023-08-28T18:27:45Z"},"message":"Fixing lint errors in release branch","tree":{"sha":"29bb34c69f42d69d0e13d5951a47b32ac4bea130","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/29bb34c69f42d69d0e13d5951a47b32ac4bea130"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0791cc7b1a706ab5d7c607ddff35de4d486ba3e9","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0791cc7b1a706ab5d7c607ddff35de4d486ba3e9","html_url":"https://github.com/PyGithub/PyGithub/commit/0791cc7b1a706ab5d7c607ddff35de4d486ba3e9","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0791cc7b1a706ab5d7c607ddff35de4d486ba3e9/comments","author":{"login":"EnricoMi","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?v=4","gravatar_id":"","url":"https://api.github.com/users/EnricoMi","html_url":"https://github.com/EnricoMi","followers_url":"https://api.github.com/users/EnricoMi/followers","following_url":"https://api.github.com/users/EnricoMi/following{/other_user}","gists_url":"https://api.github.com/users/EnricoMi/gists{/gist_id}","starred_url":"https://api.github.com/users/EnricoMi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EnricoMi/subscriptions","organizations_url":"https://api.github.com/users/EnricoMi/orgs","repos_url":"https://api.github.com/users/EnricoMi/repos","events_url":"https://api.github.com/users/EnricoMi/events{/privacy}","received_events_url":"https://api.github.com/users/EnricoMi/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"EnricoMi","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?v=4","gravatar_id":"","url":"https://api.github.com/users/EnricoMi","html_url":"https://github.com/EnricoMi","followers_url":"https://api.github.com/users/EnricoMi/followers","following_url":"https://api.github.com/users/EnricoMi/following{/other_user}","gists_url":"https://api.github.com/users/EnricoMi/gists{/gist_id}","starred_url":"https://api.github.com/users/EnricoMi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EnricoMi/subscriptions","organizations_url":"https://api.github.com/users/EnricoMi/orgs","repos_url":"https://api.github.com/users/EnricoMi/repos","events_url":"https://api.github.com/users/EnricoMi/events{/privacy}","received_events_url":"https://api.github.com/users/EnricoMi/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"9f7850bf6572ea8572b8b136b8b3d3e09cb38403","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/9f7850bf6572ea8572b8b136b8b3d3e09cb38403","html_url":"https://github.com/PyGithub/PyGithub/commit/9f7850bf6572ea8572b8b136b8b3d3e09cb38403"}],"stats":{"total":23,"additions":17,"deletions":6},"files":[{"sha":"85536829e55af14399a2341f3dc4dc23b44ea5cf","filename":"github/Auth.py","status":"modified","additions":10,"deletions":4,"changes":14,"blob_url":"https://github.com/PyGithub/PyGithub/blob/0791cc7b1a706ab5d7c607ddff35de4d486ba3e9/github%2FAuth.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/0791cc7b1a706ab5d7c607ddff35de4d486ba3e9/github%2FAuth.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FAuth.py?ref=0791cc7b1a706ab5d7c607ddff35de4d486ba3e9","patch":"@@ -83,7 +83,7 @@ def token_type(self) -> str:\n @property\n def token(self) -> str:\n return (\n- base64.b64encode(f\"{self.login}:{self.password}\".encode())\n+ base64.b64encode(f\"{self.username}:{self.password}\".encode())\n .decode(\"utf-8\")\n .replace(\"\\n\", \"\")\n )\n@@ -491,20 +491,26 @@ def username(self) -> str:\n \n @property\n def login(self) -> str:\n- assert self._login is not None, \"Method withRequester(Requester) must be called first\"\n+ assert (\n+ self._login is not None\n+ ), \"Method withRequester(Requester) must be called first\"\n return self._login\n \n @property\n def password(self) -> str:\n- assert self._password is not None, \"Method withRequester(Requester) must be called first\"\n+ assert (\n+ self._password is not None\n+ ), \"Method withRequester(Requester) must be called first\"\n return self._password\n \n def withRequester(self, requester: Requester) -> \"NetrcAuth\":\n super().withRequester(requester)\n \n auth = utils.get_netrc_auth(requester.base_url, raise_errors=True)\n if auth is None:\n- raise RuntimeError(f\"Could not get credentials from netrc for host {requester.hostname}\")\n+ raise RuntimeError(\n+ f\"Could not get credentials from netrc for host {requester.hostname}\"\n+ )\n \n self._login, self._password = auth\n "},{"sha":"37f76d9e16a3cf9556b5995aff1ff0a73f79696d","filename":"github/Requester.py","status":"modified","additions":3,"deletions":1,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/0791cc7b1a706ab5d7c607ddff35de4d486ba3e9/github%2FRequester.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/0791cc7b1a706ab5d7c607ddff35de4d486ba3e9/github%2FRequester.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRequester.py?ref=0791cc7b1a706ab5d7c607ddff35de4d486ba3e9","patch":"@@ -258,7 +258,9 @@ class Requester:\n _frameBuffer: List[Any]\n \n @staticmethod\n- def noopAuth(request: requests.models.PreparedRequest) -> requests.models.PreparedRequest:\n+ def noopAuth(\n+ request: requests.models.PreparedRequest,\n+ ) -> requests.models.PreparedRequest:\n return request\n \n @classmethod"},{"sha":"d895066ee05a1f1fdddf20960d41af82b5807497","filename":"tests/Authentication.py","status":"modified","additions":4,"deletions":1,"changes":5,"blob_url":"https://github.com/PyGithub/PyGithub/blob/0791cc7b1a706ab5d7c607ddff35de4d486ba3e9/tests%2FAuthentication.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/0791cc7b1a706ab5d7c607ddff35de4d486ba3e9/tests%2FAuthentication.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FAuthentication.py?ref=0791cc7b1a706ab5d7c607ddff35de4d486ba3e9","patch":"@@ -220,7 +220,10 @@ def testNetrcAuthFails(self):\n with mock.patch.dict(os.environ, {\"NETRC\": tmp.name}):\n with self.assertRaises(RuntimeError) as exc:\n github.Github(auth=auth)\n- self.assertEqual(exc.exception.args, (\"Could not get credentials from netrc for host api.github.com\",))\n+ self.assertEqual(\n+ exc.exception.args,\n+ (\"Could not get credentials from netrc for host api.github.com\",),\n+ )\n \n def testCreateJWT(self):\n auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY)"}]} + +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/commits/0791cc7b1a706ab5d7c607ddff35de4d486ba3e9/branches-where-head +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Fri, 22 Nov 2024 17:49:10 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"717c5c48f3e422fc79179d2410bef733347be76673684d8432ed5721f118ca40"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('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'), ('Server', 'github.com'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '46'), ('X-RateLimit-Reset', '1732300847'), ('X-RateLimit-Resource', 'core'), ('X-RateLimit-Used', '14'), ('Accept-Ranges', 'bytes'), ('Content-Length', '160'), ('X-GitHub-Request-Id', 'D414:C227F:25E58EB:2658690:6740C416')] +[{"name":"release-v2-0","commit":{"sha":"0791cc7b1a706ab5d7c607ddff35de4d486ba3e9","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0791cc7b1a706ab5d7c607ddff35de4d486ba3e9"},"protected":false}] diff --git a/tests/ReplayData/CommitComment.setUp.txt b/tests/ReplayData/CommitComment.setUp.txt index e83da51b66..c3b8e83554 100644 --- a/tests/ReplayData/CommitComment.setUp.txt +++ b/tests/ReplayData/CommitComment.setUp.txt @@ -2,31 +2,20 @@ https GET api.github.com None -/user +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4967'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"27524c635501121933f4f78c95b1945a"'), ('date', 'Fri, 18 May 2012 20:12:19 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"owned_private_repos":5,"collaborators":0,"type":"User","hireable":false,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","public_gists":1,"company":"Criteo","bio":"","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","private_gists":5,"plan":{"collaborators":1,"private_repos":5,"name":"micro","space":614400},"public_repos":11,"followers":13,"login":"jacquev6","blog":"http://vincent-jacques.net","email":"vincent@vincent-jacques.net","disk_usage":16852,"html_url":"https://github.com/jacquev6","name":"Vincent Jacques","total_private_repos":5,"created_at":"2010-07-09T06:10:06Z","location":"Paris, France","id":327146,"following":24} +[('Date', 'Wed, 08 Jan 2025 08:56:08 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"481c10ad1bdafbd0064dd02c79e34c7022a1ed0217936c6eb970d34414b22fbc"'), ('Last-Modified', 'Tue, 07 Jan 2025 18:29:39 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1736330143'), ('X-RateLimit-Used', '4'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A312:B4D0C:34F087:35E8DE:677E3DA8')] +{"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","user_view_type":"public","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":"2025-01-07T18:29:39Z","pushed_at":"2025-01-07T19:22:27Z","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":16608,"stargazers_count":7126,"watchers_count":7126,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1794,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":364,"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":1794,"open_issues":364,"watchers":7126,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"PR_BODY","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"enabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1794,"subscribers_count":111} https GET api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub/comments/1362000 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4966'), ('content-length', '1097'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c5eec74d4b76b80283636a8efe1a132c"'), ('date', 'Fri, 18 May 2012 20:12:20 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"svn_url":"https://github.com/jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-18T05:29:54Z","forks":2,"homepage":"http://vincent-jacques.net/PyGithub","git_url":"git://github.com/jacquev6/PyGithub.git","url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","open_issues":17,"fork":false,"ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-18T05:18:16Z","size":304,"private":false,"has_downloads":true,"watchers":13,"html_url":"https://github.com/jacquev6/PyGithub","owner":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"PyGithub","permissions":{"pull":true,"admin":true,"push":true},"mirror_url":null,"language":"Python","description":"Python library implementing the full Github API v3","created_at":"2012-02-25T12:53:47Z","id":3544490} - -https -GET -api.github.com -None -/repos/jacquev6/PyGithub/comments/1361949 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('status', '200 OK'), ('content-length', '714'), ('x-ratelimit-remaining', '4979'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"eebb2ebe0274fc6672c9e7bad74e5f39"'), ('date', 'Tue, 22 May 2012 18:43:13 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1361949","path":null,"body":"Comment created by PyGithub","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1361949","created_at":"2012-05-22T18:40:18Z","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","position":null,"updated_at":"2012-05-22T18:40:18Z","id":1361949,"line":null,"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}} +[('Date', 'Wed, 08 Jan 2025 08:56:09 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"daea7721a603c31ef0ef11bc11d016d77a22872012909086a3cbd0caa3fdfc66"'), ('Last-Modified', 'Sun, 20 Oct 2024 07:14:52 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4995'), ('X-RateLimit-Reset', '1736330143'), ('X-RateLimit-Used', '5'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A322:CE605:32344A:332CA8:677E3DA9')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1362000","html_url":"https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362000","id":1362000,"node_id":"MDEzOkNvbW1pdENvbW1lbnQxMzYyMDAw","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"position":null,"line":26,"path":"codegen/templates/GithubObject.MethodBody.UseResult.py","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","created_at":"2012-05-22T18:49:34Z","updated_at":"2012-05-22T18:49:34Z","author_association":"MEMBER","body":"Comment created by PyGithub\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1362000/reactions","total_count":2,"+1":1,"-1":0,"laugh":0,"hooray":1,"confused":0,"heart":0,"rocket":0,"eyes":0}} diff --git a/tests/ReplayData/CommitComment.testCreateReaction.txt b/tests/ReplayData/CommitComment.testCreateReaction.txt index 88dedef274..f6a65533e4 100644 --- a/tests/ReplayData/CommitComment.testCreateReaction.txt +++ b/tests/ReplayData/CommitComment.testCreateReaction.txt @@ -2,7 +2,7 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/comments/1361949/reactions +/repos/PyGithub/PyGithub/comments/1362000/reactions {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'Accept': 'application/vnd.github.squirrel-girl-preview', 'User-Agent': 'PyGithub/Python'} {"content": "hooray"} 201 diff --git a/tests/ReplayData/CommitComment.testDelete.txt b/tests/ReplayData/CommitComment.testDelete.txt index 14de96b4c4..9ed353ee9f 100644 --- a/tests/ReplayData/CommitComment.testDelete.txt +++ b/tests/ReplayData/CommitComment.testDelete.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/comments/1361949 +/repos/PyGithub/PyGithub/comments/1362000 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/CommitComment.testDeleteReaction.txt b/tests/ReplayData/CommitComment.testDeleteReaction.txt index cff7b6fc32..8249000695 100644 --- a/tests/ReplayData/CommitComment.testDeleteReaction.txt +++ b/tests/ReplayData/CommitComment.testDeleteReaction.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/comments/1361949/reactions/85737646 +/repos/PyGithub/PyGithub/comments/1362000/reactions/85737646 {'Accept': 'application/vnd.github.squirrel-girl-preview', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/CommitComment.testEdit.txt b/tests/ReplayData/CommitComment.testEdit.txt index d67ede9e95..356d318cbb 100644 --- a/tests/ReplayData/CommitComment.testEdit.txt +++ b/tests/ReplayData/CommitComment.testEdit.txt @@ -2,9 +2,9 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub/comments/1361949 +/repos/PyGithub/PyGithub/comments/1362000 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"body": "Comment edited by PyGithub"} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4978'), ('content-length', '713'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"97ffd9ff8370f4f284873a6397d7cafd"'), ('date', 'Tue, 22 May 2012 18:43:17 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"updated_at":"2012-05-22T18:43:17Z","position":null,"body":"Comment edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1361949","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","created_at":"2012-05-22T18:40:18Z","path":null,"line":null,"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":1361949,"html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1361949"} +{"updated_at":"2012-05-22T18:43:17Z","position":null,"body":"Comment edited by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1362000","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","created_at":"2012-05-22T18:40:18Z","path":null,"line":null,"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":1362000,"html_url":"https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362000"} diff --git a/tests/ReplayData/CommitComment.testGetReactions.txt b/tests/ReplayData/CommitComment.testGetReactions.txt index 87db6f75cf..c4fcc61d08 100644 --- a/tests/ReplayData/CommitComment.testGetReactions.txt +++ b/tests/ReplayData/CommitComment.testGetReactions.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/comments/1361949/reactions +/repos/PyGithub/PyGithub/comments/1362000/reactions {'Authorization': 'Basic login_and_password_removed', 'Accept': 'application/vnd.github.squirrel-girl-preview', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/CommitStatus.setUp.txt b/tests/ReplayData/CommitStatus.setUp.txt index ba9be4b61f..bfe40d0151 100644 --- a/tests/ReplayData/CommitStatus.setUp.txt +++ b/tests/ReplayData/CommitStatus.setUp.txt @@ -40,4 +40,4 @@ None None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4967'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"33102158c69b28937a0b6a7031ba9c88"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Sat, 08 Sep 2012 11:33:19 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"description":"Status successfuly created by PyGithub","created_at":"2012-09-08T11:30:56Z","target_url":"https://github.com/jacquev6/PyGithub/issues/67","state":"success","context":"build","updated_at":"2012-09-08T11:30:56Z","url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/277040","id":277040,"creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}},{"description":null,"created_at":"2012-09-08T11:27:12Z","target_url":null,"state":"pending","updated_at":"2012-09-08T11:27:12Z","url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/277031","id":277031,"creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}}] +[{"description":"Status successfully created by PyGithub","created_at":"2012-09-08T11:30:56Z","target_url":"https://github.com/jacquev6/PyGithub/issues/67","state":"success","context":"build","updated_at":"2012-09-08T11:30:56Z","url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/277040","id":277040,"creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}},{"description":null,"created_at":"2012-09-08T11:27:12Z","target_url":null,"state":"pending","updated_at":"2012-09-08T11:27:12Z","url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/277031","id":277031,"creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}}] diff --git a/tests/ReplayData/ContentFile.setUp.txt b/tests/ReplayData/ContentFile.setUp.txt index adf891c0d7..96aaa78441 100644 --- a/tests/ReplayData/ContentFile.setUp.txt +++ b/tests/ReplayData/ContentFile.setUp.txt @@ -2,31 +2,20 @@ https GET api.github.com None -/user +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4995'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '806'), ('server', 'nginx/1.0.13'), ('last-modified', 'Wed, 05 Sep 2012 15:03:24 GMT'), ('connection', 'keep-alive'), ('etag', '"350294b94004d4bb252b6a432baa5744"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sat, 08 Sep 2012 10:47:04 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"total_private_repos":5,"public_repos":11,"type":"User","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","owned_private_repos":5,"created_at":"2010-07-09T06:10:06Z","email":"vincent@vincent-jacques.net","public_gists":3,"company":"Criteo","blog":"http://vincent-jacques.net","hireable":false,"plan":{"space":614400,"collaborators":1,"name":"micro","private_repos":5},"followers":13,"html_url":"https://github.com/jacquev6","private_gists":5,"collaborators":0,"bio":"","name":"Vincent Jacques","url":"https://api.github.com/users/jacquev6","disk_usage":14640,"following":28,"location":"Paris, France","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"} +[('Date', 'Wed, 08 Jan 2025 09:15:14 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"481c10ad1bdafbd0064dd02c79e34c7022a1ed0217936c6eb970d34414b22fbc"'), ('Last-Modified', 'Tue, 07 Jan 2025 18:29:39 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4984'), ('X-RateLimit-Reset', '1736330143'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '98C2:CF326:439DFC:44E4D6:677E4221')] +{"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","user_view_type":"public","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":"2025-01-07T18:29:39Z","pushed_at":"2025-01-07T19:22:27Z","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":16608,"stargazers_count":7126,"watchers_count":7126,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1794,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":364,"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":1794,"open_issues":364,"watchers":7126,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"PR_BODY","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"enabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1794,"subscribers_count":111} https GET api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub/readme {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '1239'), ('server', 'nginx/1.0.13'), ('last-modified', 'Fri, 07 Sep 2012 23:56:29 GMT'), ('connection', 'keep-alive'), ('etag', '"1d330cbc4cd990e379a33aedad5f6db5"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sat, 08 Sep 2012 10:47:05 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"master_branch":"master","forks":16,"watchers_count":67,"has_downloads":true,"owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"open_issues_count":15,"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":true,"admin":true},"forks_count":16,"clone_url":"https://github.com/jacquev6/PyGithub.git","created_at":"2012-02-25T12:53:47Z","mirror_url":null,"network_count":16,"has_wiki":false,"watchers":67,"html_url":"https://github.com/jacquev6/PyGithub","size":228,"fork":false,"open_issues":15,"has_issues":true,"updated_at":"2012-09-07T23:56:29Z","full_name":"jacquev6/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","git_url":"git://github.com/jacquev6/PyGithub.git","private":false,"id":3544490,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-09-07T23:56:29Z"} - -https -GET -api.github.com -None -/repos/jacquev6/PyGithub/readme -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4993'), ('x-ratelimit-limit', '5000'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '10787'), ('server', 'nginx/1.0.13'), ('last-modified', 'Wed, 05 Sep 2012 17:54:40 GMT'), ('connection', 'keep-alive'), ('etag', '"71786feb5f476112c5a8aa894ee7ca6c"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Sat, 08 Sep 2012 10:47:05 GMT'), ('x-github-media-type', 'github.beta; format=json'), ('content-type', 'application/json; charset=utf-8')] -{"type":"file","sha":"5628799a7d517a4aaa0c1a7004d07569cd154df0","path":"ReadMe.md","encoding":"base64","content":"VGhpcyBpcyBhIFB5dGhvbiBsaWJyYXJ5IHRvIGFjY2VzcyB0aGUgW0dpdGh1\nYiBBUEkgdjNdKGh0dHA6Ly9kZXZlbG9wZXIuZ2l0aHViLmNvbS92MykuCgpX\naXRoIGl0LCB5b3UgY2FuIG1hbmFnZSB5b3VyIFtHaXRodWJdKGh0dHA6Ly9n\naXRodWIuY29tKSByZXNvdXJjZXMgKHJlcG9zaXRvcmllcywgdXNlciBwcm9m\naWxlcywgb3JnYW5pemF0aW9ucywgZXRjLikgZnJvbSBQeXRob24gc2NyaXB0\ncy4KCkl0IGNvdmVycyB0aGUgKipmdWxsKiogQVBJLCBhbmQgYWxsIG1ldGhv\nZHMgYXJlIHRlc3RlZCBhZ2FpbnN0IHRoZSByZWFsIEdpdGh1YiBzaXRlLgoK\nU2hvdWxkIHlvdSBoYXZlIGFueSBxdWVzdGlvbiwgb3IgaWYgeW91IGZpbmQg\nYSBidWcsIG9yIGlmIHRoZXJlIGlzIHNvbWV0aGluZyB5b3UgY2FuIGRvIHdp\ndGggdGhlIEFQSSBidXQgbm90IHdpdGggUHlHaXRodWIsIHBsZWFzZSBbb3Bl\nbiBhbiBpc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL2phY3F1ZXY2L1B5R2l0\naHViL2lzc3VlcykuCgpQeUdpdGh1YiBpcyBzdGFibGUuIEkgd2lsbCBtYWlu\ndGFpbiBpdCB1cCB0byBkYXRlIHdpdGggdGhlIEFQSSwgYW5kIGZpeCBidWdz\nIGlmIGFueSwgYnV0IEkgZG9uJ3QgcGxhbiBuZXcgaGVhdnkgZGV2ZWxvcG1l\nbnRzLgoKRG93bmxvYWQgYW5kIGluc3RhbGwKPT09PT09PT09PT09PT09PT09\nPT0KClRoaXMgcGFja2FnZSBpcyBpbiB0aGUgW1B5dGhvbiBQYWNrYWdlIElu\nZGV4XShodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvUHlHaXRodWIpLCBz\nbyBgZWFzeV9pbnN0YWxsIFB5R2l0aHViYCBvciBgcGlwIGluc3RhbGwgUHlH\naXRodWJgIHNob3VsZCBiZSBlbm91Z2guCllvdSBjYW4gYWxzbyBjbG9uZSBp\ndCBvbiBbR2l0aHViXShodHRwOi8vZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdp\ndGh1YikuCgpUdXRvcmlhbAo9PT09PT09PQoKRmlyc3QgY3JlYXRlIGEgR2lo\ndHViIGluc3RhbmNlOgoKICAgIGZyb20gZ2l0aHViIGltcG9ydCBHaXRodWIK\nCiAgICBnID0gR2l0aHViKCAidXNlciIsICJwYXNzd29yZCIgKQoKVGhlbiBw\nbGF5IHdpdGggeW91ciBHaXRodWIgb2JqZWN0czoKCiAgICBmb3IgcmVwbyBp\nbiBnLmdldF91c2VyKCkuZ2V0X3JlcG9zKCk6CiAgICAgICAgcHJpbnQgcmVw\nby5uYW1lCiAgICAgICAgcmVwby5lZGl0KCBoYXNfd2lraSA9IEZhbHNlICkK\nCllvdSBjYW4gYWxzbyBjcmVhdGUgYSBHaXRodWIgaW5zdGFuY2Ugd2l0aCBh\nbiBPQXV0aCB0b2tlbjoKCiAgICBnID0gR2l0aHViKCB0b2tlbiApCgpPciB3\naXRob3V0IGF1dGhlbnRpY2F0aW9uOgoKICAgIGcgPSBHaXRodWIoKQoKTGlj\nZW5zaW5nCj09PT09PT09PQoKUHlHaXRodWIgaXMgZGlzdHJpYnV0ZWQgdW5k\nZXIgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5jZS4KU2Vl\nIGZpbGVzIENPUFlJTkcgYW5kIENPUFlJTkcuTEVTU0VSLCBhcyByZXF1ZXN0\nZWQgYnkgW0dOVV0oaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC1o\nb3d0by5odG1sKS4KClByb2plY3RzIHVzaW5nIFB5R2l0aHViCj09PT09PT09\nPT09PT09PT09PT09PT09CgooW09wZW4gYW4gaXNzdWVdKGh0dHBzOi8vZ2l0\naHViLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9pc3N1ZXMpIGlmIHlvdSB3YW50\nIHRvIGJlIGxpc3RlZCBoZXJlLCBJJ2xsIGJlIGdsYWQgdG8gYWRkIHlvdXIg\ncHJvamVjdCkKCiogW1VwdmVydGVyXShodHRwczovL3VwdmVydGVyLmNvbSkg\naXMgYSB3ZWItYmFzZWQgc2NoZW1hdGljIGNhcHR1cmUgYW5kIFBDQiBsYXlv\ndXQgdG9vbCBmb3IgcGVvcGxlIHdobyBkZXNpZ24gZWxlY3Ryb25pY3MuIERl\nc2lnbmVycyBjYW4gYXR0YWNoIGEgR2l0aHViIHByb2plY3QgdG8gYW4gVXB2\nZXJ0ZXIgcHJvamVjdC4KKiBbVHJhdGlodWJpc10oaHR0cDovL3B5cGkucHl0\naG9uLm9yZy9weXBpL3RyYXRpaHViaXMvKSBjb252ZXJ0cyBUcmFjIHRpY2tl\ndHMgdG8gR2l0aHViIGlzc3VlcwoKSGlzdG9yeQo9PT09PT09CgpbVmVyc2lv\nbiAxLjVdKGh0dHBzOi8vZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9p\nc3N1ZXM/bWlsZXN0b25lPTkmc3RhdGU9Y2xvc2VkKSAoU2VwdGVtYmVyIDV0\naCwgMjAxMikKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqIEFkZCBhIHRpbWVvdXQgb3B0\naW9uLCB0aGFuayB5b3UgbXVjaCBbeG9iYjF0XShodHRwczovL2dpdGh1Yi5j\nb20veG9iYjF0KSBmb3IgdGhlIG1lcmdlIHJlcXVlc3QuICpUaGlzIGRyb3Bz\nIFB5dGhvbiAyLjUgc3VwcG9ydCouIEkgbWF5IGJlIGFibGUgdG8gcmVzdG9y\nZSBpdCBpbiBuZXh0IHZlcnNpb24uCiogSW1wbGVtZW50IGBSZXBvc2l0b3J5\nLmRlbGV0ZWAsIHRoYW5rIHlvdSBbcG1jaGVuXShodHRwczovL2dpdGh1Yi5j\nb20vcG1jaGVuKSBmb3IgYXNraW5nCgpbVmVyc2lvbiAxLjRdKGh0dHBzOi8v\nZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9pc3N1ZXM/bWlsZXN0b25l\nPTgmc3RhdGU9Y2xvc2VkKSAoQXVndXN0IDR0aCwgMjAxMikKLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tCgoqIEFsbG93IGNvbm5lY3Rpb24gdG8gYSBjdXN0b20gR2l0aHViIFVS\nTCwgZm9yIEdpdGh1YiBFbnRlcnByaXNlLCB0aGFuayB5b3UgdmVyeSBtdWNo\nIFtlbmdpZV0oaHR0cHM6Ly9naXRodWIuY29tL2VuZ2llKSBmb3IgdGhlIG1l\ncmdlIHJlcXVlc3QKCltWZXJzaW9uIDEuM10oaHR0cHM6Ly9naXRodWIuY29t\nL2phY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxlc3RvbmU9NyZzdGF0ZT1j\nbG9zZWQpIChKdWx5IDEzdGgsIDIwMTIpCi0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqIEltcGxl\nbWVudCBbbWFya2Rvd24gcmVuZGVyaW5nXShodHRwOi8vZGV2ZWxvcGVyLmdp\ndGh1Yi5jb20vdjMvbWFya2Rvd24vKQoqIGBHaXRBdXRob3IuZGF0ZWAgaXMg\nbm93IGEgZGF0ZXRpbWUsIHRoYW5rIHlvdSBbYmlsZGVyYnVjaGldKGh0dHBz\nOi8vZ2l0aHViLmNvbS9iaWxkZXJidWNoaSkKKiBGaXggZG9jdW1lbnRhdGlv\nbiBvZiBgR2l0aHViLmdldF9naXN0YDogYGlkYCBpcyBhIHN0cmluZywgbm90\nIGFuIGludGVnZXIKCltWZXJzaW9uIDEuMl0oaHR0cHM6Ly9naXRodWIuY29t\nL2phY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxlc3RvbmU9NiZzdGF0ZT1j\nbG9zZWQpIChKdW5lIDI5dGgsIDIwMTIpCi0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqIEltcGxl\nbWVudCBbbGVnYWN5IHNlYXJjaCBBUElzXShodHRwOi8vZGV2ZWxvcGVyLmdp\ndGh1Yi5jb20vdjMvc2VhcmNoLyksIHRoYW5rIHlvdSBba3VrdXRzXShodHRw\nczovL2dpdGh1Yi5jb20va3VrdXRzKSBmb3IgdGVsbGluZyBtZSBHaXRodWIg\naGFkIHJlbGVhc2VkIHRoZW0KKiBGaXggYSBidWcgd2l0aCBpc3N1ZSBsYWJl\nbHMgY29udGFpbmluZyBzcGFjZXMsIHRoYW5rIHlvdSBbcGhpbGlwa2ltbWV5\nXShodHRwczovL2dpdGh1Yi5jb20vcGhpbGlwa2ltbWV5KSBmb3IgZGV0ZWN0\naW5nIHRoZSBidWcgYW5kIGZpeGluZyBpdAoqIENsYXJpZnkgaG93IGNvbGxl\nY3Rpb25zIG9mIG9iamVjdHMgYXJlIHJldHVybmVkIGJ5IGBnZXRfKmAgbWV0\naG9kcywgdGhhbmsgeW91IFtiaWxkZXJidWNoaV0oaHR0cHM6Ly9naXRodWIu\nY29tL2JpbGRlcmJ1Y2hpKSBmb3IgYXNraW5nCgpWZXJzaW9uIDEuMSAoSnVu\nZSAyMHRoLCAyMDEyKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK\nKiBSZXN0b3JlIGNvbXBhdGliaWxpdHkgd2l0aCBQeXRob24gMi41LCB0aGFu\nayB5b3UgW3BtdWlsdV0oaHR0cHM6Ly9naXRodWIuY29tL3BtdWlsdSkKKiBV\nc2UgYHBhY2thZ2VfZGF0YWAgaW5zdGVhZCBvZiBgZGF0YV9maWxlc2AgZm9y\nIGRvY3VtZW50YXRpb24gZmlsZXMgaW4gYHNldHVwLnB5YCwgdGhhbmsgeW91\nIFttYWxleHddKGh0dHBzOi8vZ2l0aHViLmNvbS9tYWxleHcpIGZvciByZXBv\ncnRpbmcKCltWZXJzaW9uIDEuMF0oaHR0cHM6Ly9naXRodWIuY29tL2phY3F1\nZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxlc3RvbmU9MiZzdGF0ZT1jbG9zZWQp\nIChKdW5lIDNyZCwgMjAxMikKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKKiBDb21wbGV0ZSByZXdy\naXRlLCB3aXRoIG5vIG1vcmUgY29tcGxpY2F0ZWQgbWV0YS1kZXNjcmlwdGlv\nbgoqIEZ1bGwgdHlwaW5nIG9mIGF0dHJpYnV0ZXMgYW5kIHBhcmFtZXRlcnMK\nKiBGdWxsIGRvY3VtZW50YXRpb24gb2YgYXR0cmlidXRlcyBhbmQgcGFyYW1l\ndGVycwoqIE1vcmUgdXNhYmxlIGV4Y2VwdGlvbnMgcmFpc2VkIGluIGNhc2Ug\nb24gcHJvYmxlbXMgd2l0aCB0aGUgQVBJCiogU29tZSBidWdzIGFuZCBsaW1p\ndGF0aW9ucyBmaXhlZCwgc3BlY2lhbCB0aGFua3MgdG8gW2JpbGRlcmJ1Y2hp\nXShodHRwczovL2dpdGh1Yi5jb20vYmlsZGVyYnVjaGkpLCBbcm9za2Frb3Jp\nXShodHRwczovL2dpdGh1Yi5jb20vcm9za2Frb3JpKSBhbmQgW3RhbGxmb3Jh\nc211cmZdKGh0dHBzOi8vZ2l0aHViLmNvbS90YWxsZm9yYXNtdXJmKSBmb3Ig\ncmVwb3J0aW5nIHRoZW0hCgpbVmVyc2lvbiAwLjddKGh0dHBzOi8vZ2l0aHVi\nLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9pc3N1ZXM/bWlsZXN0b25lPTUmc3Rh\ndGU9Y2xvc2VkKSAoTWF5IDI2dGgsIDIwMTIpCi0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiogVXNl\nIFB5R2l0aHViIHdpdGggT0F1dGggYXV0aGVudGljYXRpb24gb3Igd2l0aCBu\nbyBhdXRoZW50aWNhdGlvbiBhdCBhbGwKCltWZXJzaW9uIDAuNl0oaHR0cHM6\nLy9naXRodWIuY29tL2phY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxlc3Rv\nbmU9NCZzdGF0ZT1jbG9zZWQpIChBcHJpbCAxN3RoLCAyMDEyKQotLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0KCiogRml4IFtpc3N1ZSAyMV0oaHR0cHM6Ly9naXRodWIuY29tL2ph\nY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcy8yMSkgKEtleUVycm9yIHdoZW4gYWNj\nZXNzaW5nIHJlcG9zaXRvcmllcykKKiBSZS1jb21wbGV0ZWQgdGhlIEFQSSB3\naXRoIE5hbWVkVXNlci5jcmVhdGVfZ2lzdAoKCltWZXJzaW9uIDAuNV0oaHR0\ncHM6Ly9naXRodWIuY29tL2phY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxl\nc3RvbmU9MyZzdGF0ZT1jbG9zZWQpIChNYXJjaCAxOXRoLCAyMDEyKQotLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0KCiogTWFqb3IgYWNoaWV2ZW1lbnQ6ICoqYWxsIEFQSXMgYXJl\nIGltcGxlbWVudGVkKioKKiBNb3JlIHJlZmFjdG9yaW5nLCBvZiBjb3Vyc2UK\nCltWZXJzaW9uIDAuNF0oaHR0cHM6Ly9naXRodWIuY29tL2phY3F1ZXY2L1B5\nR2l0aHViL2lzc3Vlcz9taWxlc3RvbmU9MSZzdGF0ZT1jbG9zZWQpIChNYXJj\naCAxMnRoLCAyMDEyKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiogVGhlIGxpc3Qgb2YgdGhl\nIG5vdCBpbXBsZW1lbnRlZCBBUElzIGlzIHNob3J0ZXIgdGhhbiB0aGUgbGlz\ndCBvZiB0aGUgaW1wbGVtZW50ZWQgQVBJcwoqIEFQSXMgKm5vdCBpbXBsZW1l\nbnRlZCo6CiAgICAqIEdFVCBgL2dpc3RzL3B1YmxpY2AKICAgICogR0VUIGAv\naXNzdWVzYAogICAgKiBHRVQgYC9yZXBvcy86dXNlci86cmVwby9jb21wYXJl\nLzpiYXNlLi4uOmhlYWRgCiAgICAqIEdFVCBgL3JlcG9zLzp1c2VyLzpyZXBv\nL2dpdC90cmVlcy86c2hhP3JlY3Vyc2l2ZT0xYAogICAgKiBQT1NUIGAvcmVw\nb3MvOnVzZXIvOnJlcG8vZ2l0L3RyZWVzP2Jhc2VfdHJlZT1gCiogR2lzdHMK\nKiBBdXRvcml6YXRpb25zCiogS2V5cwoqIEhvb2tzCiogRXZlbnRzCiogTWVy\nZ2UgcHVsbCByZXF1ZXN0cwoqIE1vcmUgcmVmYWN0b3JpbmcsIG9uZSBtb3Jl\nIHRpbWUKClZlcnNpb24gMC4zIChGZWJydWFyeSAyNnRoLCAyMDEyKQotLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiogTW9yZSByZWZhY3Rv\ncmluZwoqIElzc3VlcywgbWlsZXN0b25lcyBhbmQgdGhlaXIgbGFiZWxzCiog\nTmFtZWRVc2VyOgogICAgKiBlbWFpbHMKKiBSZXBvc2l0b3J5OgogICAgKiBk\nb3dubG9hZHMKICAgICogdGFncywgYnJhbmNoZXMsIGNvbW1pdHMgYW5kIGNv\nbW1lbnRzIChub3QgdGhlIHNhbWUgYXMgIkdpdCBvYmplY3RzIiBvZiB2ZXJz\naW9uIDAuMikKICAgICogcHVsbCByZXF1ZXN0cyAobm8gYXV0b21hdGljIG1l\ncmdlIHlldCkKKiBBdXRvbWF0aWMgZ2VuZXJhdGlvbiBvZiB0aGUgcmVmZXJl\nbmNlIGRvY3VtZW50YXRpb24gb2YgY2xhc3Nlcywgd2l0aCBsZXNzICJzZWUg\nQVBJInMsIGFuZCBsZXNzIGVycm9ycwoKVmVyc2lvbiAwLjIgKEZlYnJ1YXJ5\nIDIzcmQsIDIwMTIpCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLQoKKiBSZWZhY3RvcmluZwoqIFRlYW1zIGRldGFpbHMgYW5kIG1vZGlmaWNh\ndGlvbgogICAgKiBiYXNpYyBhdHRyaWJ1dGVzCiAgICAqIGxpc3QgdGVhbXMg\naW4gb3JnYW5pemF0aW9ucywgb24gcmVwb3NpdG9yaWVzCiogR2l0IG9iamVj\ndHMKICAgICogY3JlYXRlIGFuZCBnZXQgdGFncywgcmVmZXJlbmNlcywgY29t\nbWl0cywgdHJlZXMsIGJsb2JzCiAgICAqIGxpc3QgYW5kIGVkaXQgcmVmZXJl\nbmNlcwoKVmVyc2lvbiAwLjEgKEZlYnJ1YXJ5IDE5dGgsIDIwMTIpCi0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKKiBVc2VyIGRldGFpbHMg\nYW5kIG1vZGlmaWNhdGlvbgogICAgKiBiYXNpYyBhdHRyaWJ1dGVzCiAgICAq\nIGZvbGxvd2VycywgZm9sbG93aW5nLCB3YXRjaGluZwogICAgKiBvcmdhbml6\nYXRpb25zCiAgICAqIHJlcG9zaXRvcmllcwoqIFJlcG9zaXRvcnkgZGV0YWls\ncyBhbmQgbW9kaWZpY2F0aW9uCiAgICAqIGJhc2ljIGF0dHJpYnV0ZXMKICAg\nICogZm9ya2luZwogICAgKiBjb2xsYWJvcmF0b3JzLCBjb250cmlidXRvcnMs\nIHdhdGNoZXJzCiogT3JnYW5pemF0aW9uIGRldGFpbHMgYW5kIG1vZGlmaWNh\ndGlvbgogICAgKiBiYXNpYyBhdHRyaWJ1dGVzCiAgICAqIG1lbWJlcnMgYW5k\nIHB1YmxpYyBtZW1iZXJzCg==\n","size":7531,"name":"ReadMe.md","download_url": "https://raw.githubusercontent.com/jacquev6/PyGithub/master/README.md","_links":{"self":"https://api.github.com/repos/jacquev6/PyGithub/contents/ReadMe.md","html":"https://github.com/jacquev6/PyGithub/blob/master/ReadMe.md","git":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/5628799a7d517a4aaa0c1a7004d07569cd154df0"}} +[('Date', 'Wed, 08 Jan 2025 09:15:14 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"0d9df5bfb7d4b93443c130bc8f4eea5dd3f01205"'), ('Last-Modified', 'Tue, 07 Jan 2025 10:55:06 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4983'), ('X-RateLimit-Reset', '1736330143'), ('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'"), ('Content-Encoding', 'gzip'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '98C8:E2FAF:40F12E:42384E:677E4222')] +{"name":"README.md","path":"README.md","sha":"0d9df5bfb7d4b93443c130bc8f4eea5dd3f01205","size":2524,"url":"https://api.github.com/repos/PyGithub/PyGithub/contents/README.md?ref=main","html_url":"https://github.com/PyGithub/PyGithub/blob/main/README.md","git_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/0d9df5bfb7d4b93443c130bc8f4eea5dd3f01205","download_url":"https://raw.githubusercontent.com/PyGithub/PyGithub/main/README.md","type":"file","content":"IyBQeUdpdEh1YgoKWyFbUHlQSV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9w\neXBpL3YvUHlHaXRodWIuc3ZnKV0oaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcv\ncHlwaS9QeUdpdGh1YikKIVtDSV0oaHR0cHM6Ly9naXRodWIuY29tL1B5R2l0\naHViL1B5R2l0aHViL3dvcmtmbG93cy9DSS9iYWRnZS5zdmcpClshW3JlYWR0\naGVkb2NzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2RvY3Mtc3Rh\nYmxlLWJyaWdodGdyZWVuLnN2Zz9zdHlsZT1mbGF0KV0oaHR0cHM6Ly9weWdp\ndGh1Yi5yZWFkdGhlZG9jcy5pby9lbi9zdGFibGUvP2JhZGdlPXN0YWJsZSkK\nWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNl\nbnNlLUxHUEwtYmx1ZS5zdmcpXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcv\nd2lraS9HTlVfTGVzc2VyX0dlbmVyYWxfUHVibGljX0xpY2Vuc2UpClshW1Ns\nYWNrXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1NsYWNrJTIwY2hh\nbm5lbC0lMjAlMjAtYmx1ZS5zdmcpXShodHRwczovL2pvaW4uc2xhY2suY29t\nL3QvcHlnaXRodWItcHJvamVjdC9zaGFyZWRfaW52aXRlL3p0LWR1ajg5eHR4\nLXVLRlp0Z0FnMjA5bzZWd2VxbTh4ZVEpClshW09wZW4gU291cmNlIEhlbHBl\ncnNdKGh0dHBzOi8vd3d3LmNvZGV0cmlhZ2UuY29tL3B5Z2l0aHViL3B5Z2l0\naHViL2JhZGdlcy91c2Vycy5zdmcpXShodHRwczovL3d3dy5jb2RldHJpYWdl\nLmNvbS9weWdpdGh1Yi9weWdpdGh1YikKWyFbY29kZWNvdl0oaHR0cHM6Ly9j\nb2RlY292LmlvL2doL1B5R2l0aHViL1B5R2l0aHViL2JyYW5jaC9tYXN0ZXIv\nZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL1B5R2l0\naHViL1B5R2l0aHViKQpbIVtDb2RlIHN0eWxlOiBibGFja10oaHR0cHM6Ly9p\nbWcuc2hpZWxkcy5pby9iYWRnZS9jb2RlJTIwc3R5bGUtYmxhY2stMDAwMDAw\nLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9wc2YvYmxhY2spCgpQeUdpdEh1\nYiBpcyBhIFB5dGhvbiBsaWJyYXJ5IHRvIGFjY2VzcyB0aGUgW0dpdEh1YiBS\nRVNUIEFQSV0uClRoaXMgbGlicmFyeSBlbmFibGVzIHlvdSB0byBtYW5hZ2Ug\nW0dpdEh1Yl0gcmVzb3VyY2VzIHN1Y2ggYXMgcmVwb3NpdG9yaWVzLCB1c2Vy\nIHByb2ZpbGVzLCBhbmQgb3JnYW5pemF0aW9ucyBpbiB5b3VyIFB5dGhvbiBh\ncHBsaWNhdGlvbnMuCgpbR2l0SHViIFJFU1QgQVBJXTogaHR0cHM6Ly9kb2Nz\nLmdpdGh1Yi5jb20vZW4vcmVzdApbR2l0SHViXTogaHR0cHM6Ly9naXRodWIu\nY29tCgojIyBJbnN0YWxsCgpgYGBiYXNoCnBpcCBpbnN0YWxsIFB5R2l0aHVi\nCmBgYAoKIyMgU2ltcGxlIERlbW8KCmBgYHB5dGhvbgpmcm9tIGdpdGh1YiBp\nbXBvcnQgR2l0aHViCgojIEF1dGhlbnRpY2F0aW9uIGlzIGRlZmluZWQgdmlh\nIGdpdGh1Yi5BdXRoCmZyb20gZ2l0aHViIGltcG9ydCBBdXRoCgojIHVzaW5n\nIGFuIGFjY2VzcyB0b2tlbgphdXRoID0gQXV0aC5Ub2tlbigiYWNjZXNzX3Rv\na2VuIikKCiMgRmlyc3QgY3JlYXRlIGEgR2l0aHViIGluc3RhbmNlOgoKIyBQ\ndWJsaWMgV2ViIEdpdGh1YgpnID0gR2l0aHViKGF1dGg9YXV0aCkKCiMgR2l0\naHViIEVudGVycHJpc2Ugd2l0aCBjdXN0b20gaG9zdG5hbWUKZyA9IEdpdGh1\nYihiYXNlX3VybD0iaHR0cHM6Ly97aG9zdG5hbWV9L2FwaS92MyIsIGF1dGg9\nYXV0aCkKCiMgVGhlbiBwbGF5IHdpdGggeW91ciBHaXRodWIgb2JqZWN0czoK\nZm9yIHJlcG8gaW4gZy5nZXRfdXNlcigpLmdldF9yZXBvcygpOgogICAgcHJp\nbnQocmVwby5uYW1lKQoKIyBUbyBjbG9zZSBjb25uZWN0aW9ucyBhZnRlciB1\nc2UKZy5jbG9zZSgpCmBgYAoKIyMgRG9jdW1lbnRhdGlvbgoKTW9yZSBpbmZv\ncm1hdGlvbiBjYW4gYmUgZm91bmQgb24gdGhlIFtQeUdpdEh1YiBkb2N1bWVu\ndGF0aW9uIHNpdGUuXShodHRwczovL3B5Z2l0aHViLnJlYWR0aGVkb2NzLmlv\nL2VuL3N0YWJsZS9pbnRyb2R1Y3Rpb24uaHRtbCkKCiMjIERldmVsb3BtZW50\nCgojIyMgQ29udHJpYnV0aW5nCgpMb25nLXRlcm0gZGlzY3Vzc2lvbiBhbmQg\nYnVnIHJlcG9ydHMgYXJlIG1haW50YWluZWQgdmlhIEdpdEh1YiBJc3N1ZXMu\nCkNvZGUgcmV2aWV3IGlzIGRvbmUgdmlhIEdpdEh1YiBQdWxsIFJlcXVlc3Rz\nLgoKRm9yIG1vcmUgaW5mb3JtYXRpb24gcmVhZCBbQ09OVFJJQlVUSU5HLm1k\nXS4KCltDT05UUklCVVRJTkcubWRdOiBodHRwczovL2dpdGh1Yi5jb20vUHlH\naXRodWIvUHlHaXRodWIvYmxvYi9tYWluL0NPTlRSSUJVVElORy5tZAoKIyMj\nIE1haW50YWluZXJzaGlwCgpXZSdyZSBhY3RpdmVseSBzZWVraW5nIG1haW50\nYWluZXJzIHRoYXQgd2lsbCB0cmlhZ2UgaXNzdWVzIGFuZCBwdWxsIHJlcXVl\nc3RzIGFuZCBjdXQgcmVsZWFzZXMuCklmIHlvdSB3b3JrIG9uIGEgcHJvamVj\ndCB0aGF0IGxldmVyYWdlcyBQeUdpdEh1YiBhbmQgaGF2ZSBhIHZlc3RlZCBp\nbnRlcmVzdCBpbiBrZWVwaW5nIHRoZSBjb2RlIGFsaXZlIGFuZCB3ZWxsLCBz\nZW5kIGFuIGVtYWlsIHRvIHNvbWVvbmUgaW4gdGhlIE1BSU5UQUlORVJTIGZp\nbGUuCg==\n","encoding":"base64","_links":{"self":"https://api.github.com/repos/PyGithub/PyGithub/contents/README.md?ref=main","git":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/0d9df5bfb7d4b93443c130bc8f4eea5dd3f01205","html":"https://github.com/PyGithub/PyGithub/blob/main/README.md"}} diff --git a/tests/ReplayData/Copilot.setUp.txt b/tests/ReplayData/Copilot.setUp.txt new file mode 100644 index 0000000000..04ba70a647 --- /dev/null +++ b/tests/ReplayData/Copilot.setUp.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/orgs/BeaverSoftware +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4976'), ('content-length', '716'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4862bcec9fa538316e2fcd73be37b846"'), ('date', 'Sat, 26 May 2012 21:09:52 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"type":"Organization","login":"BeaverSoftware","id":1424031} diff --git a/tests/ReplayData/Copilot.testAddSeats.txt b/tests/ReplayData/Copilot.testAddSeats.txt new file mode 100644 index 0000000000..de41c632e6 --- /dev/null +++ b/tests/ReplayData/Copilot.testAddSeats.txt @@ -0,0 +1,10 @@ +https +POST +api.github.com +None +/orgs/BeaverSoftware/copilot/billing/selected_users +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"selected_usernames": ["pashafateev"]} +201 +[('status', '201 Created'), ('x-ratelimit-remaining', '4975'), ('content-length', '19'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4862bcec9fa538316e2fcd73be37b846"'), ('date', 'Sat, 26 May 2012 21:09:52 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"seats_created":1} diff --git a/tests/ReplayData/Copilot.testAttributes.txt b/tests/ReplayData/Copilot.testAttributes.txt new file mode 100644 index 0000000000..707fbf04fe --- /dev/null +++ b/tests/ReplayData/Copilot.testAttributes.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/orgs/BeaverSoftware/copilot/billing/seats +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4973'), ('content-length', '716'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4862bcec9fa538316e2fcd73be37b846"'), ('date', 'Sat, 26 May 2012 21:09:52 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"seats": [{"created_at": "2010-07-09T06:10:06Z", "updated_at": "2012-05-26T11:25:48Z", "pending_cancellation_date": null, "last_activity_at": "2012-05-26T14:59:39Z", "last_activity_editor": "vscode/1.0.0", "plan_type": "business", "assignee": {"login": "pashafateev", "id": 327146}}]} diff --git a/tests/ReplayData/Copilot.testGetSeats.txt b/tests/ReplayData/Copilot.testGetSeats.txt new file mode 100644 index 0000000000..707fbf04fe --- /dev/null +++ b/tests/ReplayData/Copilot.testGetSeats.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/orgs/BeaverSoftware/copilot/billing/seats +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4973'), ('content-length', '716'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4862bcec9fa538316e2fcd73be37b846"'), ('date', 'Sat, 26 May 2012 21:09:52 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"seats": [{"created_at": "2010-07-09T06:10:06Z", "updated_at": "2012-05-26T11:25:48Z", "pending_cancellation_date": null, "last_activity_at": "2012-05-26T14:59:39Z", "last_activity_editor": "vscode/1.0.0", "plan_type": "business", "assignee": {"login": "pashafateev", "id": 327146}}]} diff --git a/tests/ReplayData/Copilot.testRemoveSeats.txt b/tests/ReplayData/Copilot.testRemoveSeats.txt new file mode 100644 index 0000000000..10d281c28f --- /dev/null +++ b/tests/ReplayData/Copilot.testRemoveSeats.txt @@ -0,0 +1,10 @@ +https +DELETE +api.github.com +None +/orgs/BeaverSoftware/copilot/billing/selected_users +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"selected_usernames": ["pashafateev"]} +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4972'), ('content-length', '21'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4862bcec9fa538316e2fcd73be37b846"'), ('date', 'Sat, 26 May 2012 21:09:52 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"seats_cancelled":1} diff --git a/tests/ReplayData/ExposeAllAttributes.testAllClasses.txt b/tests/ReplayData/ExposeAllAttributes.testAllClasses.txt index 5425c2d215..bce76f7407 100644 --- a/tests/ReplayData/ExposeAllAttributes.testAllClasses.txt +++ b/tests/ReplayData/ExposeAllAttributes.testAllClasses.txt @@ -73,7 +73,7 @@ None None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4890'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'bfc3ae14-6a54-4607-9d33-e51833d38736'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '2539'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"97c44c9e1c063b88767ef99e812a077b"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:06 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","id":277040,"state":"success","description":"Status successfuly created by PyGithub","target_url":"https://github.com/jacquev6/PyGithub/issues/67","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2012-09-08T11:30:56Z","updated_at":"2012-09-08T11:30:56Z"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","id":277031,"state":"pending","description":null,"target_url":null,"creator":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2012-09-08T11:27:12Z","updated_at":"2012-09-08T11:27:12Z"}] +[{"url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","id":277040,"state":"success","description":"Status successfully created by PyGithub","target_url":"https://github.com/jacquev6/PyGithub/issues/67","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2012-09-08T11:30:56Z","updated_at":"2012-09-08T11:30:56Z"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","id":277031,"state":"pending","description":null,"target_url":null,"creator":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2012-09-08T11:27:12Z","updated_at":"2012-09-08T11:27:12Z"}] https GET diff --git a/tests/ReplayData/GitCommit.setUp.txt b/tests/ReplayData/GitCommit.setUp.txt index 5b769a5c40..fea0b6737c 100644 --- a/tests/ReplayData/GitCommit.setUp.txt +++ b/tests/ReplayData/GitCommit.setUp.txt @@ -2,31 +2,20 @@ https GET api.github.com None -/user +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4968'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"55f0187d26f5ca2e7103006d9837865c"'), ('date', 'Thu, 10 May 2012 19:05:23 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"total_private_repos":5,"html_url":"https://github.com/jacquev6","type":"User","url":"https://api.github.com/users/jacquev6","owned_private_repos":5,"disk_usage":16676,"plan":{"private_repos":5,"collaborators":1,"space":614400,"name":"micro"},"public_gists":1,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","blog":"http://vincent-jacques.net","private_gists":5,"login":"jacquev6","public_repos":10,"email":"vincent@vincent-jacques.net","collaborators":0,"created_at":"2010-07-09T06:10:06Z","company":"Criteo","location":"Paris, France","hireable":false,"followers":13,"following":24,"name":"Vincent Jacques","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","bio":"","id":327146} +[('Date', 'Fri, 03 Jan 2025 17:14:54 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"1b88c089a1e6863e1ce80f34340070e2ac596331034a24535f079d3af895faa2"'), ('Last-Modified', 'Fri, 03 Jan 2025 05:23:15 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1735927338'), ('X-RateLimit-Used', '4'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '9816:12E656:1DDDFEE8:1EA5D038:67781B0E')] +{"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","user_view_type":"public","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":"2025-01-03T05:23:15Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7115,"watchers_count":7115,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":356,"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":1793,"open_issues":356,"watchers":7115,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"PR_BODY","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"enabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":111} https GET api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub/git/commits/3d84a47a88f6757514cb3ee91b829f53ba09e7e0 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4967'), ('content-length', '1097'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"72a84ed8ad0d83f6a4c09dcd388c20a1"'), ('date', 'Thu, 10 May 2012 19:05:27 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"homepage":"http://vincent-jacques.net/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","html_url":"https://github.com/jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","has_downloads":true,"watchers":13,"permissions":{"admin":true,"pull":true,"push":true},"mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":2,"language":"Python","size":196,"description":"Python library implementing the full Github API v3","git_url":"git://github.com/jacquev6/PyGithub.git","private":false,"created_at":"2012-02-25T12:53:47Z","open_issues":15,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"name":"PyGithub","pushed_at":"2012-05-10T18:49:21Z","id":3544490,"ssh_url":"git@github.com:jacquev6/PyGithub.git","updated_at":"2012-05-10T18:49:21Z"} - -https -GET -api.github.com -None -/repos/jacquev6/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4966'), ('content-length', '910'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"eabd190c639b57d447ea6d3463da7aae"'), ('date', 'Thu, 10 May 2012 19:05:28 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495","message":"Merge branch 'develop'\n","committer":{"email":"vincent@vincent-jacques.net","date":"2012-04-17T10:55:16-07:00","name":"Vincent Jacques"},"sha":"4303c5b90e2216d927155e9609436ccb8984c495","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","sha":"936f4a97f1a86392637ec002bbf89ff036a5062d"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","sha":"2a7e80e6421c5d4d201d60619068dea6bae612cb"}],"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad","sha":"f492784d8ca837779650d1fb406a1a3587a764ad"},"author":{"email":"vincent@vincent-jacques.net","date":"2012-04-17T10:55:16-07:00","name":"Vincent Jacques"}} +[('Date', 'Fri, 03 Jan 2025 17:14:54 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"f1c85d4878dfa7520cb01904b5df8996cb693e4c49b993818733fe3d5efe1614"'), ('Last-Modified', 'Wed, 18 Dec 2024 10:40:19 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4995'), ('X-RateLimit-Reset', '1735927338'), ('X-RateLimit-Used', '5'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '981E:521E5:224BE37D:232D151B:67781B0E')] +{"sha":"3d84a47a88f6757514cb3ee91b829f53ba09e7e0","node_id":"C_kwDOADYVqtoAKDNkODRhNDdhODhmNjc1NzUxNGNiM2VlOTFiODI5ZjUzYmEwOWU3ZTA","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/3d84a47a88f6757514cb3ee91b829f53ba09e7e0","html_url":"https://github.com/PyGithub/PyGithub/commit/3d84a47a88f6757514cb3ee91b829f53ba09e7e0","author":{"name":"Enrico Minack","email":"github@enrico.minack.dev","date":"2024-12-18T10:40:19Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2024-12-18T10:40:19Z"},"tree":{"sha":"d9e2468f2db35e158eb65e91b249dde20ca88c86","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/d9e2468f2db35e158eb65e91b249dde20ca88c86"},"message":"Get branches where commit is head (#3083)\n\nImplements `GET\r\n/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head`\r\n\r\nhttps://docs.github.com/rest/commits/commits#list-branches-for-head-commit","parents":[{"sha":"a50ae51b2c351b889055568bcaa9ab6000f1677f","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/a50ae51b2c351b889055568bcaa9ab6000f1677f","html_url":"https://github.com/PyGithub/PyGithub/commit/a50ae51b2c351b889055568bcaa9ab6000f1677f"}],"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJnYqaTCRC1aQ7uu5UhlAAAp3wQAGPaBPEC4WlL9rvDA6G+kaRZ\n+296Qb/jRjZX6joS//aQq5rjHKn//qTv13lTBQnM1a7gFfvA7TSoxNsoqzkk6DAe\nME7qoSMYWl+GdvXsySo4ksGbFN0LL77CSmJyFXRXB5TIjUJT7dbjTkjE9/4zcfq4\nmR8D57GowX7YgqUeRzf8+5zz7ySJ9hAMcF/n+OJjLiew0RFp3hQBSFOr/1B4YJbL\n0Ln9i/DH9KBhwIUnc68k04GxVtAMaS7X0SOVbezylaBlQyF2JV3bDbb38h77KPJ1\nln0qPi+hamZu43pbKGNuj1BjiLsavKHx5v4EYQ5gUzBDLlUMvUUmFNb4lrbulmSw\ng2Fr13dbjRmgHa5Lj7VAay3xXFwdTGNH3o04uefpvZ/6sRB1e9fP4VR5UVECZLe0\nD5Au4VSA7usgOLdDjxoG6mBOzEY7vWkbCmbFxB1Q1tWY53ecw9NJ15p8NAtH2dR1\n+xUeNzDeQMHS4FIZ/Z6c6RuUyusK7fRAxddhUoXu4KVEwbdEV9qsEKDqtW4eUMXX\nQQBtkxzZkL1lMz4UTXnHwG5jSbHVz3tSyYYpQYZPO2zE/TOrfuZzYGOZ2g9vreNt\nTa8u/MMtvhguLV1qCEqAgzDQo0Kx+dc+ueNt/ruCuhWxn0jl0LMX4qvmZX1d2X58\nJ9ub7sFcpLb1gsueYKQ6\n=RKbN\n-----END PGP SIGNATURE-----\n","payload":"tree d9e2468f2db35e158eb65e91b249dde20ca88c86\nparent a50ae51b2c351b889055568bcaa9ab6000f1677f\nauthor Enrico Minack 1734518419 +0100\ncommitter GitHub 1734518419 +0100\n\nGet branches where commit is head (#3083)\n\nImplements `GET\r\n/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head`\r\n\r\nhttps://docs.github.com/rest/commits/commits#list-branches-for-head-commit","verified_at":"2024-12-18T10:45:21Z"}} diff --git a/tests/ReplayData/GitCommitVerification.setUp.txt b/tests/ReplayData/GitCommitVerification.setUp.txt new file mode 100644 index 0000000000..034041340a --- /dev/null +++ b/tests/ReplayData/GitCommitVerification.setUp.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/commits/801d64a4c5c0fcb63f695e0f6799117e76e5fe67 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Wed, 30 Oct 2024 23:23:15 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"1d5d107249e739729756aee3c59c72fdad7ced99a3c2a080ba8abca01d102f4f"'), ('Last-Modified', 'Wed, 28 Aug 2024 07:41:55 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '44'), ('X-RateLimit-Reset', '1730333577'), ('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'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '8B5A:2437C0:339FEF4:3660262:6722BFE3'), ('Content-Length', '2818')] +{"sha":"801d64a4c5c0fcb63f695e0f6799117e76e5fe67","node_id":"C_kwDOADYVqtoAKDgwMWQ2NGE0YzVjMGZjYjYzZjY5NWUwZjY3OTkxMTdlNzZlNWZlNjc","commit":{"author":{"name":"Tim Gates","email":"tim.gates@iress.com","date":"2024-08-28T07:41:47Z"},"committer":{"name":"Tim Gates","email":"tim.gates@iress.com","date":"2024-08-28T07:41:55Z"},"message":"Commit verification support\n\nAdd support for verification component of Commit API response to see if\ncommit has been signed and the signature has been checked by Github","tree":{"sha":"4f502b4c4e5f0bdc7ee611f914bbdef51aef5efa","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/4f502b4c4e5f0bdc7ee611f914bbdef51aef5efa"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/801d64a4c5c0fcb63f695e0f6799117e76e5fe67","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\niMgEAAEKADIWIQRbWfY9TlELdM/5UaauO+DVOCPPBQUCZs7U0RQcdGltLmdhdGVz\nQGlyZXNzLmNvbQAKCRCuO+DVOCPPBQ2tBACAaRNONEWlDDNyYkAnIv8bZ55BuIuy\nTvbxVPjI8KLDqKLzgHO60HhQ3h/hCiug6g5fvVzyIrmayj3eEzaWAfa3+f37f3xK\nflZRMtNFUBYQoLTuyTkKvW85UA2AkUvKp3bHT5W6ZoCKqR5xw6pwKxuYQi7eJG9h\nNPrZTezkL6EDng==\n=Ng9G\n-----END PGP SIGNATURE-----","payload":"tree 4f502b4c4e5f0bdc7ee611f914bbdef51aef5efa\nparent 85087354078e426125dbbf88041bbaa6f35d8199\nauthor Tim Gates 1724830907 +1000\ncommitter Tim Gates 1724830915 +1000\n\nCommit verification support\n\nAdd support for verification component of Commit API response to see if\ncommit has been signed and the signature has been checked by Github\n"}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/801d64a4c5c0fcb63f695e0f6799117e76e5fe67","html_url":"https://github.com/PyGithub/PyGithub/commit/801d64a4c5c0fcb63f695e0f6799117e76e5fe67","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/801d64a4c5c0fcb63f695e0f6799117e76e5fe67/comments","author":{"login":"timgates42","id":47873678,"node_id":"MDQ6VXNlcjQ3ODczNjc4","avatar_url":"https://avatars.githubusercontent.com/u/47873678?v=4","gravatar_id":"","url":"https://api.github.com/users/timgates42","html_url":"https://github.com/timgates42","followers_url":"https://api.github.com/users/timgates42/followers","following_url":"https://api.github.com/users/timgates42/following{/other_user}","gists_url":"https://api.github.com/users/timgates42/gists{/gist_id}","starred_url":"https://api.github.com/users/timgates42/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timgates42/subscriptions","organizations_url":"https://api.github.com/users/timgates42/orgs","repos_url":"https://api.github.com/users/timgates42/repos","events_url":"https://api.github.com/users/timgates42/events{/privacy}","received_events_url":"https://api.github.com/users/timgates42/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"timgates42","id":47873678,"node_id":"MDQ6VXNlcjQ3ODczNjc4","avatar_url":"https://avatars.githubusercontent.com/u/47873678?v=4","gravatar_id":"","url":"https://api.github.com/users/timgates42","html_url":"https://github.com/timgates42","followers_url":"https://api.github.com/users/timgates42/followers","following_url":"https://api.github.com/users/timgates42/following{/other_user}","gists_url":"https://api.github.com/users/timgates42/gists{/gist_id}","starred_url":"https://api.github.com/users/timgates42/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timgates42/subscriptions","organizations_url":"https://api.github.com/users/timgates42/orgs","repos_url":"https://api.github.com/users/timgates42/repos","events_url":"https://api.github.com/users/timgates42/events{/privacy}","received_events_url":"https://api.github.com/users/timgates42/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"85087354078e426125dbbf88041bbaa6f35d8199","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/85087354078e426125dbbf88041bbaa6f35d8199","html_url":"https://github.com/PyGithub/PyGithub/commit/85087354078e426125dbbf88041bbaa6f35d8199"}],"stats":{"total":84,"additions":84,"deletions":0},"files":[{"sha":"8ac09116ff74fa5bdb9e06283214486ba4f378d3","filename":"github/Commit.py","status":"modified","additions":11,"deletions":0,"changes":11,"blob_url":"https://github.com/PyGithub/PyGithub/blob/801d64a4c5c0fcb63f695e0f6799117e76e5fe67/github%2FCommit.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/801d64a4c5c0fcb63f695e0f6799117e76e5fe67/github%2FCommit.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCommit.py?ref=801d64a4c5c0fcb63f695e0f6799117e76e5fe67","patch":"@@ -24,6 +24,7 @@\n # Copyright 2024 Enrico Minack #\n # Copyright 2024 Jirka Borovec <6035284+Borda@users.noreply.github.com> #\n # Copyright 2024 iarspider #\n+# Copyright 2024 timgates42 #\n # #\n # This file is part of PyGithub. #\n # http://pygithub.readthedocs.io/ #\n@@ -57,6 +58,7 @@\n import github.GitCommit\n import github.NamedUser\n import github.PaginatedList\n+import github.CommitVerification\n from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt, is_optional\n from github.PaginatedList import PaginatedList\n \n@@ -71,6 +73,7 @@\n from github.GitCommit import GitCommit\n from github.NamedUser import NamedUser\n from github.PullRequest import PullRequest\n+ from github.CommitVerification import CommitVerification\n \n \n class Commit(CompletableGithubObject):\n@@ -92,6 +95,7 @@ def _initAttributes(self) -> None:\n self._sha: Attribute[str] = NotSet\n self._stats: Attribute[CommitStats] = NotSet\n self._url: Attribute[str] = NotSet\n+ self._verification: Attribute[CommitVerification] = NotSet\n \n def __repr__(self) -> str:\n return self.get__repr__({\"sha\": self._sha.value})\n@@ -157,6 +161,11 @@ def url(self) -> str:\n self._completeIfNotSet(self._url)\n return self._url.value\n \n+ @property\n+ def verification(self) -> CommitVerification:\n+ self._completeIfNotSet(self._verification)\n+ return self._verification.value\n+\n def create_comment(\n self,\n body: str,\n@@ -311,3 +320,5 @@ def _useAttributes(self, attributes: dict[str, Any]) -> None:\n self._stats = self._makeClassAttribute(github.CommitStats.CommitStats, attributes[\"stats\"])\n if \"url\" in attributes: # pragma no branch\n self._url = self._makeStringAttribute(attributes[\"url\"])\n+ if \"verification\" in attributes: # pragma no branch\n+ self._verification = self._makeClassAttribute(github.CommitVerification.CommitVerification, attributes[\"verification\"])"},{"sha":"7a5a6ae633da4f3f6649fdf9859e2d7fcef14866","filename":"github/CommitVerification.py","status":"added","additions":73,"deletions":0,"changes":73,"blob_url":"https://github.com/PyGithub/PyGithub/blob/801d64a4c5c0fcb63f695e0f6799117e76e5fe67/github%2FCommitVerification.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/801d64a4c5c0fcb63f695e0f6799117e76e5fe67/github%2FCommitVerification.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCommitVerification.py?ref=801d64a4c5c0fcb63f695e0f6799117e76e5fe67","patch":"@@ -0,0 +1,73 @@\n+############################ Copyrights and license ############################\n+# #\n+# Copyright 2024 timgates42 #\n+# #\n+# This file is part of PyGithub. #\n+# http://pygithub.readthedocs.io/ #\n+# #\n+# PyGithub is free software: you can redistribute it and/or modify it under #\n+# the terms of the GNU Lesser General Public License as published by the Free #\n+# Software Foundation, either version 3 of the License, or (at your option) #\n+# any later version. #\n+# #\n+# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY #\n+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS #\n+# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #\n+# details. #\n+# #\n+# You should have received a copy of the GNU Lesser General Public License #\n+# along with PyGithub. If not, see . #\n+# #\n+################################################################################\n+\n+from __future__ import annotations\n+\n+from typing import Any\n+\n+from github.GithubObject import (Attribute, CompletableGithubObject, NotSet)\n+\n+\n+class CommitVerification(CompletableGithubObject):\n+ \"\"\"\n+ This class represents CommitVerifications.\n+\n+ The reference can be found here\n+ https://docs.github.com/en/rest/commits/commits\n+\n+ \"\"\"\n+\n+ def _initAttributes(self) -> None:\n+ self._verified: Attribute[bool] = NotSet\n+ self._reason: Attribute[str] = NotSet\n+ self._signature: Attribute[str] = NotSet\n+ self._payload: Attribute[str] = NotSet\n+\n+ @property\n+ def verified(self) -> str:\n+ self._completeIfNotSet(self.verified)\n+ return self._verified.value\n+\n+ @property\n+ def reason(self) -> str:\n+ self._completeIfNotSet(self._reason)\n+ return self._reason.value\n+\n+ @property\n+ def signature(self) -> str:\n+ self._completeIfNotSet(self._signature)\n+ return self._signature.value\n+\n+ @property\n+ def payload(self) -> str:\n+ self._completeIfNotSet(self._payload)\n+ return self._payload.value\n+\n+ def _useAttributes(self, attributes: dict[str, Any]) -> None:\n+ if \"verified\" in attributes: # pragma no branch\n+ self._verified = self._makeBoolAttribute(attributes[\"verified\"])\n+ if \"reason\" in attributes: # pragma no branch\n+ self._reason = self._makeStringAttribute(attributes[\"reason\"])\n+ if \"signature\" in attributes: # pragma no branch\n+ self._signature = self._makeStringAttribute(attributes[\"signature\"])\n+ if \"payload\" in attributes: # pragma no branch\n+ self._payload = self._makeStringAttribute(attributes[\"payload\"])"}]} diff --git a/tests/ReplayData/GitRelease.testCreateGitTagAndRelease.txt b/tests/ReplayData/GitRelease.testCreateGitTagAndRelease.txt index 105911c4c6..04877d7f6a 100644 --- a/tests/ReplayData/GitRelease.testCreateGitTagAndRelease.txt +++ b/tests/ReplayData/GitRelease.testCreateGitTagAndRelease.txt @@ -26,7 +26,7 @@ api.github.com None /repos/rickrickston123/RepoTest/releases {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"tag_name": "v1.25.2", "name": "release title", "body": "release message", "draft": false, "prerelease": false, "generate_release_notes": false, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} +{"tag_name": "v1.25.2", "draft": false, "prerelease": false, "generate_release_notes": false, "name": "release title", "body": "release message", "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f", "make_latest": "true"} 201 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:14:40 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1839'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4802'), ('X-RateLimit-Reset', '1594749126'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"cbef1009bba70497b94cd661a0e8f188"'), ('Location', 'https://api.github.com/repos/rickrickston123/RepoTest/releases/28553914'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', '877E:0D15:11BAC33:1E1C79C:5F0DE7FF')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28553914","assets_url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28553914/assets","upload_url":"https://uploads.github.com/repos/rickrickston123/RepoTest/releases/28553914/assets{?name,label}","html_url":"https://github.com/rickrickston123/RepoTest/releases/tag/v1.25.2","id":28553914,"node_id":"MDc6UmVsZWFzZTI4NTUzOTE0","tag_name":"v1.25.2","target_commitish":"813da528da46ef4cbb28d2018eaa6d4b3d56f40f","name":"release title","draft":false,"author":{"login":"rickrickston123","id":64711998,"node_id":"MDQ6VXNlcjY0NzExOTk4","avatar_url":"https://avatars0.githubusercontent.com/u/64711998?v=4","gravatar_id":"","url":"https://api.github.com/users/rickrickston123","html_url":"https://github.com/rickrickston123","followers_url":"https://api.github.com/users/rickrickston123/followers","following_url":"https://api.github.com/users/rickrickston123/following{/other_user}","gists_url":"https://api.github.com/users/rickrickston123/gists{/gist_id}","starred_url":"https://api.github.com/users/rickrickston123/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rickrickston123/subscriptions","organizations_url":"https://api.github.com/users/rickrickston123/orgs","repos_url":"https://api.github.com/users/rickrickston123/repos","events_url":"https://api.github.com/users/rickrickston123/events{/privacy}","received_events_url":"https://api.github.com/users/rickrickston123/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2020-07-12T07:34:42Z","published_at":"2020-07-14T17:14:40Z","assets":[],"tarball_url":"https://api.github.com/repos/rickrickston123/RepoTest/tarball/v1.25.2","zipball_url":"https://api.github.com/repos/rickrickston123/RepoTest/zipball/v1.25.2","body":"release message"} diff --git a/tests/ReplayData/GitRelease.testDelete.txt b/tests/ReplayData/GitRelease.testDelete.txt index fb61c2de4f..296f7dda88 100644 --- a/tests/ReplayData/GitRelease.testDelete.txt +++ b/tests/ReplayData/GitRelease.testDelete.txt @@ -26,7 +26,7 @@ api.github.com None /repos/rickrickston123/RepoTest/releases {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"tag_name": "v1.25.2", "name": "release title", "body": "release message", "draft": false, "prerelease": false, "generate_release_notes": false, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} +{"tag_name": "v1.25.2", "draft": false, "prerelease": false, "generate_release_notes": false, "name": "release title", "body": "release message", "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f", "make_latest": "true"} 201 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:14:43 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1839'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4794'), ('X-RateLimit-Reset', '1594749125'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"6cc770f263309efd304dad200a5987f2"'), ('Location', 'https://api.github.com/repos/rickrickston123/RepoTest/releases/28553917'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', '87C6:72C3:9AEB34:1613408:5F0DE803')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28553917","assets_url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28553917/assets","upload_url":"https://uploads.github.com/repos/rickrickston123/RepoTest/releases/28553917/assets{?name,label}","html_url":"https://github.com/rickrickston123/RepoTest/releases/tag/v1.25.2","id":28553917,"node_id":"MDc6UmVsZWFzZTI4NTUzOTE3","tag_name":"v1.25.2","target_commitish":"813da528da46ef4cbb28d2018eaa6d4b3d56f40f","name":"release title","draft":false,"author":{"login":"rickrickston123","id":64711998,"node_id":"MDQ6VXNlcjY0NzExOTk4","avatar_url":"https://avatars0.githubusercontent.com/u/64711998?v=4","gravatar_id":"","url":"https://api.github.com/users/rickrickston123","html_url":"https://github.com/rickrickston123","followers_url":"https://api.github.com/users/rickrickston123/followers","following_url":"https://api.github.com/users/rickrickston123/following{/other_user}","gists_url":"https://api.github.com/users/rickrickston123/gists{/gist_id}","starred_url":"https://api.github.com/users/rickrickston123/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rickrickston123/subscriptions","organizations_url":"https://api.github.com/users/rickrickston123/orgs","repos_url":"https://api.github.com/users/rickrickston123/repos","events_url":"https://api.github.com/users/rickrickston123/events{/privacy}","received_events_url":"https://api.github.com/users/rickrickston123/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2020-07-12T07:34:42Z","published_at":"2020-07-14T17:14:43Z","assets":[],"tarball_url":"https://api.github.com/repos/rickrickston123/RepoTest/tarball/v1.25.2","zipball_url":"https://api.github.com/repos/rickrickston123/RepoTest/zipball/v1.25.2","body":"release message"} diff --git a/tests/ReplayData/GitRelease.testUpdate.txt b/tests/ReplayData/GitRelease.testUpdate.txt index 7979624e32..9fb8188dc5 100644 --- a/tests/ReplayData/GitRelease.testUpdate.txt +++ b/tests/ReplayData/GitRelease.testUpdate.txt @@ -26,7 +26,7 @@ api.github.com None /repos/rickrickston123/RepoTest/releases {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"tag_name": "v1.25.2", "name": "release title", "body": "release message", "draft": false, "prerelease": false, "generate_release_notes": false, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} +{"tag_name": "v1.25.2", "draft": false, "prerelease": false, "generate_release_notes": false, "name": "release title", "body": "release message", "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f", "make_latest": "true"} 201 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:14:53 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1839'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4773'), ('X-RateLimit-Reset', '1594749126'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"db319cddcbeed55996b30064eb2bf456"'), ('Location', 'https://api.github.com/repos/rickrickston123/RepoTest/releases/28553923'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', '8882:6F6D:F27F47:1A3F229:5F0DE80D')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28553923","assets_url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28553923/assets","upload_url":"https://uploads.github.com/repos/rickrickston123/RepoTest/releases/28553923/assets{?name,label}","html_url":"https://github.com/rickrickston123/RepoTest/releases/tag/v1.25.2","id":28553923,"node_id":"MDc6UmVsZWFzZTI4NTUzOTIz","tag_name":"v1.25.2","target_commitish":"813da528da46ef4cbb28d2018eaa6d4b3d56f40f","name":"release title","draft":false,"author":{"login":"rickrickston123","id":64711998,"node_id":"MDQ6VXNlcjY0NzExOTk4","avatar_url":"https://avatars0.githubusercontent.com/u/64711998?v=4","gravatar_id":"","url":"https://api.github.com/users/rickrickston123","html_url":"https://github.com/rickrickston123","followers_url":"https://api.github.com/users/rickrickston123/followers","following_url":"https://api.github.com/users/rickrickston123/following{/other_user}","gists_url":"https://api.github.com/users/rickrickston123/gists{/gist_id}","starred_url":"https://api.github.com/users/rickrickston123/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rickrickston123/subscriptions","organizations_url":"https://api.github.com/users/rickrickston123/orgs","repos_url":"https://api.github.com/users/rickrickston123/repos","events_url":"https://api.github.com/users/rickrickston123/events{/privacy}","received_events_url":"https://api.github.com/users/rickrickston123/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2020-07-12T07:34:42Z","published_at":"2020-07-14T17:14:53Z","assets":[],"tarball_url":"https://api.github.com/repos/rickrickston123/RepoTest/tarball/v1.25.2","zipball_url":"https://api.github.com/repos/rickrickston123/RepoTest/zipball/v1.25.2","body":"release message"} diff --git a/tests/ReplayData/GitRelease.testUploadAsset.txt b/tests/ReplayData/GitRelease.testUploadAsset.txt index b9c62f9229..f16cf85b6e 100644 --- a/tests/ReplayData/GitRelease.testUploadAsset.txt +++ b/tests/ReplayData/GitRelease.testUploadAsset.txt @@ -26,7 +26,7 @@ api.github.com None /repos/rickrickston123/RepoTest/releases {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"tag_name": "v1.25.2", "name": "release title", "body": "release message", "draft": false, "prerelease": false, "generate_release_notes": false, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} +{"tag_name": "v1.25.2", "draft": false, "prerelease": false, "generate_release_notes": false, "name": "release title", "body": "release message", "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f", "make_latest": "true"} 201 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:14:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1839'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4764'), ('X-RateLimit-Reset', '1594749126'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"08734005fd9365fc591d27a27bdf992a"'), ('Location', 'https://api.github.com/repos/rickrickston123/RepoTest/releases/28553925'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', '88D4:6F6D:F280BD:1A3F57A:5F0DE811')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28553925","assets_url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28553925/assets","upload_url":"https://uploads.github.com/repos/rickrickston123/RepoTest/releases/28553925/assets{?name,label}","html_url":"https://github.com/rickrickston123/RepoTest/releases/tag/v1.25.2","id":28553925,"node_id":"MDc6UmVsZWFzZTI4NTUzOTI1","tag_name":"v1.25.2","target_commitish":"813da528da46ef4cbb28d2018eaa6d4b3d56f40f","name":"release title","draft":false,"author":{"login":"rickrickston123","id":64711998,"node_id":"MDQ6VXNlcjY0NzExOTk4","avatar_url":"https://avatars0.githubusercontent.com/u/64711998?v=4","gravatar_id":"","url":"https://api.github.com/users/rickrickston123","html_url":"https://github.com/rickrickston123","followers_url":"https://api.github.com/users/rickrickston123/followers","following_url":"https://api.github.com/users/rickrickston123/following{/other_user}","gists_url":"https://api.github.com/users/rickrickston123/gists{/gist_id}","starred_url":"https://api.github.com/users/rickrickston123/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rickrickston123/subscriptions","organizations_url":"https://api.github.com/users/rickrickston123/orgs","repos_url":"https://api.github.com/users/rickrickston123/repos","events_url":"https://api.github.com/users/rickrickston123/events{/privacy}","received_events_url":"https://api.github.com/users/rickrickston123/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2020-07-12T07:34:42Z","published_at":"2020-07-14T17:14:57Z","assets":[],"tarball_url":"https://api.github.com/repos/rickrickston123/RepoTest/tarball/v1.25.2","zipball_url":"https://api.github.com/repos/rickrickston123/RepoTest/zipball/v1.25.2","body":"release message"} diff --git a/tests/ReplayData/GitRelease.testUploadAssetFileLike.txt b/tests/ReplayData/GitRelease.testUploadAssetFileLike.txt index 95d51ac538..f6d2ab891f 100644 --- a/tests/ReplayData/GitRelease.testUploadAssetFileLike.txt +++ b/tests/ReplayData/GitRelease.testUploadAssetFileLike.txt @@ -26,7 +26,7 @@ api.github.com None /repos/rickrickston123/RepoTest/releases {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"tag_name": "v1.25.2", "name": "release title", "body": "release message", "draft": false, "prerelease": false, "generate_release_notes": false, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} +{"tag_name": "v1.25.2", "draft": false, "prerelease": false, "generate_release_notes": false, "name": "release title", "body": "release message", "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f", "make_latest": "true"} 201 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:15:01 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1839'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4754'), ('X-RateLimit-Reset', '1594749126'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"a8961143f47acb4521819919a4413ffb"'), ('Location', 'https://api.github.com/repos/rickrickston123/RepoTest/releases/28553926'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', '8928:6F6B:5D99BC:D631D5:5F0DE815')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28553926","assets_url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28553926/assets","upload_url":"https://uploads.github.com/repos/rickrickston123/RepoTest/releases/28553926/assets{?name,label}","html_url":"https://github.com/rickrickston123/RepoTest/releases/tag/v1.25.2","id":28553926,"node_id":"MDc6UmVsZWFzZTI4NTUzOTI2","tag_name":"v1.25.2","target_commitish":"813da528da46ef4cbb28d2018eaa6d4b3d56f40f","name":"release title","draft":false,"author":{"login":"rickrickston123","id":64711998,"node_id":"MDQ6VXNlcjY0NzExOTk4","avatar_url":"https://avatars0.githubusercontent.com/u/64711998?v=4","gravatar_id":"","url":"https://api.github.com/users/rickrickston123","html_url":"https://github.com/rickrickston123","followers_url":"https://api.github.com/users/rickrickston123/followers","following_url":"https://api.github.com/users/rickrickston123/following{/other_user}","gists_url":"https://api.github.com/users/rickrickston123/gists{/gist_id}","starred_url":"https://api.github.com/users/rickrickston123/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rickrickston123/subscriptions","organizations_url":"https://api.github.com/users/rickrickston123/orgs","repos_url":"https://api.github.com/users/rickrickston123/repos","events_url":"https://api.github.com/users/rickrickston123/events{/privacy}","received_events_url":"https://api.github.com/users/rickrickston123/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2020-07-12T07:34:42Z","published_at":"2020-07-14T17:15:01Z","assets":[],"tarball_url":"https://api.github.com/repos/rickrickston123/RepoTest/tarball/v1.25.2","zipball_url":"https://api.github.com/repos/rickrickston123/RepoTest/zipball/v1.25.2","body":"release message"} diff --git a/tests/ReplayData/GitRelease.testUploadAssetFromMemory.txt b/tests/ReplayData/GitRelease.testUploadAssetFromMemory.txt index 240597b308..0ebc9766ae 100644 --- a/tests/ReplayData/GitRelease.testUploadAssetFromMemory.txt +++ b/tests/ReplayData/GitRelease.testUploadAssetFromMemory.txt @@ -26,7 +26,7 @@ api.github.com None /repos/rickrickston123/RepoTest/releases {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"tag_name": "v1.25.2", "name": "release title", "body": "release message", "draft": false, "prerelease": false, "generate_release_notes": false, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} +{"tag_name": "v1.25.2", "draft": false, "prerelease": false, "generate_release_notes": false, "name": "release title", "body": "release message", "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f", "make_latest": "true"} 201 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:15:06 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1839'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4743'), ('X-RateLimit-Reset', '1594749126'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"89d1865c6ce3065f5d8de11015fa1e64"'), ('Location', 'https://api.github.com/repos/rickrickston123/RepoTest/releases/28553932'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', '8990:3C00:9EDCAC:1796F44:5F0DE81A')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28553932","assets_url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28553932/assets","upload_url":"https://uploads.github.com/repos/rickrickston123/RepoTest/releases/28553932/assets{?name,label}","html_url":"https://github.com/rickrickston123/RepoTest/releases/tag/v1.25.2","id":28553932,"node_id":"MDc6UmVsZWFzZTI4NTUzOTMy","tag_name":"v1.25.2","target_commitish":"813da528da46ef4cbb28d2018eaa6d4b3d56f40f","name":"release title","draft":false,"author":{"login":"rickrickston123","id":64711998,"node_id":"MDQ6VXNlcjY0NzExOTk4","avatar_url":"https://avatars0.githubusercontent.com/u/64711998?v=4","gravatar_id":"","url":"https://api.github.com/users/rickrickston123","html_url":"https://github.com/rickrickston123","followers_url":"https://api.github.com/users/rickrickston123/followers","following_url":"https://api.github.com/users/rickrickston123/following{/other_user}","gists_url":"https://api.github.com/users/rickrickston123/gists{/gist_id}","starred_url":"https://api.github.com/users/rickrickston123/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rickrickston123/subscriptions","organizations_url":"https://api.github.com/users/rickrickston123/orgs","repos_url":"https://api.github.com/users/rickrickston123/repos","events_url":"https://api.github.com/users/rickrickston123/events{/privacy}","received_events_url":"https://api.github.com/users/rickrickston123/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2020-07-12T07:34:42Z","published_at":"2020-07-14T17:15:06Z","assets":[],"tarball_url":"https://api.github.com/repos/rickrickston123/RepoTest/tarball/v1.25.2","zipball_url":"https://api.github.com/repos/rickrickston123/RepoTest/zipball/v1.25.2","body":"release message"} diff --git a/tests/ReplayData/GitRelease.testUploadAssetWithName.txt b/tests/ReplayData/GitRelease.testUploadAssetWithName.txt index 45f0612c63..f44e5f43f9 100644 --- a/tests/ReplayData/GitRelease.testUploadAssetWithName.txt +++ b/tests/ReplayData/GitRelease.testUploadAssetWithName.txt @@ -26,7 +26,7 @@ api.github.com None /repos/rickrickston123/RepoTest/releases {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"tag_name": "v1.25.2", "name": "release title", "body": "release message", "draft": false, "prerelease": false, "generate_release_notes": false, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} +{"tag_name": "v1.25.2", "draft": false, "prerelease": false, "generate_release_notes": false, "name": "release title", "body": "release message", "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f", "make_latest": "true"} 201 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:15:11 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1839'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4732'), ('X-RateLimit-Reset', '1594749126'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"6f2d83bf7aa6f6914ff9fdf24acb3aeb"'), ('Location', 'https://api.github.com/repos/rickrickston123/RepoTest/releases/28553933'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', '89EC:72AE:503A41:C99274:5F0DE81F')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28553933","assets_url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28553933/assets","upload_url":"https://uploads.github.com/repos/rickrickston123/RepoTest/releases/28553933/assets{?name,label}","html_url":"https://github.com/rickrickston123/RepoTest/releases/tag/v1.25.2","id":28553933,"node_id":"MDc6UmVsZWFzZTI4NTUzOTMz","tag_name":"v1.25.2","target_commitish":"813da528da46ef4cbb28d2018eaa6d4b3d56f40f","name":"release title","draft":false,"author":{"login":"rickrickston123","id":64711998,"node_id":"MDQ6VXNlcjY0NzExOTk4","avatar_url":"https://avatars0.githubusercontent.com/u/64711998?v=4","gravatar_id":"","url":"https://api.github.com/users/rickrickston123","html_url":"https://github.com/rickrickston123","followers_url":"https://api.github.com/users/rickrickston123/followers","following_url":"https://api.github.com/users/rickrickston123/following{/other_user}","gists_url":"https://api.github.com/users/rickrickston123/gists{/gist_id}","starred_url":"https://api.github.com/users/rickrickston123/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rickrickston123/subscriptions","organizations_url":"https://api.github.com/users/rickrickston123/orgs","repos_url":"https://api.github.com/users/rickrickston123/repos","events_url":"https://api.github.com/users/rickrickston123/events{/privacy}","received_events_url":"https://api.github.com/users/rickrickston123/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2020-07-12T07:34:42Z","published_at":"2020-07-14T17:15:11Z","assets":[],"tarball_url":"https://api.github.com/repos/rickrickston123/RepoTest/tarball/v1.25.2","zipball_url":"https://api.github.com/repos/rickrickston123/RepoTest/zipball/v1.25.2","body":"release message"} diff --git a/tests/ReplayData/GitReleaseAsset.setUp.txt b/tests/ReplayData/GitReleaseAsset.setUp.txt new file mode 100644 index 0000000000..2b388be7fa --- /dev/null +++ b/tests/ReplayData/GitReleaseAsset.setUp.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/repos/EnricoMi/PyGithub/releases/197548596 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Thu, 30 Jan 2025 11:23:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"5e07469159b3d5b40d60dfc7afbbc6f30d335742391f72bfb00043f5592ef06f"'), ('Last-Modified', 'Thu, 30 Jan 2025 11:12:00 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4986'), ('X-RateLimit-Reset', '1738238051'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '8038:1BC725:153E414:15DD493:679B6135')] +{"url":"https://api.github.com/repos/EnricoMi/PyGithub/releases/197548596","assets_url":"https://api.github.com/repos/EnricoMi/PyGithub/releases/197548596/assets","upload_url":"https://uploads.github.com/repos/EnricoMi/PyGithub/releases/197548596/assets{?name,label}","html_url":"https://github.com/EnricoMi/PyGithub/releases/tag/v1.55","id":197548596,"author":{"login":"EnricoMi","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?v=4","gravatar_id":"","url":"https://api.github.com/users/EnricoMi","html_url":"https://github.com/EnricoMi","followers_url":"https://api.github.com/users/EnricoMi/followers","following_url":"https://api.github.com/users/EnricoMi/following{/other_user}","gists_url":"https://api.github.com/users/EnricoMi/gists{/gist_id}","starred_url":"https://api.github.com/users/EnricoMi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EnricoMi/subscriptions","organizations_url":"https://api.github.com/users/EnricoMi/orgs","repos_url":"https://api.github.com/users/EnricoMi/repos","events_url":"https://api.github.com/users/EnricoMi/events{/privacy}","received_events_url":"https://api.github.com/users/EnricoMi/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"MDc6UmVsZWFzZTE5NzU0ODU5Ng==","tag_name":"v1.55","target_commitish":"main","name":"Test Release","draft":false,"prerelease":true,"created_at":"2021-04-26T04:43:40Z","published_at":"2025-01-30T11:12:00Z","assets":[{"url":"https://api.github.com/repos/EnricoMi/PyGithub/releases/assets/224868540","id":224868540,"node_id":"RA_kwDOGpsAJ84NZzi8","name":"asset1.md","label":null,"uploader":{"login":"EnricoMi","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?v=4","gravatar_id":"","url":"https://api.github.com/users/EnricoMi","html_url":"https://github.com/EnricoMi","followers_url":"https://api.github.com/users/EnricoMi/followers","following_url":"https://api.github.com/users/EnricoMi/following{/other_user}","gists_url":"https://api.github.com/users/EnricoMi/gists{/gist_id}","starred_url":"https://api.github.com/users/EnricoMi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EnricoMi/subscriptions","organizations_url":"https://api.github.com/users/EnricoMi/orgs","repos_url":"https://api.github.com/users/EnricoMi/repos","events_url":"https://api.github.com/users/EnricoMi/events{/privacy}","received_events_url":"https://api.github.com/users/EnricoMi/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"text/markdown","state":"uploaded","size":2524,"download_count":0,"created_at":"2025-01-30T11:11:32Z","updated_at":"2025-01-30T11:12:00Z","browser_download_url":"https://github.com/EnricoMi/PyGithub/releases/download/v1.55/asset1.md"},{"url":"https://api.github.com/repos/EnricoMi/PyGithub/releases/assets/224868556","id":224868556,"node_id":"RA_kwDOGpsAJ84NZzjM","name":"asset2.gz","label":null,"uploader":{"login":"EnricoMi","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?v=4","gravatar_id":"","url":"https://api.github.com/users/EnricoMi","html_url":"https://github.com/EnricoMi","followers_url":"https://api.github.com/users/EnricoMi/followers","following_url":"https://api.github.com/users/EnricoMi/following{/other_user}","gists_url":"https://api.github.com/users/EnricoMi/gists{/gist_id}","starred_url":"https://api.github.com/users/EnricoMi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EnricoMi/subscriptions","organizations_url":"https://api.github.com/users/EnricoMi/orgs","repos_url":"https://api.github.com/users/EnricoMi/repos","events_url":"https://api.github.com/users/EnricoMi/events{/privacy}","received_events_url":"https://api.github.com/users/EnricoMi/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/gzip","state":"uploaded","size":1199,"download_count":0,"created_at":"2025-01-30T11:11:37Z","updated_at":"2025-01-30T11:12:00Z","browser_download_url":"https://github.com/EnricoMi/PyGithub/releases/download/v1.55/asset2.gz"}],"tarball_url":"https://api.github.com/repos/EnricoMi/PyGithub/tarball/v1.55","zipball_url":"https://api.github.com/repos/EnricoMi/PyGithub/zipball/v1.55","body":"This is a test released used by PyGithub tests."} diff --git a/tests/ReplayData/GitReleaseAsset.testDownloadAssetFile.txt b/tests/ReplayData/GitReleaseAsset.testDownloadAssetFile.txt new file mode 100644 index 0000000000..48971696aa --- /dev/null +++ b/tests/ReplayData/GitReleaseAsset.testDownloadAssetFile.txt @@ -0,0 +1,101 @@ +https +GET +api.github.com +None +/repos/EnricoMi/PyGithub/releases/assets/224868540 +{'Accept': 'application/octet-stream', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +302 +[('Date', 'Thu, 30 Jan 2025 11:23:34 GMT'), ('Content-Type', 'text/html;charset=utf-8'), ('Content-Length', '0'), ('Location', 'https://objects.githubusercontent.com/github-production-release-asset-2e65be/446365735/eae43c8b-293d-4fb1-b84c-734756819b27?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250130%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250130T112334Z&X-Amz-Expires=300&X-Amz-Signature=78c0e68e3309763fc6177b92cdc5cdec72567faab31a964fee5a3ed26b479fde&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dasset1.md&response-content-type=application%2Foctet-stream'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4985'), ('X-RateLimit-Reset', '1738238051'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '8044:37FAB:14ABC13:154B137:679B6136')] + + +https +GET +objects.githubusercontent.com +None +/github-production-release-asset-2e65be/446365735/eae43c8b-293d-4fb1-b84c-734756819b27?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250130%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250130T112334Z&X-Amz-Expires=300&X-Amz-Signature=78c0e68e3309763fc6177b92cdc5cdec72567faab31a964fee5a3ed26b479fde&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dasset1.md&response-content-type=application%2Foctet-stream +{'Accept': 'application/octet-stream', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Connection', 'keep-alive'), ('Content-Length', '2524'), ('Content-Type', 'application/octet-stream'), ('Last-Modified', 'Thu, 30 Jan 2025 11:11:33 GMT'), ('ETag', '"0x8DD411EDB0E39C3"'), ('Server', 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0'), ('x-ms-request-id', '64fa4512-201e-0070-1b08-7358a2000000'), ('x-ms-version', '2025-01-05'), ('x-ms-creation-time', 'Thu, 30 Jan 2025 11:11:33 GMT'), ('x-ms-blob-content-md5', '0CEYVYQcHfnGxCWG82h1Yw=='), ('x-ms-lease-status', 'unlocked'), ('x-ms-lease-state', 'available'), ('x-ms-blob-type', 'BlockBlob'), ('Content-Disposition', 'attachment; filename=asset1.md'), ('x-ms-server-encrypted', 'true'), ('Via', '1.1 varnish, 1.1 varnish'), ('Fastly-Restarts', '1'), ('Accept-Ranges', 'bytes'), ('Age', '442'), ('Date', 'Thu, 30 Jan 2025 11:23:34 GMT'), ('X-Served-By', 'cache-iad-kcgs7200088-IAD, cache-ams2100109-AMS'), ('X-Cache', 'MISS, HIT'), ('X-Cache-Hits', '0, 0'), ('X-Timer', 'S1738236214.434808,VS0,VE1')] +IyBQeUdpdEh1YgoKWyFbUHlQSV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvUHlHaXRodWIuc3ZnKQ== +XShodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL1B5R2l0aHViKQohW0NJXShodHRwczovL2dpdGh1Yi5jbw== +bS9QeUdpdGh1Yi9QeUdpdGh1Yi93b3JrZmxvd3MvQ0kvYmFkZ2Uuc3ZnKQpbIVtyZWFkdGhlZG9jc10oaHR0cA== +czovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2RvY3Mtc3RhYmxlLWJyaWdodGdyZWVuLnN2Zz9zdHlsZT1mbGF0KQ== +XShodHRwczovL3B5Z2l0aHViLnJlYWR0aGVkb2NzLmlvL2VuL3N0YWJsZS8/YmFkZ2U9c3RhYmxlKQpbIVtMaQ== +Y2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1MR1BMLWJsdWUuc3ZnKV0oaHR0cA== +czovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9HTlVfTGVzc2VyX0dlbmVyYWxfUHVibGljX0xpY2Vuc2UpClshWw== +U2xhY2tdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU2xhY2slMjBjaGFubmVsLSUyMCUyMC1ibHVlLg== +c3ZnKV0oaHR0cHM6Ly9qb2luLnNsYWNrLmNvbS90L3B5Z2l0aHViLXByb2plY3Qvc2hhcmVkX2ludml0ZS96dA== +LWR1ajg5eHR4LXVLRlp0Z0FnMjA5bzZWd2VxbTh4ZVEpClshW09wZW4gU291cmNlIEhlbHBlcnNdKGh0dHBzOg== +Ly93d3cuY29kZXRyaWFnZS5jb20vcHlnaXRodWIvcHlnaXRodWIvYmFkZ2VzL3VzZXJzLnN2ZyldKGh0dHBzOg== +Ly93d3cuY29kZXRyaWFnZS5jb20vcHlnaXRodWIvcHlnaXRodWIpClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZQ== +Y292LmlvL2doL1B5R2l0aHViL1B5R2l0aHViL2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cA== +czovL2NvZGVjb3YuaW8vZ2gvUHlHaXRodWIvUHlHaXRodWIpClshW0NvZGUgc3R5bGU6IGJsYWNrXShodHRwcw== +Oi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLWJsYWNrLTAwMDAwMC5zdmcpXShodHRwczovLw== +Z2l0aHViLmNvbS9wc2YvYmxhY2spCgpQeUdpdEh1YiBpcyBhIFB5dGhvbiBsaWJyYXJ5IHRvIGFjY2VzcyB0aA== +ZSBbR2l0SHViIFJFU1QgQVBJXS4KVGhpcyBsaWJyYXJ5IGVuYWJsZXMgeW91IHRvIG1hbmFnZSBbR2l0SHViXQ== +IHJlc291cmNlcyBzdWNoIGFzIHJlcG9zaXRvcmllcywgdXNlciBwcm9maWxlcywgYW5kIG9yZ2FuaXphdGlvbg== +cyBpbiB5b3VyIFB5dGhvbiBhcHBsaWNhdGlvbnMuCgpbR2l0SHViIFJFU1QgQVBJXTogaHR0cHM6Ly9kb2NzLg== +Z2l0aHViLmNvbS9lbi9yZXN0CltHaXRIdWJdOiBodHRwczovL2dpdGh1Yi5jb20KCiMjIEluc3RhbGwKCmBgYA== +YmFzaApwaXAgaW5zdGFsbCBQeUdpdGh1YgpgYGAKCiMjIFNpbXBsZSBEZW1vCgpgYGBweXRob24KZnJvbSBnaQ== +dGh1YiBpbXBvcnQgR2l0aHViCgojIEF1dGhlbnRpY2F0aW9uIGlzIGRlZmluZWQgdmlhIGdpdGh1Yi5BdXRoCg== +ZnJvbSBnaXRodWIgaW1wb3J0IEF1dGgKCiMgdXNpbmcgYW4gYWNjZXNzIHRva2VuCmF1dGggPSBBdXRoLlRvaw== +ZW4oImFjY2Vzc190b2tlbiIpCgojIEZpcnN0IGNyZWF0ZSBhIEdpdGh1YiBpbnN0YW5jZToKCiMgUHVibGljIA== +V2ViIEdpdGh1YgpnID0gR2l0aHViKGF1dGg9YXV0aCkKCiMgR2l0aHViIEVudGVycHJpc2Ugd2l0aCBjdXN0bw== +bSBob3N0bmFtZQpnID0gR2l0aHViKGJhc2VfdXJsPSJodHRwczovL3tob3N0bmFtZX0vYXBpL3YzIiwgYXV0aA== +PWF1dGgpCgojIFRoZW4gcGxheSB3aXRoIHlvdXIgR2l0aHViIG9iamVjdHM6CmZvciByZXBvIGluIGcuZ2V0Xw== +dXNlcigpLmdldF9yZXBvcygpOgogICAgcHJpbnQocmVwby5uYW1lKQoKIyBUbyBjbG9zZSBjb25uZWN0aW9ucw== +IGFmdGVyIHVzZQpnLmNsb3NlKCkKYGBgCgojIyBEb2N1bWVudGF0aW9uCgpNb3JlIGluZm9ybWF0aW9uIGNhbg== +IGJlIGZvdW5kIG9uIHRoZSBbUHlHaXRIdWIgZG9jdW1lbnRhdGlvbiBzaXRlLl0oaHR0cHM6Ly9weWdpdGh1Yg== +LnJlYWR0aGVkb2NzLmlvL2VuL3N0YWJsZS9pbnRyb2R1Y3Rpb24uaHRtbCkKCiMjIERldmVsb3BtZW50CgojIw== +IyBDb250cmlidXRpbmcKCkxvbmctdGVybSBkaXNjdXNzaW9uIGFuZCBidWcgcmVwb3J0cyBhcmUgbWFpbnRhaQ== +bmVkIHZpYSBHaXRIdWIgSXNzdWVzLgpDb2RlIHJldmlldyBpcyBkb25lIHZpYSBHaXRIdWIgUHVsbCBSZXF1ZQ== +c3RzLgoKRm9yIG1vcmUgaW5mb3JtYXRpb24gcmVhZCBbQ09OVFJJQlVUSU5HLm1kXS4KCltDT05UUklCVVRJTg== +Ry5tZF06IGh0dHBzOi8vZ2l0aHViLmNvbS9QeUdpdGh1Yi9QeUdpdGh1Yi9ibG9iL21haW4vQ09OVFJJQlVUSQ== +TkcubWQKCiMjIyBNYWludGFpbmVyc2hpcAoKV2UncmUgYWN0aXZlbHkgc2Vla2luZyBtYWludGFpbmVycyB0aA== +YXQgd2lsbCB0cmlhZ2UgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIGFuZCBjdXQgcmVsZWFzZXMuCklmIHlvdQ== +IHdvcmsgb24gYSBwcm9qZWN0IHRoYXQgbGV2ZXJhZ2VzIFB5R2l0SHViIGFuZCBoYXZlIGEgdmVzdGVkIGludA== +ZXJlc3QgaW4ga2VlcGluZyB0aGUgY29kZSBhbGl2ZSBhbmQgd2VsbCwgc2VuZCBhbiBlbWFpbCB0byBzb21lbw== +bmUgaW4gdGhlIE1BSU5UQUlORVJTIGZpbGUuCg== + + +https +GET +api.github.com +None +/repos/EnricoMi/PyGithub/releases/assets/224868556 +{'Accept': 'application/octet-stream', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +302 +[('Date', 'Thu, 30 Jan 2025 11:23:35 GMT'), ('Content-Type', 'text/html;charset=utf-8'), ('Content-Length', '0'), ('Location', 'https://objects.githubusercontent.com/github-production-release-asset-2e65be/446365735/fe97f261-2422-4ee7-b080-b41991c18d74?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250130%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250130T112335Z&X-Amz-Expires=300&X-Amz-Signature=f407b9076decc56b2e1fa8266292e12ec37d0ff75b2f9fa2c88f06467f5c4aa5&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dasset2.gz&response-content-type=application%2Foctet-stream'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4984'), ('X-RateLimit-Reset', '1738238051'), ('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'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'DE9C:1AB48B:157A946:1619B4C:679B6136')] + + +https +GET +objects.githubusercontent.com +None +/github-production-release-asset-2e65be/446365735/fe97f261-2422-4ee7-b080-b41991c18d74?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250130%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250130T112335Z&X-Amz-Expires=300&X-Amz-Signature=f407b9076decc56b2e1fa8266292e12ec37d0ff75b2f9fa2c88f06467f5c4aa5&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dasset2.gz&response-content-type=application%2Foctet-stream +{'Accept': 'application/octet-stream', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Connection', 'keep-alive'), ('Content-Length', '1199'), ('Content-Type', 'application/octet-stream'), ('Last-Modified', 'Thu, 30 Jan 2025 11:11:37 GMT'), ('ETag', '"0x8DD411EDD6F45C4"'), ('Server', 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0'), ('x-ms-request-id', '3d1464c0-a01e-0023-7a09-737b96000000'), ('x-ms-version', '2025-01-05'), ('x-ms-creation-time', 'Thu, 30 Jan 2025 11:11:37 GMT'), ('x-ms-blob-content-md5', 'RttfZbsGgE9+IX1ifB7xdQ=='), ('x-ms-lease-status', 'unlocked'), ('x-ms-lease-state', 'available'), ('x-ms-blob-type', 'BlockBlob'), ('Content-Disposition', 'attachment; filename=asset2.gz'), ('x-ms-server-encrypted', 'true'), ('Via', '1.1 varnish, 1.1 varnish'), ('Fastly-Restarts', '1'), ('Accept-Ranges', 'bytes'), ('Age', '0'), ('Date', 'Thu, 30 Jan 2025 11:23:35 GMT'), ('X-Served-By', 'cache-iad-kcgs7200038-IAD, cache-ams21063-AMS'), ('X-Cache', 'MISS, MISS'), ('X-Cache-Hits', '0, 0'), ('X-Timer', 'S1738236215.195400,VS0,VE92')] +H4sICPWaYWcAA1JFQURNRS5tZACVVmFv2zYQ/c5fwSYYZgO1FHTA0BoIiixNXGNJ6iXuCiwIHEo6S4wpUiUpOw== +7rD/vjtKsl3DQzMjMSjy3d27u3eUj/lkPZL+Y50wdv/qfrKejB96hfeVG8axLPPIFRJU5iJp4mpdyXgZB4OiTg== +IrfM+1swnUbV2hdGR8bmDbrD9tmr+/Mdz3njITXlBrJdrIxdzJVZufh8HCciyyGEIn4WROYLyEzq/pNmsIgJMg== +cF4kCgaJlXnhcwugydN759cKTudK+O/4t6R2YpA70HHjJn4fPJ82T4HOlUxBO/gBFdWgBlejydUgUTXsVQ5ZrQ== +5EJWkEkRSkdP8ejm8+wKnAM7G4EGK9RsUifoa9ZGDQzulEgXP4gfMD+9OUkLoTWoAS7x7xCTJyOxQgQPrfGbog== +DCprniD1sSuEhWwm9VJ6iL/5QVY/vX337J8H9e+Xf/n8LH9z8s78+ucKvpZvn+GPQPJTBZrfmdqmwD+CqsDudA== +b7VaYbAMvJUCO01xu6jbRUjExTVWw+1xfol9YEGg1Cy3lu0GFSovDugwsUKnRVwK58HGuRVVsSPHF/sJwc8Rww== +g+6GPHlBz8gnNilYDILB4CR89mLvDFLl5nFA9hnrhppLxwWOOE0lVxIzsmvuDRdpitLiKHN+3yJvL+6m/AzHPw== +YtMCzTo0aJK742tTk2UpNJa5s3rgFlxorOOuTgsuHO5UxklvrAT3mlPLOKpnLhU9Cp1xlLjQ8pvw0mjHpSbXtg== +IymqCjXenEV4J+2zG/Iu9TCgO/njoCIZ35nsILcgxo6P+VjjCCvF2OPjYyJcwSpZIY2wybuu0WFA38myUsA/QA== +aYJFc8WxuTUlbxxzRBjreWvIjvlZjZXVvs2DmpDBXGrI+FKK1ioi0CE3YR+d1E7qHAu2aZZZgGYCT/lpAEVT2g== +6R0157NwftQn00tpnecp3mQesP+j1j+lqFMYEqS5S/gXSDreObptlj0KckpfwVtrfqFxDCorHfAV7vC0dh7JFw== +xnktSti1x6rCrLbq9Khrwd8d7J9Y0FvklyPUwndRplgxXimxbrwHTbSRTUJ3jxuyubFBXiSaPMrBz0hevX5YBg== +3fX6Q8bxgzy179FWRFGbCIanyiD91OA9mDbyE3PMilTK8iic9vqb1n8waV1iH0MXGbs2FjAykiibvqbYnAT43A== +1KRq3YzTZvSyXWuOEwHR/3nbIH9rsjrQjApfqn7DCZagTEWO6fmYnxsEyqT2qBbGrozOB5hRyTPpsEOOYtPQJQ== +dR5KZz3mjHmUAgOIjSZbzmPnasC5C9eVhaWEVVCv0bALm9Q4KbfwFbGepvQS+1LuV4cy4/fnn26mt+PfPk/HNw== +o6jMHmim9/cOTeqh+1iZJCbe8Z6DphDXXUYWb9OKsS/wMzISWECs2Jo7gAUNVLmFYcOER7lhMs3bA3Ol/EPBKg== +ytG2OYadtPa4oQDFjUmP5+FKpB8r1HvB21dk41Rhmyx6dJvfV8FFIZY0kEv0iYWXNFG4JDkvACqiRxqiy58LJQ== +CYtGK1DqNfLHJQoOMAFFN7EzJVBfZCO867PxzRT/L27vOF22EfsXoc0EItwJAAA= diff --git a/tests/ReplayData/GitReleaseAsset.testDownloadAssetStream.txt b/tests/ReplayData/GitReleaseAsset.testDownloadAssetStream.txt new file mode 100644 index 0000000000..902db166ce --- /dev/null +++ b/tests/ReplayData/GitReleaseAsset.testDownloadAssetStream.txt @@ -0,0 +1,101 @@ +https +GET +api.github.com +None +/repos/EnricoMi/PyGithub/releases/assets/224868540 +{'Accept': 'application/octet-stream', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +302 +[('Date', 'Thu, 30 Jan 2025 12:21:26 GMT'), ('Content-Type', 'text/html;charset=utf-8'), ('Content-Length', '0'), ('Location', 'https://objects.githubusercontent.com/github-production-release-asset-2e65be/446365735/eae43c8b-293d-4fb1-b84c-734756819b27?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250130%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250130T122126Z&X-Amz-Expires=300&X-Amz-Signature=d873e75eb478a9e5e9c21975f40f7616c6f07803deae1a05c72cb00be37fb081&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dasset1.md&response-content-type=application%2Foctet-stream'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4995'), ('X-RateLimit-Reset', '1738243279'), ('X-RateLimit-Used', '5'), ('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'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'D896:30E08B:16F37B7:17A638D:679B6EC6')] + + +https +GET +objects.githubusercontent.com +None +/github-production-release-asset-2e65be/446365735/eae43c8b-293d-4fb1-b84c-734756819b27?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250130%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250130T122126Z&X-Amz-Expires=300&X-Amz-Signature=d873e75eb478a9e5e9c21975f40f7616c6f07803deae1a05c72cb00be37fb081&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dasset1.md&response-content-type=application%2Foctet-stream +{'Accept': 'application/octet-stream', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Connection', 'keep-alive'), ('Content-Length', '2524'), ('Content-Type', 'application/octet-stream'), ('Last-Modified', 'Thu, 30 Jan 2025 11:11:33 GMT'), ('ETag', '"0x8DD411EDB0E39C3"'), ('Server', 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0'), ('x-ms-request-id', '64fa4512-201e-0070-1b08-7358a2000000'), ('x-ms-version', '2025-01-05'), ('x-ms-creation-time', 'Thu, 30 Jan 2025 11:11:33 GMT'), ('x-ms-blob-content-md5', '0CEYVYQcHfnGxCWG82h1Yw=='), ('x-ms-lease-status', 'unlocked'), ('x-ms-lease-state', 'available'), ('x-ms-blob-type', 'BlockBlob'), ('Content-Disposition', 'attachment; filename=asset1.md'), ('x-ms-server-encrypted', 'true'), ('Via', '1.1 varnish, 1.1 varnish'), ('Fastly-Restarts', '1'), ('Accept-Ranges', 'bytes'), ('Date', 'Thu, 30 Jan 2025 12:21:27 GMT'), ('Age', '2'), ('X-Served-By', 'cache-iad-kcgs7200088-IAD, cache-ams2100086-AMS'), ('X-Cache', 'MISS, HIT'), ('X-Cache-Hits', '0, 1'), ('X-Timer', 'S1738239687.932711,VS0,VE1')] +IyBQeUdpdEh1YgoKWyFbUHlQSV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvUHlHaXRodWIuc3ZnKQ== +XShodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL1B5R2l0aHViKQohW0NJXShodHRwczovL2dpdGh1Yi5jbw== +bS9QeUdpdGh1Yi9QeUdpdGh1Yi93b3JrZmxvd3MvQ0kvYmFkZ2Uuc3ZnKQpbIVtyZWFkdGhlZG9jc10oaHR0cA== +czovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2RvY3Mtc3RhYmxlLWJyaWdodGdyZWVuLnN2Zz9zdHlsZT1mbGF0KQ== +XShodHRwczovL3B5Z2l0aHViLnJlYWR0aGVkb2NzLmlvL2VuL3N0YWJsZS8/YmFkZ2U9c3RhYmxlKQpbIVtMaQ== +Y2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1MR1BMLWJsdWUuc3ZnKV0oaHR0cA== +czovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9HTlVfTGVzc2VyX0dlbmVyYWxfUHVibGljX0xpY2Vuc2UpClshWw== +U2xhY2tdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU2xhY2slMjBjaGFubmVsLSUyMCUyMC1ibHVlLg== +c3ZnKV0oaHR0cHM6Ly9qb2luLnNsYWNrLmNvbS90L3B5Z2l0aHViLXByb2plY3Qvc2hhcmVkX2ludml0ZS96dA== +LWR1ajg5eHR4LXVLRlp0Z0FnMjA5bzZWd2VxbTh4ZVEpClshW09wZW4gU291cmNlIEhlbHBlcnNdKGh0dHBzOg== +Ly93d3cuY29kZXRyaWFnZS5jb20vcHlnaXRodWIvcHlnaXRodWIvYmFkZ2VzL3VzZXJzLnN2ZyldKGh0dHBzOg== +Ly93d3cuY29kZXRyaWFnZS5jb20vcHlnaXRodWIvcHlnaXRodWIpClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZQ== +Y292LmlvL2doL1B5R2l0aHViL1B5R2l0aHViL2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cA== +czovL2NvZGVjb3YuaW8vZ2gvUHlHaXRodWIvUHlHaXRodWIpClshW0NvZGUgc3R5bGU6IGJsYWNrXShodHRwcw== +Oi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLWJsYWNrLTAwMDAwMC5zdmcpXShodHRwczovLw== +Z2l0aHViLmNvbS9wc2YvYmxhY2spCgpQeUdpdEh1YiBpcyBhIFB5dGhvbiBsaWJyYXJ5IHRvIGFjY2VzcyB0aA== +ZSBbR2l0SHViIFJFU1QgQVBJXS4KVGhpcyBsaWJyYXJ5IGVuYWJsZXMgeW91IHRvIG1hbmFnZSBbR2l0SHViXQ== +IHJlc291cmNlcyBzdWNoIGFzIHJlcG9zaXRvcmllcywgdXNlciBwcm9maWxlcywgYW5kIG9yZ2FuaXphdGlvbg== +cyBpbiB5b3VyIFB5dGhvbiBhcHBsaWNhdGlvbnMuCgpbR2l0SHViIFJFU1QgQVBJXTogaHR0cHM6Ly9kb2NzLg== +Z2l0aHViLmNvbS9lbi9yZXN0CltHaXRIdWJdOiBodHRwczovL2dpdGh1Yi5jb20KCiMjIEluc3RhbGwKCmBgYA== +YmFzaApwaXAgaW5zdGFsbCBQeUdpdGh1YgpgYGAKCiMjIFNpbXBsZSBEZW1vCgpgYGBweXRob24KZnJvbSBnaQ== +dGh1YiBpbXBvcnQgR2l0aHViCgojIEF1dGhlbnRpY2F0aW9uIGlzIGRlZmluZWQgdmlhIGdpdGh1Yi5BdXRoCg== +ZnJvbSBnaXRodWIgaW1wb3J0IEF1dGgKCiMgdXNpbmcgYW4gYWNjZXNzIHRva2VuCmF1dGggPSBBdXRoLlRvaw== +ZW4oImFjY2Vzc190b2tlbiIpCgojIEZpcnN0IGNyZWF0ZSBhIEdpdGh1YiBpbnN0YW5jZToKCiMgUHVibGljIA== +V2ViIEdpdGh1YgpnID0gR2l0aHViKGF1dGg9YXV0aCkKCiMgR2l0aHViIEVudGVycHJpc2Ugd2l0aCBjdXN0bw== +bSBob3N0bmFtZQpnID0gR2l0aHViKGJhc2VfdXJsPSJodHRwczovL3tob3N0bmFtZX0vYXBpL3YzIiwgYXV0aA== +PWF1dGgpCgojIFRoZW4gcGxheSB3aXRoIHlvdXIgR2l0aHViIG9iamVjdHM6CmZvciByZXBvIGluIGcuZ2V0Xw== +dXNlcigpLmdldF9yZXBvcygpOgogICAgcHJpbnQocmVwby5uYW1lKQoKIyBUbyBjbG9zZSBjb25uZWN0aW9ucw== +IGFmdGVyIHVzZQpnLmNsb3NlKCkKYGBgCgojIyBEb2N1bWVudGF0aW9uCgpNb3JlIGluZm9ybWF0aW9uIGNhbg== +IGJlIGZvdW5kIG9uIHRoZSBbUHlHaXRIdWIgZG9jdW1lbnRhdGlvbiBzaXRlLl0oaHR0cHM6Ly9weWdpdGh1Yg== +LnJlYWR0aGVkb2NzLmlvL2VuL3N0YWJsZS9pbnRyb2R1Y3Rpb24uaHRtbCkKCiMjIERldmVsb3BtZW50CgojIw== +IyBDb250cmlidXRpbmcKCkxvbmctdGVybSBkaXNjdXNzaW9uIGFuZCBidWcgcmVwb3J0cyBhcmUgbWFpbnRhaQ== +bmVkIHZpYSBHaXRIdWIgSXNzdWVzLgpDb2RlIHJldmlldyBpcyBkb25lIHZpYSBHaXRIdWIgUHVsbCBSZXF1ZQ== +c3RzLgoKRm9yIG1vcmUgaW5mb3JtYXRpb24gcmVhZCBbQ09OVFJJQlVUSU5HLm1kXS4KCltDT05UUklCVVRJTg== +Ry5tZF06IGh0dHBzOi8vZ2l0aHViLmNvbS9QeUdpdGh1Yi9QeUdpdGh1Yi9ibG9iL21haW4vQ09OVFJJQlVUSQ== +TkcubWQKCiMjIyBNYWludGFpbmVyc2hpcAoKV2UncmUgYWN0aXZlbHkgc2Vla2luZyBtYWludGFpbmVycyB0aA== +YXQgd2lsbCB0cmlhZ2UgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIGFuZCBjdXQgcmVsZWFzZXMuCklmIHlvdQ== +IHdvcmsgb24gYSBwcm9qZWN0IHRoYXQgbGV2ZXJhZ2VzIFB5R2l0SHViIGFuZCBoYXZlIGEgdmVzdGVkIGludA== +ZXJlc3QgaW4ga2VlcGluZyB0aGUgY29kZSBhbGl2ZSBhbmQgd2VsbCwgc2VuZCBhbiBlbWFpbCB0byBzb21lbw== +bmUgaW4gdGhlIE1BSU5UQUlORVJTIGZpbGUuCg== + + +https +GET +api.github.com +None +/repos/EnricoMi/PyGithub/releases/assets/224868556 +{'Accept': 'application/octet-stream', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +302 +[('Date', 'Thu, 30 Jan 2025 12:21:27 GMT'), ('Content-Type', 'text/html;charset=utf-8'), ('Content-Length', '0'), ('Location', 'https://objects.githubusercontent.com/github-production-release-asset-2e65be/446365735/fe97f261-2422-4ee7-b080-b41991c18d74?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250130%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250130T122127Z&X-Amz-Expires=300&X-Amz-Signature=3b02fdcac6556ad0069cf0ca74bd7ad69a98e267f947d8872f064f267673b923&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dasset2.gz&response-content-type=application%2Foctet-stream'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4994'), ('X-RateLimit-Reset', '1738243279'), ('X-RateLimit-Used', '6'), ('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'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'D898:26EC3A:17BB424:186DF2F:679B6EC7')] + + +https +GET +objects.githubusercontent.com +None +/github-production-release-asset-2e65be/446365735/fe97f261-2422-4ee7-b080-b41991c18d74?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250130%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250130T122127Z&X-Amz-Expires=300&X-Amz-Signature=3b02fdcac6556ad0069cf0ca74bd7ad69a98e267f947d8872f064f267673b923&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dasset2.gz&response-content-type=application%2Foctet-stream +{'Accept': 'application/octet-stream', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Connection', 'keep-alive'), ('Content-Length', '1199'), ('Content-Type', 'application/octet-stream'), ('Last-Modified', 'Thu, 30 Jan 2025 11:11:37 GMT'), ('ETag', '"0x8DD411EDD6F45C4"'), ('Server', 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0'), ('x-ms-request-id', '3d1464c0-a01e-0023-7a09-737b96000000'), ('x-ms-version', '2025-01-05'), ('x-ms-creation-time', 'Thu, 30 Jan 2025 11:11:37 GMT'), ('x-ms-blob-content-md5', 'RttfZbsGgE9+IX1ifB7xdQ=='), ('x-ms-lease-status', 'unlocked'), ('x-ms-lease-state', 'available'), ('x-ms-blob-type', 'BlockBlob'), ('Content-Disposition', 'attachment; filename=asset2.gz'), ('x-ms-server-encrypted', 'true'), ('Via', '1.1 varnish, 1.1 varnish'), ('Fastly-Restarts', '1'), ('Accept-Ranges', 'bytes'), ('Date', 'Thu, 30 Jan 2025 12:21:27 GMT'), ('Age', '3472'), ('X-Served-By', 'cache-iad-kcgs7200038-IAD, cache-ams2100094-AMS'), ('X-Cache', 'MISS, HIT'), ('X-Cache-Hits', '0, 1'), ('X-Timer', 'S1738239688.549926,VS0,VE1')] +H4sICPWaYWcAA1JFQURNRS5tZACVVmFv2zYQ/c5fwSYYZgO1FHTA0BoIiixNXGNJ6iXuCiwIHEo6S4wpUiUpOw== +7rD/vjtKsl3DQzMjMSjy3d27u3eUj/lkPZL+Y50wdv/qfrKejB96hfeVG8axLPPIFRJU5iJp4mpdyXgZB4OiTg== +IrfM+1swnUbV2hdGR8bmDbrD9tmr+/Mdz3njITXlBrJdrIxdzJVZufh8HCciyyGEIn4WROYLyEzq/pNmsIgJMg== +cF4kCgaJlXnhcwugydN759cKTudK+O/4t6R2YpA70HHjJn4fPJ82T4HOlUxBO/gBFdWgBlejydUgUTXsVQ5ZrQ== +5EJWkEkRSkdP8ejm8+wKnAM7G4EGK9RsUifoa9ZGDQzulEgXP4gfMD+9OUkLoTWoAS7x7xCTJyOxQgQPrfGbog== +DCprniD1sSuEhWwm9VJ6iL/5QVY/vX337J8H9e+Xf/n8LH9z8s78+ucKvpZvn+GPQPJTBZrfmdqmwD+CqsDudA== +b7VaYbAMvJUCO01xu6jbRUjExTVWw+1xfol9YEGg1Cy3lu0GFSovDugwsUKnRVwK58HGuRVVsSPHF/sJwc8Rww== +g+6GPHlBz8gnNilYDILB4CR89mLvDFLl5nFA9hnrhppLxwWOOE0lVxIzsmvuDRdpitLiKHN+3yJvL+6m/AzHPw== +YtMCzTo0aJK742tTk2UpNJa5s3rgFlxorOOuTgsuHO5UxklvrAT3mlPLOKpnLhU9Cp1xlLjQ8pvw0mjHpSbXtg== +IymqCjXenEV4J+2zG/Iu9TCgO/njoCIZ35nsILcgxo6P+VjjCCvF2OPjYyJcwSpZIY2wybuu0WFA38myUsA/QA== +aYJFc8WxuTUlbxxzRBjreWvIjvlZjZXVvs2DmpDBXGrI+FKK1ioi0CE3YR+d1E7qHAu2aZZZgGYCT/lpAEVT2g== +6R0157NwftQn00tpnecp3mQesP+j1j+lqFMYEqS5S/gXSDreObptlj0KckpfwVtrfqFxDCorHfAV7vC0dh7JFw== +xnktSti1x6rCrLbq9Khrwd8d7J9Y0FvklyPUwndRplgxXimxbrwHTbSRTUJ3jxuyubFBXiSaPMrBz0hevX5YBg== +3fX6Q8bxgzy179FWRFGbCIanyiD91OA9mDbyE3PMilTK8iic9vqb1n8waV1iH0MXGbs2FjAykiibvqbYnAT43A== +1KRq3YzTZvSyXWuOEwHR/3nbIH9rsjrQjApfqn7DCZagTEWO6fmYnxsEyqT2qBbGrozOB5hRyTPpsEOOYtPQJQ== +dR5KZz3mjHmUAgOIjSZbzmPnasC5C9eVhaWEVVCv0bALm9Q4KbfwFbGepvQS+1LuV4cy4/fnn26mt+PfPk/HNw== +o6jMHmim9/cOTeqh+1iZJCbe8Z6DphDXXUYWb9OKsS/wMzISWECs2Jo7gAUNVLmFYcOER7lhMs3bA3Ol/EPBKg== +ytG2OYadtPa4oQDFjUmP5+FKpB8r1HvB21dk41Rhmyx6dJvfV8FFIZY0kEv0iYWXNFG4JDkvACqiRxqiy58LJQ== +CYtGK1DqNfLHJQoOMAFFN7EzJVBfZCO867PxzRT/L27vOF22EfsXoc0EItwJAAA= diff --git a/tests/ReplayData/GitTag.setUp.txt b/tests/ReplayData/GitTag.setUp.txt index 0937e3832a..06a7f43a8c 100644 --- a/tests/ReplayData/GitTag.setUp.txt +++ b/tests/ReplayData/GitTag.setUp.txt @@ -2,31 +2,20 @@ https GET api.github.com None -/user +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4980'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"fc8367028bd9046f0b52929ea8657756"'), ('date', 'Thu, 10 May 2012 19:03:17 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"type":"User","owned_private_repos":5,"public_repos":10,"html_url":"https://github.com/jacquev6","blog":"http://vincent-jacques.net","collaborators":0,"following":24,"company":"Criteo","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","public_gists":1,"followers":13,"url":"https://api.github.com/users/jacquev6","private_gists":5,"hireable":false,"login":"jacquev6","email":"vincent@vincent-jacques.net","disk_usage":16676,"plan":{"private_repos":5,"collaborators":1,"space":614400,"name":"micro"},"created_at":"2010-07-09T06:10:06Z","name":"Vincent Jacques","bio":"","id":327146,"total_private_repos":5,"location":"Paris, France"} +[('Date', 'Fri, 03 Jan 2025 17:42:27 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"7ddd68f13afe8eeaf9dcb59f56bfaf84452294213a374c9d39d3388e27e40945"'), ('Last-Modified', 'Fri, 03 Jan 2025 17:37:03 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4994'), ('X-RateLimit-Reset', '1735927338'), ('X-RateLimit-Used', '6'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '9FCC:4E297:231F65DB:24010A9F:67782183')] +{"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","user_view_type":"public","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":"2025-01-03T17:37:03Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7116,"watchers_count":7116,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":356,"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":1793,"open_issues":356,"watchers":7116,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"PR_BODY","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"enabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":111} https GET api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub/git/tags/f5f37322407b02a80de4526ad88d5f188977bc3c {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4979'), ('content-length', '1097'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"b297a1eb78f994e828d8b625dae93910"'), ('date', 'Thu, 10 May 2012 19:03:18 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"homepage":"http://vincent-jacques.net/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","html_url":"https://github.com/jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","has_downloads":true,"watchers":13,"permissions":{"admin":true,"pull":true,"push":true},"mirror_url":null,"git_url":"git://github.com/jacquev6/PyGithub.git","has_wiki":false,"has_issues":true,"fork":false,"forks":2,"language":"Python","size":196,"description":"Python library implementing the full Github API v3","private":false,"created_at":"2012-02-25T12:53:47Z","open_issues":15,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"name":"PyGithub","pushed_at":"2012-05-10T18:49:21Z","id":3544490,"ssh_url":"git@github.com:jacquev6/PyGithub.git","updated_at":"2012-05-10T18:49:21Z"} - -https -GET -api.github.com -None -/repos/jacquev6/PyGithub/git/tags/f5f37322407b02a80de4526ad88d5f188977bc3c -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4978'), ('content-length', '487'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1dd282b50e691f8f162ef9355dad8771"'), ('date', 'Thu, 10 May 2012 19:03:19 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags/f5f37322407b02a80de4526ad88d5f188977bc3c","tag":"v0.6","message":"Version 0.6\n","object":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495","type":"commit","sha":"4303c5b90e2216d927155e9609436ccb8984c495"},"tagger":{"email":"vincent@vincent-jacques.net","date":"2012-05-10T11:14:15-07:00","name":"Vincent Jacques"},"sha":"f5f37322407b02a80de4526ad88d5f188977bc3c"} +[('Date', 'Fri, 03 Jan 2025 17:42:28 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"bda3c5e7b017934168062d37bc3ba72f7a06e77283f4a2181e1215e83f6fbbc7"'), ('Last-Modified', 'Fri, 03 Jan 2025 17:37:03 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4993'), ('X-RateLimit-Reset', '1735927338'), ('X-RateLimit-Used', '7'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '9FD2:59502:212EE8ED:22108D9E:67782183')] +{"node_id":"MDM6VGFnMzU0NDQ5MDpmNWYzNzMyMjQwN2IwMmE4MGRlNDUyNmFkODhkNWYxODg5NzdiYzNj","sha":"f5f37322407b02a80de4526ad88d5f188977bc3c","url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags/f5f37322407b02a80de4526ad88d5f188977bc3c","tagger":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2012-05-10T18:14:15Z"},"object":{"sha":"4303c5b90e2216d927155e9609436ccb8984c495","type":"commit","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495"},"tag":"v0.6","message":"Version 0.6\n","verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}} diff --git a/tests/ReplayData/GithubApp.setUp.txt b/tests/ReplayData/GithubApp.setUp.txt new file mode 100644 index 0000000000..762f234a69 --- /dev/null +++ b/tests/ReplayData/GithubApp.setUp.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/apps/github-actions +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Fri, 03 Jan 2025 17:55:22 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"52ae4146434244818fdf617cccfb66ce69c39baedeaf470ea3b79d55e0ac2102"'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4992'), ('X-RateLimit-Reset', '1735927338'), ('X-RateLimit-Used', '8'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'DB02:654DF:22F89888:23DA71AC:6778248A')] +{"id":15368,"client_id":"Iv1.05c79e9ad1f6bdfa","slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","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","user_view_type":"public","site_admin":false},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2024-04-10T20:33:16Z","permissions":{"actions":"write","administration":"read","attestations":"write","checks":"write","contents":"write","deployments":"write","discussions":"write","issues":"write","merge_queues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["branch_protection_rule","check_run","check_suite","create","delete","deployment","deployment_status","discussion","discussion_comment","fork","gollum","issues","issue_comment","label","merge_group","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]} diff --git a/tests/ReplayData/GithubApp.testGetPublicApp.txt b/tests/ReplayData/GithubApp.testGetPublicApp.txt deleted file mode 100644 index de127ea78d..0000000000 --- a/tests/ReplayData/GithubApp.testGetPublicApp.txt +++ /dev/null @@ -1,10 +0,0 @@ -https -GET -api.github.com -None -/apps/github-actions -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Date', 'Sat, 01 Aug 2020 22:54:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '52'), ('X-RateLimit-Reset', '1596322912'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"92d84b5786bdd784149152bd7f65b1f3"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E7DA:2E26:3644D3:4316A5:5F25F2B8')] -{"id":15368,"slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars1.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},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2019-12-10T19:04:12Z","permissions":{"actions":"write","checks":"write","contents":"write","deployments":"write","issues":"write","metadata":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["check_run","check_suite","create","delete","deployment","deployment_status","fork","gollum","issues","issue_comment","label","milestone","page_build","project","project_card","project_column","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]} diff --git a/tests/ReplayData/GlobalAdvisory.testAttributes.txt b/tests/ReplayData/GlobalAdvisory.testAttributes.txt index d2e349dd63..82bdb7c31f 100644 --- a/tests/ReplayData/GlobalAdvisory.testAttributes.txt +++ b/tests/ReplayData/GlobalAdvisory.testAttributes.txt @@ -6,5 +6,5 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Fri, 28 Jul 2023 15:45:01 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/"16da74fc86f276cf5a9a88af936c110c3cdd7122261ec3c77e1eedf669665da8"'), ('Last-Modified', 'Thu, 20 Jul 2023 18:59:27 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-08-25 20:47:49 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4999'), ('X-RateLimit-Reset', '1690562701'), ('X-RateLimit-Used', '1'), ('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', 'E388:5C10:369FC9:6E4C05:64C3E27D')] -{"ghsa_id":"GHSA-wqc8-x2pr-7jqh","cve_id":"CVE-2023-37271","url":"https://api.github.com/advisories/GHSA-wqc8-x2pr-7jqh","html_url":"https://github.com/advisories/GHSA-wqc8-x2pr-7jqh","summary":"RestrictedPython vulnerable to arbitrary code execution via stack frame sandbox escape","description":"### Impact\n\nRestrictedPython does not check access to stack frames...","type":"reviewed","severity":"high","repository_advisory_url":"https://api.github.com/repos/zopefoundation/RestrictedPython/security-advisories/GHSA-wqc8-x2pr-7jqh","source_code_location":"https://github.com/zopefoundation/RestrictedPython","identifiers":[{"value":"GHSA-wqc8-x2pr-7jqh","type":"GHSA"},{"value":"CVE-2023-37271","type":"CVE"}],"references":["https://github.com/zopefoundation/RestrictedPython/security/advisories/GHSA-wqc8-x2pr-7jqh","https://github.com/zopefoundation/RestrictedPython/commit/c8eca66ae49081f0016d2e1f094c3d72095ef531","https://nvd.nist.gov/vuln/detail/CVE-2023-37271","https://github.com/pypa/advisory-database/tree/main/vulns/restrictedpython/PYSEC-2023-118.yaml","https://github.com/advisories/GHSA-wqc8-x2pr-7jqh"],"published_at":"2023-07-10T21:53:22Z","updated_at":"2023-07-20T18:59:27Z","github_reviewed_at":"2023-07-10T21:53:22Z","nvd_published_at":null,"withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pip","name":"RestrictedPython"},"vulnerable_version_range":"< 5.3","first_patched_version":"5.3","vulnerable_functions":[]},{"package":{"ecosystem":"pip","name":"RestrictedPython"},"vulnerable_version_range":">= 6.0a1.dev0, < 6.1","first_patched_version":"6.1","vulnerable_functions":[]},{"package":{"ecosystem":"pip","name":"restrictedpython"},"vulnerable_version_range":">= 0, < 5.3","first_patched_version":"5.3","vulnerable_functions":[]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:L","score":8.4},"cwes":[{"cwe_id":"CWE-913","name":"Improper Control of Dynamically-Managed Code Resources"}],"credits":[{"user":{"login":"loechel","id":1766708,"node_id":"MDQ6VXNlcjE3NjY3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1766708?v=4","gravatar_id":"","url":"https://api.github.com/users/loechel","html_url":"https://github.com/loechel","followers_url":"https://api.github.com/users/loechel/followers","following_url":"https://api.github.com/users/loechel/following{/other_user}","gists_url":"https://api.github.com/users/loechel/gists{/gist_id}","starred_url":"https://api.github.com/users/loechel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/loechel/subscriptions","organizations_url":"https://api.github.com/users/loechel/orgs","repos_url":"https://api.github.com/users/loechel/repos","events_url":"https://api.github.com/users/loechel/events{/privacy}","received_events_url":"https://api.github.com/users/loechel/received_events","type":"User","site_admin":false},"type":"remediation_developer"},{"user":{"login":"Quasar0147","id":102931302,"node_id":"U_kgDOBiKbZg","avatar_url":"https://avatars.githubusercontent.com/u/102931302?v=4","gravatar_id":"","url":"https://api.github.com/users/Quasar0147","html_url":"https://github.com/Quasar0147","followers_url":"https://api.github.com/users/Quasar0147/followers","following_url":"https://api.github.com/users/Quasar0147/following{/other_user}","gists_url":"https://api.github.com/users/Quasar0147/gists{/gist_id}","starred_url":"https://api.github.com/users/Quasar0147/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Quasar0147/subscriptions","organizations_url":"https://api.github.com/users/Quasar0147/orgs","repos_url":"https://api.github.com/users/Quasar0147/repos","events_url":"https://api.github.com/users/Quasar0147/events{/privacy}","received_events_url":"https://api.github.com/users/Quasar0147/received_events","type":"User","site_admin":false},"type":"reporter"},{"user":{"login":"despawningbone","id":22096984,"node_id":"MDQ6VXNlcjIyMDk2OTg0","avatar_url":"https://avatars.githubusercontent.com/u/22096984?v=4","gravatar_id":"","url":"https://api.github.com/users/despawningbone","html_url":"https://github.com/despawningbone","followers_url":"https://api.github.com/users/despawningbone/followers","following_url":"https://api.github.com/users/despawningbone/following{/other_user}","gists_url":"https://api.github.com/users/despawningbone/gists{/gist_id}","starred_url":"https://api.github.com/users/despawningbone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/despawningbone/subscriptions","organizations_url":"https://api.github.com/users/despawningbone/orgs","repos_url":"https://api.github.com/users/despawningbone/repos","events_url":"https://api.github.com/users/despawningbone/events{/privacy}","received_events_url":"https://api.github.com/users/despawningbone/received_events","type":"User","site_admin":false},"type":"reporter"},{"user":{"login":"dataflake","id":1215784,"node_id":"MDQ6VXNlcjEyMTU3ODQ=","avatar_url":"https://avatars.githubusercontent.com/u/1215784?v=4","gravatar_id":"","url":"https://api.github.com/users/dataflake","html_url":"https://github.com/dataflake","followers_url":"https://api.github.com/users/dataflake/followers","following_url":"https://api.github.com/users/dataflake/following{/other_user}","gists_url":"https://api.github.com/users/dataflake/gists{/gist_id}","starred_url":"https://api.github.com/users/dataflake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dataflake/subscriptions","organizations_url":"https://api.github.com/users/dataflake/orgs","repos_url":"https://api.github.com/users/dataflake/repos","events_url":"https://api.github.com/users/dataflake/events{/privacy}","received_events_url":"https://api.github.com/users/dataflake/received_events","type":"User","site_admin":false},"type":"coordinator"},{"user":{"login":"nneonneo","id":75449,"node_id":"MDQ6VXNlcjc1NDQ5","avatar_url":"https://avatars.githubusercontent.com/u/75449?v=4","gravatar_id":"","url":"https://api.github.com/users/nneonneo","html_url":"https://github.com/nneonneo","followers_url":"https://api.github.com/users/nneonneo/followers","following_url":"https://api.github.com/users/nneonneo/following{/other_user}","gists_url":"https://api.github.com/users/nneonneo/gists{/gist_id}","starred_url":"https://api.github.com/users/nneonneo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nneonneo/subscriptions","organizations_url":"https://api.github.com/users/nneonneo/orgs","repos_url":"https://api.github.com/users/nneonneo/repos","events_url":"https://api.github.com/users/nneonneo/events{/privacy}","received_events_url":"https://api.github.com/users/nneonneo/received_events","type":"User","site_admin":false},"type":"other"}]} +[('Date', 'Fri, 14 Feb 2025 14:12:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"d9c130f46b44061c0c9a672b4ad35fd8351dd0c9a2742cf8953b0e27263fd4ee"'), ('Last-Modified', 'Tue, 07 Nov 2023 05:05:13 GMT'), ('github-authentication-token-expiration', '2025-03-16 15:08:01 +0100'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-accepted-github-permissions', 'allows_permissionless_access=true'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4991'), ('X-RateLimit-Reset', '1739545704'), ('X-RateLimit-Used', '9'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'DE9C:18898E:1491D81:15190EB:67AF4F5F')] +{"ghsa_id":"GHSA-wqc8-x2pr-7jqh","cve_id":"CVE-2023-37271","url":"https://api.github.com/advisories/GHSA-wqc8-x2pr-7jqh","html_url":"https://github.com/advisories/GHSA-wqc8-x2pr-7jqh","summary":"RestrictedPython vulnerable to arbitrary code execution via stack frame sandbox escape","description":"### Impact\n\nRestrictedPython does not check access to stack frames and their attributes. Stack frames are accessible within at least generators and generator expressions, which are allowed inside RestrictedPython. An attacker with access to a RestrictedPython environment can write code that gets the current stack frame in a generator and then walk the stack all the way beyond the RestrictedPython invocation boundary, thus breaking out of the restricted scope allowing the call of unrestricted Python code and therefore potentially allowing arbitrary code execution in the Python interpreter.\n\nAll RestrictedPython deployments that allow untrusted users to write Python code in the RestrictedPython environment are at risk. In terms of Zope and Plone, this would mean deployments where the administrator allows untrusted users to create and/or edit objects of type `Script (Python)`, `DTML Method`, `DTML Document` or `Zope Page Template`. This is a non-default configuration and likely to be extremely rare.\n\n### Patches\n\nThe problem has been fixed in releases 5.3 and 6.1.\n\n### Workarounds\n\nThere is no workaround available. If you cannot upgrade to the latest release you should ensure the RestrictedPython environment is only available for trusted users.\n\n### References\n\n- [RestrictedPython security advisory GHSA-wqc8-x2pr-7jqh](https://github.com/zopefoundation/RestrictedPython/security/advisories/GHSA-wqc8-x2pr-7jqh)\n\n## For more information\n\nIf you have any questions or comments about this advisory:\n\n- Open an issue in the [RestrictedPython issue tracker](https://github.com/zopefoundation/RestrictedPython/issues)\n- Email us at [security@plone.org](mailto:security@plone.org)\n\n## Credits\n\nThanks for analysing and reporting the go to:\n- Nakul Choudhary (Quasar0147 on GitHub)\n- despawningbone on GitHub\n- Robert Xiao (nneonneo on GitHub)","type":"reviewed","severity":"high","repository_advisory_url":"https://api.github.com/repos/zopefoundation/RestrictedPython/security-advisories/GHSA-wqc8-x2pr-7jqh","source_code_location":"https://github.com/zopefoundation/RestrictedPython","identifiers":[{"value":"GHSA-wqc8-x2pr-7jqh","type":"GHSA"},{"value":"CVE-2023-37271","type":"CVE"}],"references":["https://github.com/zopefoundation/RestrictedPython/security/advisories/GHSA-wqc8-x2pr-7jqh","https://github.com/zopefoundation/RestrictedPython/commit/c8eca66ae49081f0016d2e1f094c3d72095ef531","https://nvd.nist.gov/vuln/detail/CVE-2023-37271","https://github.com/pypa/advisory-database/tree/main/vulns/restrictedpython/PYSEC-2023-118.yaml","https://github.com/advisories/GHSA-wqc8-x2pr-7jqh"],"published_at":"2023-07-10T21:53:22Z","updated_at":"2023-11-07T05:05:13Z","github_reviewed_at":"2023-07-10T21:53:22Z","nvd_published_at":"2023-07-11T18:15:20Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pip","name":"RestrictedPython"},"vulnerable_version_range":"< 5.3","first_patched_version":"5.3","vulnerable_functions":[]},{"package":{"ecosystem":"pip","name":"RestrictedPython"},"vulnerable_version_range":">= 6.0a1.dev0, < 6.1","first_patched_version":"6.1","vulnerable_functions":[]},{"package":{"ecosystem":"pip","name":"restrictedpython"},"vulnerable_version_range":">= 0, < 5.3","first_patched_version":"5.3","vulnerable_functions":[]}],"cvss_severities":{"cvss_v3":{"vector_string":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:L","score":8.4},"cvss_v4":{"vector_string":null,"score":0.0}},"cwes":[{"cwe_id":"CWE-913","name":"Improper Control of Dynamically-Managed Code Resources"}],"credits":[{"user":{"login":"loechel","id":1766708,"node_id":"MDQ6VXNlcjE3NjY3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1766708?v=4","gravatar_id":"","url":"https://api.github.com/users/loechel","html_url":"https://github.com/loechel","followers_url":"https://api.github.com/users/loechel/followers","following_url":"https://api.github.com/users/loechel/following{/other_user}","gists_url":"https://api.github.com/users/loechel/gists{/gist_id}","starred_url":"https://api.github.com/users/loechel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/loechel/subscriptions","organizations_url":"https://api.github.com/users/loechel/orgs","repos_url":"https://api.github.com/users/loechel/repos","events_url":"https://api.github.com/users/loechel/events{/privacy}","received_events_url":"https://api.github.com/users/loechel/received_events","type":"User","user_view_type":"public","site_admin":false},"type":"remediation_developer"},{"user":{"login":"Quasar0147","id":102931302,"node_id":"U_kgDOBiKbZg","avatar_url":"https://avatars.githubusercontent.com/u/102931302?v=4","gravatar_id":"","url":"https://api.github.com/users/Quasar0147","html_url":"https://github.com/Quasar0147","followers_url":"https://api.github.com/users/Quasar0147/followers","following_url":"https://api.github.com/users/Quasar0147/following{/other_user}","gists_url":"https://api.github.com/users/Quasar0147/gists{/gist_id}","starred_url":"https://api.github.com/users/Quasar0147/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Quasar0147/subscriptions","organizations_url":"https://api.github.com/users/Quasar0147/orgs","repos_url":"https://api.github.com/users/Quasar0147/repos","events_url":"https://api.github.com/users/Quasar0147/events{/privacy}","received_events_url":"https://api.github.com/users/Quasar0147/received_events","type":"User","user_view_type":"public","site_admin":false},"type":"reporter"},{"user":{"login":"despawningbone","id":22096984,"node_id":"MDQ6VXNlcjIyMDk2OTg0","avatar_url":"https://avatars.githubusercontent.com/u/22096984?v=4","gravatar_id":"","url":"https://api.github.com/users/despawningbone","html_url":"https://github.com/despawningbone","followers_url":"https://api.github.com/users/despawningbone/followers","following_url":"https://api.github.com/users/despawningbone/following{/other_user}","gists_url":"https://api.github.com/users/despawningbone/gists{/gist_id}","starred_url":"https://api.github.com/users/despawningbone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/despawningbone/subscriptions","organizations_url":"https://api.github.com/users/despawningbone/orgs","repos_url":"https://api.github.com/users/despawningbone/repos","events_url":"https://api.github.com/users/despawningbone/events{/privacy}","received_events_url":"https://api.github.com/users/despawningbone/received_events","type":"User","user_view_type":"public","site_admin":false},"type":"reporter"},{"user":{"login":"dataflake","id":1215784,"node_id":"MDQ6VXNlcjEyMTU3ODQ=","avatar_url":"https://avatars.githubusercontent.com/u/1215784?v=4","gravatar_id":"","url":"https://api.github.com/users/dataflake","html_url":"https://github.com/dataflake","followers_url":"https://api.github.com/users/dataflake/followers","following_url":"https://api.github.com/users/dataflake/following{/other_user}","gists_url":"https://api.github.com/users/dataflake/gists{/gist_id}","starred_url":"https://api.github.com/users/dataflake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dataflake/subscriptions","organizations_url":"https://api.github.com/users/dataflake/orgs","repos_url":"https://api.github.com/users/dataflake/repos","events_url":"https://api.github.com/users/dataflake/events{/privacy}","received_events_url":"https://api.github.com/users/dataflake/received_events","type":"User","user_view_type":"public","site_admin":false},"type":"coordinator"},{"user":{"login":"nneonneo","id":75449,"node_id":"MDQ6VXNlcjc1NDQ5","avatar_url":"https://avatars.githubusercontent.com/u/75449?v=4","gravatar_id":"","url":"https://api.github.com/users/nneonneo","html_url":"https://github.com/nneonneo","followers_url":"https://api.github.com/users/nneonneo/followers","following_url":"https://api.github.com/users/nneonneo/following{/other_user}","gists_url":"https://api.github.com/users/nneonneo/gists{/gist_id}","starred_url":"https://api.github.com/users/nneonneo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nneonneo/subscriptions","organizations_url":"https://api.github.com/users/nneonneo/orgs","repos_url":"https://api.github.com/users/nneonneo/repos","events_url":"https://api.github.com/users/nneonneo/events{/privacy}","received_events_url":"https://api.github.com/users/nneonneo/received_events","type":"User","user_view_type":"public","site_admin":false},"type":"other"}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:L","score":8.4},"epss":{"percentage":0.00156,"percentile":0.52841}} diff --git a/tests/ReplayData/Issue.setUp.txt b/tests/ReplayData/Issue.setUp.txt index 25b0af3b68..dffcb26a86 100644 --- a/tests/ReplayData/Issue.setUp.txt +++ b/tests/ReplayData/Issue.setUp.txt @@ -2,31 +2,20 @@ https GET api.github.com None -/user +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4993'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"9459b6e1e4805aad5e10d13344d6ffbf"'), ('date', 'Sat, 26 May 2012 14:59:39 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"public_repos":11,"type":"User","hireable":false,"disk_usage":17080,"blog":"http://vincent-jacques.net","bio":"","url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","total_private_repos":5,"plan":{"private_repos":5,"collaborators":1,"name":"micro","space":614400},"owned_private_repos":5,"company":"Criteo","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","collaborators":0,"public_gists":3,"email":"vincent@vincent-jacques.net","followers":13,"name":"Vincent Jacques","private_gists":5,"created_at":"2010-07-09T06:10:06Z","location":"Paris, France","id":327146,"following":24,"html_url":"https://github.com/jacquev6"} +[('Date', 'Fri, 03 Jan 2025 19:01:04 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"f5cc8602b1810af03dbb6c6362f001a1e6360ddab7e5169b030d5cb0e172da51"'), ('Last-Modified', 'Fri, 03 Jan 2025 18:50:01 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4999'), ('X-RateLimit-Reset', '1735934464'), ('X-RateLimit-Used', '1'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'CF34:1146F1:1D6AAF77:1E323FF0:677833F0')] +{"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","user_view_type":"public","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":"2025-01-03T18:50:01Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7117,"watchers_count":7117,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":356,"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":1793,"open_issues":356,"watchers":7117,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"PR_BODY","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"enabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":111} https GET api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub/issues/28 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"5dc65a168cf4d957347ea04221cd5102"'), ('date', 'Sat, 26 May 2012 14:59:39 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":13,"updated_at":"2012-05-26T11:25:48Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":2,"size":412,"private":false,"open_issues":15,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-26T11:25:48Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"git_url":"git://github.com/jacquev6/PyGithub.git","html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"} - -https -GET -api.github.com -None -/repos/jacquev6/PyGithub/issues/28 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4991'), ('content-length', '2258'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"071cb2b8bfef81f56b94d7d9397e6aa4"'), ('date', 'Sat, 26 May 2012 14:59:40 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546,"closed_issues":3},"number":28,"closed_by":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignees":[{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},{"url":"https://api.github.com/users/stuglaser","gravatar_id":"","login":"stuglaser","avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","id":1527117}],"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":4653757,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/28","state_reason":"completed","comments_url":"https://github.com/jacquev6/PyGithub/issues/28/comments","events_url":"https://github.com/jacquev6/PyGithub/issues/28/events","labels_url":"https://github.com/jacquev6/PyGithub/issues/28/labels{/name}","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28/reactions","total_count":2,"+1":0,"-1":0,"laugh":0,"hooray":2,"confused":0,"heart":0,"rocket":0,"eyes":0}} +[('Date', 'Fri, 03 Jan 2025 19:01:05 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"4f9f2e3ae3fbedf89903cc5b9b41c547de19b5604d701a91684de32048920575"'), ('Last-Modified', 'Sun, 20 Oct 2024 07:14:52 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1735934464'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'CF3E:521E5:22932EE8:237616D4:677833F1')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28/events","html_url":"https://github.com/PyGithub/PyGithub/issues/28","id":4653757,"node_id":"MDU6SXNzdWU0NjUzNzU3","number":28,"title":"Issue created by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":3330121,"node_id":"MDU6TGFiZWwzMzMwMTIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/bug","name":"bug","color":"e10c02","default":true,"description":null},{"id":3376821,"node_id":"MDU6TGFiZWwzMzc2ODIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/question","name":"question","color":"02e10c","default":true,"description":null}],"state":"closed","locked":false,"assignee":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"assignees":[{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/8","html_url":"https://github.com/PyGithub/PyGithub/milestone/8","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/8/labels","id":150933,"node_id":"MDk6TWlsZXN0b25lMTUwOTMz","number":8,"title":"Version 1.4","description":"","creator":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"open_issues":0,"closed_issues":3,"state":"closed","created_at":"2012-07-24T16:04:28Z","updated_at":"2012-09-11T18:52:13Z","due_on":"2012-08-05T07:00:00Z","closed_at":"2012-08-04T06:11:43Z"},"comments":3,"created_at":"2012-05-19T10:38:23Z","updated_at":"2019-05-03T09:44:22Z","closed_at":"2012-05-26T14:59:33Z","author_association":"MEMBER","active_lock_reason":null,"body":"Body edited by PyGithub\n","closed_by":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28/reactions","total_count":2,"+1":0,"-1":0,"laugh":0,"hooray":2,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28/timeline","performed_via_github_app":null,"state_reason":"completed"} diff --git a/tests/ReplayData/Issue.testAddAndRemoveAssignees.txt b/tests/ReplayData/Issue.testAddAndRemoveAssignees.txt index 7540ad8697..9c67fa65e4 100644 --- a/tests/ReplayData/Issue.testAddAndRemoveAssignees.txt +++ b/tests/ReplayData/Issue.testAddAndRemoveAssignees.txt @@ -13,20 +13,20 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/issues/28/assignees +/repos/PyGithub/PyGithub/issues/28/assignees {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"assignees":["jayfk","jzelinskie"]} 201 [('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d135d74d2ea2159d044676a220d41d3a"'), ('date', 'Sun, 27 May 2012 09:04:06 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546,"closed_issues":3},"number":28,"closed_by":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignees":[{"login":"jacquev6","id": 327146,"avatar_url":"https://avatars.githubusercontent.com/u/327146?v=3","gravatar_id":"","url":"https://api.github.com/users/jacquev6"},{"login":"stuglaser","id": 1527117,"avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","gravatar_id":"","url":"https://api.github.com/users/stuglaser"},{"login":"jayfk","id": 2930472,"avatar_url":"https://avatars.githubusercontent.com/u/2930472?v=3","gravatar_id":"","url":"https://api.github.com/users/jayfk"},{"login":"jzelinskie","id": 343539,"avatar_url":"https://avatars.githubusercontent.com/u/343539?v=3","gravatar_id":"","url":"https://api.github.com/users/jzelinskie"}],"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":4653757,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/28"} +{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546,"closed_issues":3},"number":28,"closed_by":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignees":[{"login":"jacquev6","id": 327146,"avatar_url":"https://avatars.githubusercontent.com/u/327146?v=3","gravatar_id":"","url":"https://api.github.com/users/jacquev6"},{"login":"jayfk","id": 2930472,"avatar_url":"https://avatars.githubusercontent.com/u/2930472?v=3","gravatar_id":"","url":"https://api.github.com/users/jayfk"},{"login":"jzelinskie","id": 343539,"avatar_url":"https://avatars.githubusercontent.com/u/343539?v=3","gravatar_id":"","url":"https://api.github.com/users/jzelinskie"}],"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":4653757,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/28"} https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/28/assignees +/repos/PyGithub/PyGithub/issues/28/assignees {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"assignees":["jayfk","jzelinskie"]} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d135d74d2ea2159d044676a220d41d3a"'), ('date', 'Sun, 27 May 2012 09:04:06 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546,"closed_issues":3},"number":28,"closed_by":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignees":[{"login":"jacquev6","id": 327146,"avatar_url":"https://avatars.githubusercontent.com/u/327146?v=3","gravatar_id":"","url":"https://api.github.com/users/jacquev6"},{"login":"stuglaser","id": 1527117,"avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","gravatar_id":"","url":"https://api.github.com/users/stuglaser"}],"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":4653757,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/28"} +{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546,"closed_issues":3},"number":28,"closed_by":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignees":[{"login":"jacquev6","id": 327146,"avatar_url":"https://avatars.githubusercontent.com/u/327146?v=3","gravatar_id":"","url":"https://api.github.com/users/jacquev6"}],"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":4653757,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/28"} diff --git a/tests/ReplayData/Issue.testAddAndRemoveLabels.txt b/tests/ReplayData/Issue.testAddAndRemoveLabels.txt index 081a23a460..6f20f73770 100644 --- a/tests/ReplayData/Issue.testAddAndRemoveLabels.txt +++ b/tests/ReplayData/Issue.testAddAndRemoveLabels.txt @@ -2,97 +2,97 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/labels/Bug +/repos/PyGithub/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '97'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"569c414d87e8ec43ec269a9e28bc2982"'), ('date', 'Sun, 27 May 2012 09:04:01 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"color":"e10c02","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug"} +{"color":"e10c02","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug"} https GET api.github.com None -/repos/jacquev6/PyGithub/labels/Question +/repos/PyGithub/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4991'), ('content-length', '107'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"b659c8dcc1212c71f826547c3cc7ae99"'), ('date', 'Sun, 27 May 2012 09:04:02 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"} https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4990'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c9f9beccb03030beaf7b80927da6fef6"'), ('date', 'Sun, 27 May 2012 09:04:03 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}] https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels/Bug +/repos/PyGithub/PyGithub/issues/28/labels/Bug {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '237'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"46cc70bad88a09b559a5e67089005105"'), ('date', 'Sun, 27 May 2012 09:04:03 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('content-length', '237'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"46cc70bad88a09b559a5e67089005105"'), ('date', 'Sun, 27 May 2012 09:04:04 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}] https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels/Question +/repos/PyGithub/PyGithub/issues/28/labels/Question {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('content-length', '129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"5352ae15c8a5a36c6cace63be9367332"'), ('date', 'Sun, 27 May 2012 09:04:04 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4986'), ('content-length', '129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"5352ae15c8a5a36c6cace63be9367332"'), ('date', 'Sun, 27 May 2012 09:04:05 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}] https POST api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} ["Bug", "Question"] 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d135d74d2ea2159d044676a220d41d3a"'), ('date', 'Sun, 27 May 2012 09:04:06 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"color":"e10c02","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug"},{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"},{"color":"02e10c","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question"}] +[{"color":"e10c02","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug"},{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"},{"color":"02e10c","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4984'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c9f9beccb03030beaf7b80927da6fef6"'), ('date', 'Sun, 27 May 2012 09:04:06 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}] diff --git a/tests/ReplayData/Issue.testAddAndRemoveLabelsWithStringArguments.txt b/tests/ReplayData/Issue.testAddAndRemoveLabelsWithStringArguments.txt index bab7e65f6f..380cd5d2c1 100644 --- a/tests/ReplayData/Issue.testAddAndRemoveLabelsWithStringArguments.txt +++ b/tests/ReplayData/Issue.testAddAndRemoveLabelsWithStringArguments.txt @@ -2,75 +2,75 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4990'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c9f9beccb03030beaf7b80927da6fef6"'), ('date', 'Sun, 27 May 2012 09:04:03 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}] https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels/Bug +/repos/PyGithub/PyGithub/issues/28/labels/Bug {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '237'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"46cc70bad88a09b559a5e67089005105"'), ('date', 'Sun, 27 May 2012 09:04:03 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('content-length', '237'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"46cc70bad88a09b559a5e67089005105"'), ('date', 'Sun, 27 May 2012 09:04:04 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}] https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels/Question +/repos/PyGithub/PyGithub/issues/28/labels/Question {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('content-length', '129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"5352ae15c8a5a36c6cace63be9367332"'), ('date', 'Sun, 27 May 2012 09:04:04 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4986'), ('content-length', '129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"5352ae15c8a5a36c6cace63be9367332"'), ('date', 'Sun, 27 May 2012 09:04:05 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}] https POST api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} ["Bug", "Question"] 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d135d74d2ea2159d044676a220d41d3a"'), ('date', 'Sun, 27 May 2012 09:04:06 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"color":"e10c02","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug"},{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"},{"color":"02e10c","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question"}] +[{"color":"e10c02","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug"},{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"},{"color":"02e10c","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4984'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c9f9beccb03030beaf7b80927da6fef6"'), ('date', 'Sun, 27 May 2012 09:04:06 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}] diff --git a/tests/ReplayData/Issue.testAttributes.txt b/tests/ReplayData/Issue.testAttributes.txt index a8653eea34..22c0f1df8f 100644 --- a/tests/ReplayData/Issue.testAttributes.txt +++ b/tests/ReplayData/Issue.testAttributes.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"5dc65a168cf4d957347ea04221cd5102"'), ('date', 'Sat, 26 May 2012 14:59:39 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":13,"updated_at":"2012-05-26T11:25:48Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":2,"size":412,"private":false,"open_issues":15,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-26T11:25:48Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"git_url":"git://github.com/jacquev6/PyGithub.git","html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"assignees":[{"url":"https://api.github.com/users/stuglaser","gravatar_id":"","login":"stuglaser","avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","id":1527117},{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146}]} +{"clone_url":"https://github.com/PyGithub/PyGithub.git","has_downloads":true,"watchers":13,"updated_at":"2012-05-26T11:25:48Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":2,"size":412,"private":false,"open_issues":15,"svn_url":"https://github.com/PyGithub/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:PyGithub/PyGithub.git","pushed_at":"2012-05-26T11:25:48Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"git_url":"git://github.com/PyGithub/PyGithub.git","html_url":"https://github.com/PyGithub/PyGithub","full_name":"PyGithub/PyGithub","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"assignees":[{"url":"https://api.github.com/users/stuglaser","gravatar_id":"","login":"stuglaser","avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","id":1527117},{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146}]} diff --git a/tests/ReplayData/Issue.testCreateComment.txt b/tests/ReplayData/Issue.testCreateComment.txt index d5454f9ed8..f7c68c9929 100644 --- a/tests/ReplayData/Issue.testCreateComment.txt +++ b/tests/ReplayData/Issue.testCreateComment.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/issues/28/comments +/repos/PyGithub/PyGithub/issues/28/comments {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"body": "Comment created by PyGithub"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4996'), ('content-length', '506'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"08cea7c821f6f3378e38921a9e7bc05e"'), ('date', 'Sun, 20 May 2012 11:46:43 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5808311')] -{"updated_at":"2012-05-20T11:46:42Z","body":"Comment created by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5808311","created_at":"2012-05-20T11:46:42Z","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":5808311} +[('status', '201 Created'), ('x-ratelimit-remaining', '4996'), ('content-length', '506'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"08cea7c821f6f3378e38921a9e7bc05e"'), ('date', 'Sun, 20 May 2012 11:46:43 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5808311')] +{"updated_at":"2012-05-20T11:46:42Z","body":"Comment created by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5808311","created_at":"2012-05-20T11:46:42Z","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":5808311} diff --git a/tests/ReplayData/Issue.testCreateReaction.txt b/tests/ReplayData/Issue.testCreateReaction.txt index 781b5ff331..e158e190d0 100644 --- a/tests/ReplayData/Issue.testCreateReaction.txt +++ b/tests/ReplayData/Issue.testCreateReaction.txt @@ -2,7 +2,7 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/issues/28/reactions +/repos/PyGithub/PyGithub/issues/28/reactions {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'Accept': 'application/vnd.github.squirrel-girl-preview', 'User-Agent': 'PyGithub/Python'} {"content": "hooray"} 201 diff --git a/tests/ReplayData/Issue.testDeleteAndSetLabels.txt b/tests/ReplayData/Issue.testDeleteAndSetLabels.txt index 002e5c4824..99107912d8 100644 --- a/tests/ReplayData/Issue.testDeleteAndSetLabels.txt +++ b/tests/ReplayData/Issue.testDeleteAndSetLabels.txt @@ -2,40 +2,40 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/labels/Bug +/repos/PyGithub/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4974'), ('content-length', '97'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"fe2e942523eecb156d100829a6347516"'), ('date', 'Sun, 27 May 2012 09:06:37 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"} https GET api.github.com None -/repos/jacquev6/PyGithub/labels/Question +/repos/PyGithub/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4973'), ('content-length', '107'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"931e58d337b2290717303141eda89cd7"'), ('date', 'Sun, 27 May 2012 09:06:38 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"color":"02e10c","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question"} +{"color":"02e10c","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question"} https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4972'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d135d74d2ea2159d044676a220d41d3a"'), ('date', 'Sun, 27 May 2012 09:06:39 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"color":"e10c02","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug"},{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"},{"color":"02e10c","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question"}] +[{"color":"e10c02","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug"},{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"},{"color":"02e10c","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question"}] https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -46,7 +46,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -57,20 +57,20 @@ https PUT api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} ["Bug", "Question"] 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('content-length', '207'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1a56634d9c1050a88592ff55ed8adc62"'), ('date', 'Sun, 27 May 2012 09:06:40 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4968'), ('content-length', '207'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1a56634d9c1050a88592ff55ed8adc62"'), ('date', 'Sun, 27 May 2012 09:06:41 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}] diff --git a/tests/ReplayData/Issue.testDeleteAndSetLabelsWithStringArguments.txt b/tests/ReplayData/Issue.testDeleteAndSetLabelsWithStringArguments.txt index e1c99dbf93..84493f8acc 100755 --- a/tests/ReplayData/Issue.testDeleteAndSetLabelsWithStringArguments.txt +++ b/tests/ReplayData/Issue.testDeleteAndSetLabelsWithStringArguments.txt @@ -2,18 +2,18 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4972'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d135d74d2ea2159d044676a220d41d3a"'), ('date', 'Sun, 27 May 2012 09:06:39 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"color":"e10c02","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug"},{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"},{"color":"02e10c","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question"}] +[{"color":"e10c02","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug"},{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"},{"color":"02e10c","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question"}] https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -24,7 +24,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -35,20 +35,20 @@ https PUT api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} ["Bug", "Question"] 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('content-length', '207'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1a56634d9c1050a88592ff55ed8adc62"'), ('date', 'Sun, 27 May 2012 09:06:40 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4968'), ('content-length', '207'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1a56634d9c1050a88592ff55ed8adc62"'), ('date', 'Sun, 27 May 2012 09:06:41 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}] diff --git a/tests/ReplayData/Issue.testDeleteReaction.txt b/tests/ReplayData/Issue.testDeleteReaction.txt index 39c9afb3ef..d21577681a 100644 --- a/tests/ReplayData/Issue.testDeleteReaction.txt +++ b/tests/ReplayData/Issue.testDeleteReaction.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/28/reactions/85740167 +/repos/PyGithub/PyGithub/issues/28/reactions/85740167 {'Accept': 'application/vnd.github.squirrel-girl-preview', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/Issue.testEditResetAssignee.txt b/tests/ReplayData/Issue.testEditResetAssignee.txt index b99ed227ad..bc3050ee22 100644 --- a/tests/ReplayData/Issue.testEditResetAssignee.txt +++ b/tests/ReplayData/Issue.testEditResetAssignee.txt @@ -2,9 +2,9 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub/issues/28 +/repos/PyGithub/PyGithub/issues/28 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"assignee": ""} 200 [('status', '200 OK'), ('content-length', '1853'), ('x-ratelimit-limit', '5000'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-remaining', '4980'), ('server', 'nginx'), ('connection', 'keep-alive'), ('etag', '"6947b498e9fd9f792130d6c80982b949"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Tue, 11 Sep 2012 18:47:24 GMT'), ('x-github-media-type', 'github.beta; format=json'), ('content-type', 'application/json; charset=utf-8')] -{"body":"Body edited by PyGithub","closed_at":"2012-05-26T14:59:33Z","milestone":{"due_on":"2012-03-13T07:00:00Z","description":"","created_at":"2012-03-08T12:22:10Z","closed_issues":3,"title":"Version 0.4","open_issues":0,"state":"closed","creator":{"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146},"number":1,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","id":93546},"labels":[{"color":"e10c02","name":"Bug","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug"},{"color":"02e10c","name":"Question","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question"}],"user":{"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146},"pull_request":{"html_url":null,"patch_url":null,"diff_url":null},"created_at":"2012-05-19T10:38:23Z","comments":0,"closed_by":{"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146},"title":"Issue created by PyGithub","html_url":"https://github.com/jacquev6/PyGithub/issues/28","assignee":null,"state":"closed","number":28,"updated_at":"2012-09-11T18:47:24Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","id":4653757} +{"body":"Body edited by PyGithub","closed_at":"2012-05-26T14:59:33Z","milestone":{"due_on":"2012-03-13T07:00:00Z","description":"","created_at":"2012-03-08T12:22:10Z","closed_issues":3,"title":"Version 0.4","open_issues":0,"state":"closed","creator":{"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146},"number":1,"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/1","id":93546},"labels":[{"color":"e10c02","name":"Bug","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug"},{"color":"02e10c","name":"Question","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question"}],"user":{"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146},"pull_request":{"html_url":null,"patch_url":null,"diff_url":null},"created_at":"2012-05-19T10:38:23Z","comments":0,"closed_by":{"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146},"title":"Issue created by PyGithub","html_url":"https://github.com/PyGithub/PyGithub/issues/28","assignee":null,"state":"closed","number":28,"updated_at":"2012-09-11T18:47:24Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","id":4653757} diff --git a/tests/ReplayData/Issue.testEditResetMilestone.txt b/tests/ReplayData/Issue.testEditResetMilestone.txt index f5af190966..57b2285c94 100644 --- a/tests/ReplayData/Issue.testEditResetMilestone.txt +++ b/tests/ReplayData/Issue.testEditResetMilestone.txt @@ -2,9 +2,9 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub/issues/28 +/repos/PyGithub/PyGithub/issues/28 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"milestone": ""} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4976'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('content-length', '1296'), ('server', 'nginx'), ('connection', 'keep-alive'), ('etag', '"71423b9f379e4978b85005a6dc6820ed"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Tue, 11 Sep 2012 18:48:34 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"body":"Body edited by PyGithub","closed_at":"2012-05-26T14:59:33Z","milestone":null,"labels":[{"color":"e10c02","name":"Bug","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug"},{"color":"02e10c","name":"Question","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question"}],"user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146},"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"created_at":"2012-05-19T10:38:23Z","comments":0,"closed_by":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146},"title":"Issue created by PyGithub","assignee":null,"state":"closed","number":28,"html_url":"https://github.com/jacquev6/PyGithub/issues/28","updated_at":"2012-09-11T18:48:34Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","id":4653757} +{"body":"Body edited by PyGithub","closed_at":"2012-05-26T14:59:33Z","milestone":null,"labels":[{"color":"e10c02","name":"Bug","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug"},{"color":"02e10c","name":"Question","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question"}],"user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146},"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"created_at":"2012-05-19T10:38:23Z","comments":0,"closed_by":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146},"title":"Issue created by PyGithub","assignee":null,"state":"closed","number":28,"html_url":"https://github.com/PyGithub/PyGithub/issues/28","updated_at":"2012-09-11T18:48:34Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","id":4653757} diff --git a/tests/ReplayData/Issue.testEditWithAllParameters.txt b/tests/ReplayData/Issue.testEditWithAllParameters.txt index 85de543adb..ff06e32828 100644 --- a/tests/ReplayData/Issue.testEditWithAllParameters.txt +++ b/tests/ReplayData/Issue.testEditWithAllParameters.txt @@ -13,20 +13,20 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/milestones/2 +/repos/PyGithub/PyGithub/milestones/2 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('content-length', '899'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"3a7652875cbbfe2a93b7307ab7a3deac"'), ('date', 'Fri, 01 Jun 2012 18:53:25 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":6,"number":2,"id":93547} +{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":6,"number":2,"id":93547} https PATCH api.github.com None -/repos/jacquev6/PyGithub/issues/28 +/repos/PyGithub/PyGithub/issues/28 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -{"body": "Body edited by PyGithub", "title": "Title edited by PyGithub", "labels": ["Bug"], "assignee": "jacquev6", "assignees": ["jacquev6", "stuglaser"], "state": "open", "milestone": 2} +{"body": "Body edited by PyGithub", "title": "Title edited by PyGithub", "labels": ["Bug"], "assignee": "jacquev6", "assignees": ["jacquev6"], "state": "open", "milestone": 2} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '2034'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"98bbbf2b2187bf5cdd9aead53ecc2b97"'), ('date', 'Sat, 19 May 2012 10:42:26 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"assignees":[{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},{"url":"https://api.github.com/users/stuglaser","gravatar_id":"","login":"stuglaser","avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","id":1527117}],"updated_at":"2012-05-19T10:42:25Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","comments":0,"number":28,"title":"Title edited by PyGithub","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"closed_at":null,"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"}],"closed_by":null,"html_url":"https://github.com/jacquev6/PyGithub/issues/28","created_at":"2012-05-19T10:38:23Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4653757,"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","due_on":null,"closed_issues":1,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"number":2,"open_issues":11,"title":"Version 1.0: coherent public interface","created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547}} +{"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"assignees":[{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146}],"updated_at":"2012-05-19T10:42:25Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","comments":0,"number":28,"title":"Title edited by PyGithub","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"closed_at":null,"labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"}],"closed_by":null,"html_url":"https://github.com/PyGithub/PyGithub/issues/28","created_at":"2012-05-19T10:38:23Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4653757,"milestone":{"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","due_on":null,"closed_issues":1,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"number":2,"open_issues":11,"title":"Version 1.0: coherent public interface","created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547}} diff --git a/tests/ReplayData/Issue.testEditWithStateReasonNotPlanned.txt b/tests/ReplayData/Issue.testEditWithStateReasonNotPlanned.txt index 2c1226449c..3cd224369f 100644 --- a/tests/ReplayData/Issue.testEditWithStateReasonNotPlanned.txt +++ b/tests/ReplayData/Issue.testEditWithStateReasonNotPlanned.txt @@ -2,9 +2,9 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub/issues/28 +/repos/PyGithub/PyGithub/issues/28 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"state": "closed", "state_reason": "not_planned"} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '2034'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"98bbbf2b2187bf5cdd9aead53ecc2b97"'), ('date', 'Sat, 19 May 2012 10:42:26 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"assignees":[{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},{"url":"https://api.github.com/users/stuglaser","gravatar_id":"","login":"stuglaser","avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","id":1527117}],"updated_at":"2012-05-19T10:42:25Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","comments":0,"number":28,"title":"Title edited by PyGithub","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"closed_at":null,"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"}],"closed_by":null,"html_url":"https://github.com/jacquev6/PyGithub/issues/28","created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4653757,"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","due_on":null,"closed_issues":1,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"number":2,"open_issues":11,"title":"Version 1.0: coherent public interface","created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"state_reason":"not_planned"} +{"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"assignees":[{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},{"url":"https://api.github.com/users/stuglaser","gravatar_id":"","login":"stuglaser","avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","id":1527117}],"updated_at":"2012-05-19T10:42:25Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","comments":0,"number":28,"title":"Title edited by PyGithub","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"closed_at":null,"labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"}],"closed_by":null,"html_url":"https://github.com/PyGithub/PyGithub/issues/28","created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4653757,"milestone":{"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","due_on":null,"closed_issues":1,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"number":2,"open_issues":11,"title":"Version 1.0: coherent public interface","created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"state_reason":"not_planned"} diff --git a/tests/ReplayData/Issue.testEditWithStateReasonReopened.txt b/tests/ReplayData/Issue.testEditWithStateReasonReopened.txt index b57738dff4..65db47d4cf 100644 --- a/tests/ReplayData/Issue.testEditWithStateReasonReopened.txt +++ b/tests/ReplayData/Issue.testEditWithStateReasonReopened.txt @@ -2,9 +2,9 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub/issues/28 +/repos/PyGithub/PyGithub/issues/28 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"state": "open", "state_reason": "reopened"} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '2034'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"98bbbf2b2187bf5cdd9aead53ecc2b97"'), ('date', 'Sat, 19 May 2012 10:42:26 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"assignees":[{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},{"url":"https://api.github.com/users/stuglaser","gravatar_id":"","login":"stuglaser","avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","id":1527117}],"updated_at":"2012-05-19T10:42:25Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","comments":0,"number":28,"title":"Title edited by PyGithub","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"closed_at":null,"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"}],"closed_by":null,"html_url":"https://github.com/jacquev6/PyGithub/issues/28","created_at":"2012-05-19T10:38:23Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4653757,"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","due_on":null,"closed_issues":1,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"number":2,"open_issues":11,"title":"Version 1.0: coherent public interface","created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"state_reason":"reopened"} +{"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"assignees":[{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},{"url":"https://api.github.com/users/stuglaser","gravatar_id":"","login":"stuglaser","avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","id":1527117}],"updated_at":"2012-05-19T10:42:25Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","comments":0,"number":28,"title":"Title edited by PyGithub","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"closed_at":null,"labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"}],"closed_by":null,"html_url":"https://github.com/PyGithub/PyGithub/issues/28","created_at":"2012-05-19T10:38:23Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4653757,"milestone":{"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","due_on":null,"closed_issues":1,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"number":2,"open_issues":11,"title":"Version 1.0: coherent public interface","created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"state_reason":"reopened"} diff --git a/tests/ReplayData/Issue.testEditWithoutParameters.txt b/tests/ReplayData/Issue.testEditWithoutParameters.txt index 4e2d08a36c..4d30e51aa1 100644 --- a/tests/ReplayData/Issue.testEditWithoutParameters.txt +++ b/tests/ReplayData/Issue.testEditWithoutParameters.txt @@ -2,9 +2,9 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub/issues/28 +/repos/PyGithub/PyGithub/issues/28 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('content-length', '748'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"771af112ee4f9ad5858f5c9b5141b319"'), ('date', 'Sat, 19 May 2012 10:41:03 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"assignee":null,"updated_at":"2012-05-19T10:38:23Z","body":null,"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","comments":0,"number":28,"title":"Issue created by PyGithub","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"closed_at":null,"labels":[],"closed_by":null,"html_url":"https://github.com/jacquev6/PyGithub/issues/28","created_at":"2012-05-19T10:38:23Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4653757,"milestone":null} +{"assignee":null,"updated_at":"2012-05-19T10:38:23Z","body":null,"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","comments":0,"number":28,"title":"Issue created by PyGithub","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"closed_at":null,"labels":[],"closed_by":null,"html_url":"https://github.com/PyGithub/PyGithub/issues/28","created_at":"2012-05-19T10:38:23Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4653757,"milestone":null} diff --git a/tests/ReplayData/Issue.testGetComments.txt b/tests/ReplayData/Issue.testGetComments.txt index 19d4cf5022..9fa5aee9ac 100644 --- a/tests/ReplayData/Issue.testGetComments.txt +++ b/tests/ReplayData/Issue.testGetComments.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/comments +/repos/PyGithub/PyGithub/issues/28/comments {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4984'), ('content-length', '1820'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"bab5fb77d873847d153979f7fcd7e0f1"'), ('date', 'Sat, 26 May 2012 09:43:03 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-05-01T22:03:59Z","body":"Thank you for the suggestion. It's somehow related to https://github.com/jacquev6/PyGithub/issues/6, even if I have not described it in details.\r\n\r\nI'm currently doing a very deep rewrite, which will lead to much more readable stack traces in case of exceptions, and I will include more details about the error. I may also be able to detect type errors *before* sending the request to github.\r\n\r\nBy the way, I'm very glad to hear that you have solved a real-life use case using PyGithub :-)","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5449237","id":5449237,"created_at":"2012-05-01T22:03:59Z"},{"user":{"gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/roskakori","login":"roskakori","id":328726},"updated_at":"2012-05-04T19:23:57Z","body":"Good to hear you are already working on this in #6, so I suppose this can be tagged as duplicate and be closed.\r\n\r\nBTW, I cleaned up my script to convert Trac tickets to Github issues and uploaded it to PyPI: http://pypi.python.org/pypi/tratihubis/. It seems that at least some people find it useful, so hopefully it helps to popularize PyGithub a little.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5518272","id":5518272,"created_at":"2012-05-04T19:23:57Z"}] +[{"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-05-01T22:03:59Z","body":"Thank you for the suggestion. It's somehow related to https://github.com/PyGithub/PyGithub/issues/6, even if I have not described it in details.\r\n\r\nI'm currently doing a very deep rewrite, which will lead to much more readable stack traces in case of exceptions, and I will include more details about the error. I may also be able to detect type errors *before* sending the request to github.\r\n\r\nBy the way, I'm very glad to hear that you have solved a real-life use case using PyGithub :-)","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5449237","id":5449237,"created_at":"2012-05-01T22:03:59Z"},{"user":{"gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/roskakori","login":"roskakori","id":328726},"updated_at":"2012-05-04T19:23:57Z","body":"Good to hear you are already working on this in #6, so I suppose this can be tagged as duplicate and be closed.\r\n\r\nBTW, I cleaned up my script to convert Trac tickets to Github issues and uploaded it to PyPI: http://pypi.python.org/pypi/tratihubis/. It seems that at least some people find it useful, so hopefully it helps to popularize PyGithub a little.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5518272","id":5518272,"created_at":"2012-05-04T19:23:57Z"}] diff --git a/tests/ReplayData/Issue.testGetCommentsSince.txt b/tests/ReplayData/Issue.testGetCommentsSince.txt index 9dd15f2852..44bb346857 100644 --- a/tests/ReplayData/Issue.testGetCommentsSince.txt +++ b/tests/ReplayData/Issue.testGetCommentsSince.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/comments?since=2012-05-26T13%3A59%3A33Z +/repos/PyGithub/PyGithub/issues/28/comments?since=2012-05-26T13%3A59%3A33Z {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4984'), ('content-length', '1820'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"bab5fb77d873847d153979f7fcd7e0f1"'), ('date', 'Sat, 26 May 2012 09:43:03 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-05-01T22:03:59Z","body":"Thank you for the suggestion. It's somehow related to https://github.com/jacquev6/PyGithub/issues/6, even if I have not described it in details.\r\n\r\nI'm currently doing a very deep rewrite, which will lead to much more readable stack traces in case of exceptions, and I will include more details about the error. I may also be able to detect type errors *before* sending the request to github.\r\n\r\nBy the way, I'm very glad to hear that you have solved a real-life use case using PyGithub :-)","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5449237","id":5449237,"created_at":"2012-05-01T22:03:59Z"},{"user":{"gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/roskakori","login":"roskakori","id":328726},"updated_at":"2012-05-04T19:23:57Z","body":"Good to hear you are already working on this in #6, so I suppose this can be tagged as duplicate and be closed.\r\n\r\nBTW, I cleaned up my script to convert Trac tickets to Github issues and uploaded it to PyPI: http://pypi.python.org/pypi/tratihubis/. It seems that at least some people find it useful, so hopefully it helps to popularize PyGithub a little.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5518272","id":5518272,"created_at":"2012-05-04T19:23:57Z"}] +[{"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-05-01T22:03:59Z","body":"Thank you for the suggestion. It's somehow related to https://github.com/PyGithub/PyGithub/issues/6, even if I have not described it in details.\r\n\r\nI'm currently doing a very deep rewrite, which will lead to much more readable stack traces in case of exceptions, and I will include more details about the error. I may also be able to detect type errors *before* sending the request to github.\r\n\r\nBy the way, I'm very glad to hear that you have solved a real-life use case using PyGithub :-)","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5449237","id":5449237,"created_at":"2012-05-01T22:03:59Z"},{"user":{"gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/roskakori","login":"roskakori","id":328726},"updated_at":"2012-05-04T19:23:57Z","body":"Good to hear you are already working on this in #6, so I suppose this can be tagged as duplicate and be closed.\r\n\r\nBTW, I cleaned up my script to convert Trac tickets to Github issues and uploaded it to PyPI: http://pypi.python.org/pypi/tratihubis/. It seems that at least some people find it useful, so hopefully it helps to popularize PyGithub a little.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5518272","id":5518272,"created_at":"2012-05-04T19:23:57Z"}] diff --git a/tests/ReplayData/Issue.testGetEvents.txt b/tests/ReplayData/Issue.testGetEvents.txt index a5c75ca3bf..e3048e2fe0 100644 --- a/tests/ReplayData/Issue.testGetEvents.txt +++ b/tests/ReplayData/Issue.testGetEvents.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/events +/repos/PyGithub/PyGithub/issues/28/events {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4967'), ('content-length', '945'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c22776de31a71795b5374ee3c61f51bd"'), ('date', 'Sun, 20 May 2012 12:02:39 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15819975","commit_id":null,"created_at":"2012-05-19T10:38:23Z","event":"subscribed","id":15819975,"actor":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15820048","commit_id":null,"created_at":"2012-05-19T10:42:25Z","event":"assigned","id":15820048,"actor":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146}}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/15819975","commit_id":null,"created_at":"2012-05-19T10:38:23Z","event":"subscribed","id":15819975,"actor":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/15820048","commit_id":null,"created_at":"2012-05-19T10:42:25Z","event":"assigned","id":15820048,"actor":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146}}] diff --git a/tests/ReplayData/Issue.testGetLabels.txt b/tests/ReplayData/Issue.testGetLabels.txt index 0a8605b94a..353bef91ab 100644 --- a/tests/ReplayData/Issue.testGetLabels.txt +++ b/tests/ReplayData/Issue.testGetLabels.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/labels +/repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c9f9beccb03030beaf7b80927da6fef6"'), ('date', 'Sun, 27 May 2012 08:56:31 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}] diff --git a/tests/ReplayData/Issue.testGetReactions.txt b/tests/ReplayData/Issue.testGetReactions.txt index 8fde7eca0e..ea2615bd75 100644 --- a/tests/ReplayData/Issue.testGetReactions.txt +++ b/tests/ReplayData/Issue.testGetReactions.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/reactions +/repos/PyGithub/PyGithub/issues/28/reactions {'Authorization': 'Basic login_and_password_removed', 'Accept': 'application/vnd.github.squirrel-girl-preview', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Issue.testGetTimeline.txt b/tests/ReplayData/Issue.testGetTimeline.txt index eaee0e08e2..15441e6ab5 100644 --- a/tests/ReplayData/Issue.testGetTimeline.txt +++ b/tests/ReplayData/Issue.testGetTimeline.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28/timeline +/repos/PyGithub/PyGithub/issues/28/timeline {'Authorization': 'Basic login_and_password_removed', 'Accept': 'application/vnd.github.mockingbird-preview', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Issue.testLock.txt b/tests/ReplayData/Issue.testLock.txt index b16b09634f..2edd19128e 100644 --- a/tests/ReplayData/Issue.testLock.txt +++ b/tests/ReplayData/Issue.testLock.txt @@ -2,7 +2,7 @@ https PUT api.github.com None -/repos/jacquev6/PyGithub/issues/28/lock +/repos/PyGithub/PyGithub/issues/28/lock {'Content-Type': 'application/json', 'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"lock_reason": "resolved"} 204 diff --git a/tests/ReplayData/Issue.testUnlock.txt b/tests/ReplayData/Issue.testUnlock.txt index 1d537d596c..e79bf886a2 100644 --- a/tests/ReplayData/Issue.testUnlock.txt +++ b/tests/ReplayData/Issue.testUnlock.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/28/lock +/repos/PyGithub/PyGithub/issues/28/lock {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/Issue174.setUp.txt b/tests/ReplayData/Issue174.setUp.txt index 864bc64a79..6724090196 100644 --- a/tests/ReplayData/Issue174.setUp.txt +++ b/tests/ReplayData/Issue174.setUp.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/twitter/bootstrap +/repos/twbs/bootstrap {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4999'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '5720'), ('server', 'GitHub.com'), ('last-modified', 'Tue, 18 Jun 2013 19:52:37 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"525271e07b1b6c94fd4a0633d61cd3c6"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 18 Jun 2013 20:10:16 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8')] -{"id":2126244,"name":"bootstrap","full_name":"twitter/bootstrap","owner":{"login":"twitter","id":50278,"avatar_url":"https://secure.gravatar.com/avatar/2f4a8254d032a8ec5e4c48d461e54fcc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"2f4a8254d032a8ec5e4c48d461e54fcc","url":"https://api.github.com/users/twitter","html_url":"https://github.com/twitter","followers_url":"https://api.github.com/users/twitter/followers","following_url":"https://api.github.com/users/twitter/following{/other_user}","gists_url":"https://api.github.com/users/twitter/gists{/gist_id}","starred_url":"https://api.github.com/users/twitter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twitter/subscriptions","organizations_url":"https://api.github.com/users/twitter/orgs","repos_url":"https://api.github.com/users/twitter/repos","events_url":"https://api.github.com/users/twitter/events{/privacy}","received_events_url":"https://api.github.com/users/twitter/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/twitter/bootstrap","description":"Sleek, intuitive, and powerful front-end framework for faster and easier web development.","fork":false,"url":"https://api.github.com/repos/twitter/bootstrap","forks_url":"https://api.github.com/repos/twitter/bootstrap/forks","keys_url":"https://api.github.com/repos/twitter/bootstrap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/twitter/bootstrap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/twitter/bootstrap/teams","hooks_url":"https://api.github.com/repos/twitter/bootstrap/hooks","issue_events_url":"https://api.github.com/repos/twitter/bootstrap/issues/events{/number}","events_url":"https://api.github.com/repos/twitter/bootstrap/events","assignees_url":"https://api.github.com/repos/twitter/bootstrap/assignees{/user}","branches_url":"https://api.github.com/repos/twitter/bootstrap/branches{/branch}","tags_url":"https://api.github.com/repos/twitter/bootstrap/tags","blobs_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/twitter/bootstrap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/twitter/bootstrap/git/refs{/sha}","trees_url":"https://api.github.com/repos/twitter/bootstrap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/twitter/bootstrap/statuses/{sha}","languages_url":"https://api.github.com/repos/twitter/bootstrap/languages","stargazers_url":"https://api.github.com/repos/twitter/bootstrap/stargazers","contributors_url":"https://api.github.com/repos/twitter/bootstrap/contributors","subscribers_url":"https://api.github.com/repos/twitter/bootstrap/subscribers","subscription_url":"https://api.github.com/repos/twitter/bootstrap/subscription","commits_url":"https://api.github.com/repos/twitter/bootstrap/commits{/sha}","git_commits_url":"https://api.github.com/repos/twitter/bootstrap/git/commits{/sha}","comments_url":"https://api.github.com/repos/twitter/bootstrap/comments{/number}","issue_comment_url":"https://api.github.com/repos/twitter/bootstrap/issues/comments/{number}","contents_url":"https://api.github.com/repos/twitter/bootstrap/contents/{+path}","compare_url":"https://api.github.com/repos/twitter/bootstrap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/twitter/bootstrap/merges","archive_url":"https://api.github.com/repos/twitter/bootstrap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/twitter/bootstrap/downloads","issues_url":"https://api.github.com/repos/twitter/bootstrap/issues{/number}","pulls_url":"https://api.github.com/repos/twitter/bootstrap/pulls{/number}","milestones_url":"https://api.github.com/repos/twitter/bootstrap/milestones{/number}","notifications_url":"https://api.github.com/repos/twitter/bootstrap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/twitter/bootstrap/labels{/name}","created_at":"2011-07-29T21:19:00Z","updated_at":"2013-06-18T19:52:37Z","pushed_at":"2013-06-18T18:16:49Z","git_url":"git://github.com/twitter/bootstrap.git","ssh_url":"git@github.com:twitter/bootstrap.git","clone_url":"https://github.com/twitter/bootstrap.git","svn_url":"https://github.com/twitter/bootstrap","homepage":"http://twitter.github.io/bootstrap/","size":3744,"watchers_count":51744,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":16569,"mirror_url":null,"open_issues_count":184,"forks":16569,"open_issues":184,"watchers":51744,"master_branch":"master","default_branch":"master","permissions":{"admin":false,"push":false,"pull":true},"network_count":16569,"organization":{"login":"twitter","id":50278,"avatar_url":"https://secure.gravatar.com/avatar/2f4a8254d032a8ec5e4c48d461e54fcc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"2f4a8254d032a8ec5e4c48d461e54fcc","url":"https://api.github.com/users/twitter","html_url":"https://github.com/twitter","followers_url":"https://api.github.com/users/twitter/followers","following_url":"https://api.github.com/users/twitter/following{/other_user}","gists_url":"https://api.github.com/users/twitter/gists{/gist_id}","starred_url":"https://api.github.com/users/twitter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twitter/subscriptions","organizations_url":"https://api.github.com/users/twitter/orgs","repos_url":"https://api.github.com/users/twitter/repos","events_url":"https://api.github.com/users/twitter/events{/privacy}","received_events_url":"https://api.github.com/users/twitter/received_events","type":"Organization"}} +[('Date', 'Thu, 30 Jan 2025 19:21:50 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"b5164482798946d095a3aeccdecb16c07f5320f165ed6f670cf8eee78f6aaa10"'), ('Last-Modified', 'Thu, 30 Jan 2025 16:47:38 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4990'), ('X-RateLimit-Reset', '1738267912'), ('X-RateLimit-Used', '10'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'C0A8:35353A:5540C0:57C154:679BD14E')] +{"id":2126244,"node_id":"MDEwOlJlcG9zaXRvcnkyMTI2MjQ0","name":"bootstrap","full_name":"twbs/bootstrap","private":false,"owner":{"login":"twbs","id":2918581,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI5MTg1ODE=","avatar_url":"https://avatars.githubusercontent.com/u/2918581?v=4","gravatar_id":"","url":"https://api.github.com/users/twbs","html_url":"https://github.com/twbs","followers_url":"https://api.github.com/users/twbs/followers","following_url":"https://api.github.com/users/twbs/following{/other_user}","gists_url":"https://api.github.com/users/twbs/gists{/gist_id}","starred_url":"https://api.github.com/users/twbs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twbs/subscriptions","organizations_url":"https://api.github.com/users/twbs/orgs","repos_url":"https://api.github.com/users/twbs/repos","events_url":"https://api.github.com/users/twbs/events{/privacy}","received_events_url":"https://api.github.com/users/twbs/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/twbs/bootstrap","description":"The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.","fork":false,"url":"https://api.github.com/repos/twbs/bootstrap","forks_url":"https://api.github.com/repos/twbs/bootstrap/forks","keys_url":"https://api.github.com/repos/twbs/bootstrap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/twbs/bootstrap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/twbs/bootstrap/teams","hooks_url":"https://api.github.com/repos/twbs/bootstrap/hooks","issue_events_url":"https://api.github.com/repos/twbs/bootstrap/issues/events{/number}","events_url":"https://api.github.com/repos/twbs/bootstrap/events","assignees_url":"https://api.github.com/repos/twbs/bootstrap/assignees{/user}","branches_url":"https://api.github.com/repos/twbs/bootstrap/branches{/branch}","tags_url":"https://api.github.com/repos/twbs/bootstrap/tags","blobs_url":"https://api.github.com/repos/twbs/bootstrap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/twbs/bootstrap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/twbs/bootstrap/git/refs{/sha}","trees_url":"https://api.github.com/repos/twbs/bootstrap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/twbs/bootstrap/statuses/{sha}","languages_url":"https://api.github.com/repos/twbs/bootstrap/languages","stargazers_url":"https://api.github.com/repos/twbs/bootstrap/stargazers","contributors_url":"https://api.github.com/repos/twbs/bootstrap/contributors","subscribers_url":"https://api.github.com/repos/twbs/bootstrap/subscribers","subscription_url":"https://api.github.com/repos/twbs/bootstrap/subscription","commits_url":"https://api.github.com/repos/twbs/bootstrap/commits{/sha}","git_commits_url":"https://api.github.com/repos/twbs/bootstrap/git/commits{/sha}","comments_url":"https://api.github.com/repos/twbs/bootstrap/comments{/number}","issue_comment_url":"https://api.github.com/repos/twbs/bootstrap/issues/comments{/number}","contents_url":"https://api.github.com/repos/twbs/bootstrap/contents/{+path}","compare_url":"https://api.github.com/repos/twbs/bootstrap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/twbs/bootstrap/merges","archive_url":"https://api.github.com/repos/twbs/bootstrap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/twbs/bootstrap/downloads","issues_url":"https://api.github.com/repos/twbs/bootstrap/issues{/number}","pulls_url":"https://api.github.com/repos/twbs/bootstrap/pulls{/number}","milestones_url":"https://api.github.com/repos/twbs/bootstrap/milestones{/number}","notifications_url":"https://api.github.com/repos/twbs/bootstrap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/twbs/bootstrap/labels{/name}","releases_url":"https://api.github.com/repos/twbs/bootstrap/releases{/id}","deployments_url":"https://api.github.com/repos/twbs/bootstrap/deployments","created_at":"2011-07-29T21:19:00Z","updated_at":"2025-01-30T16:47:38Z","pushed_at":"2025-01-30T15:22:31Z","git_url":"git://github.com/twbs/bootstrap.git","ssh_url":"git@github.com:twbs/bootstrap.git","clone_url":"https://github.com/twbs/bootstrap.git","svn_url":"https://github.com/twbs/bootstrap","homepage":"https://getbootstrap.com","size":248657,"stargazers_count":171281,"watchers_count":171281,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"has_discussions":true,"forks_count":78987,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":673,"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":["bootstrap","css","css-framework","html","javascript","sass","scss"],"visibility":"public","forks":78987,"open_issues":673,"watchers":171281,"default_branch":"main","permissions":{"admin":false,"maintain":false,"push":false,"triage":false,"pull":true},"temp_clone_token":"","custom_properties":{},"organization":{"login":"twbs","id":2918581,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI5MTg1ODE=","avatar_url":"https://avatars.githubusercontent.com/u/2918581?v=4","gravatar_id":"","url":"https://api.github.com/users/twbs","html_url":"https://github.com/twbs","followers_url":"https://api.github.com/users/twbs/followers","following_url":"https://api.github.com/users/twbs/following{/other_user}","gists_url":"https://api.github.com/users/twbs/gists{/gist_id}","starred_url":"https://api.github.com/users/twbs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twbs/subscriptions","organizations_url":"https://api.github.com/users/twbs/orgs","repos_url":"https://api.github.com/users/twbs/repos","events_url":"https://api.github.com/users/twbs/events{/privacy}","received_events_url":"https://api.github.com/users/twbs/received_events","type":"Organization","user_view_type":"public","site_admin":false},"network_count":78987,"subscribers_count":6718} diff --git a/tests/ReplayData/Issue174.testGetDirContentsWhithHttpRedirect.txt b/tests/ReplayData/Issue174.testGetDirContentsWhithHttpRedirect.txt deleted file mode 100644 index 1c6a19b598..0000000000 --- a/tests/ReplayData/Issue174.testGetDirContentsWhithHttpRedirect.txt +++ /dev/null @@ -1,21 +0,0 @@ -https -GET -api.github.com -None -/repos/twitter/bootstrap/contents/js/ -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -302 -[('status', '302 Found'), ('x-ratelimit-remaining', '4998'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('vary', 'Accept-Encoding'), ('content-length', '0'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://api.github.com/repositories/2126244/contents/js'), ('access-control-allow-credentials', 'true'), ('date', 'Tue, 18 Jun 2013 20:10:18 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'text/html;charset=utf-8')] - - -https -GET -api.github.com -None -/repositories/2126244/contents/js -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4997'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '10844'), ('server', 'GitHub.com'), ('last-modified', 'Tue, 18 Jun 2013 19:52:37 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"525271e07b1b6c94fd4a0633d61cd3c6"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 18 Jun 2013 20:10:19 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8')] -[{"name":".jshintrc","path":"js/.jshintrc","sha":"e0722690bd73b3195d87577aab3bba151a85f7e0","size":232,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/.jshintrc?ref=master","html_url":"https://github.com/twitter/bootstrap/blob/master/js/.jshintrc","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/e0722690bd73b3195d87577aab3bba151a85f7e0","type":"file","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/.jshintrc?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/e0722690bd73b3195d87577aab3bba151a85f7e0","html":"https://github.com/twitter/bootstrap/blob/master/js/.jshintrc"}},{"name":"bootstrap-affix.js","path":"js/bootstrap-affix.js","sha":"91c9ced13d00b36f4f8fa7573014945608a8fe65","size":3483,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-affix.js?ref=master","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-affix.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/91c9ced13d00b36f4f8fa7573014945608a8fe65","type":"file","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-affix.js?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/91c9ced13d00b36f4f8fa7573014945608a8fe65","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-affix.js"}},{"name":"bootstrap-alert.js","path":"js/bootstrap-alert.js","sha":"0cefe5fc5ecd7df06f6c9cb37261fce000d9408d","size":2524,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-alert.js?ref=master","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-alert.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/0cefe5fc5ecd7df06f6c9cb37261fce000d9408d","type":"file","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-alert.js?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/0cefe5fc5ecd7df06f6c9cb37261fce000d9408d","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-alert.js"}},{"name":"bootstrap-button.js","path":"js/bootstrap-button.js","sha":"ce45991644b3d9fc5f3b563791999e6862dedbcb","size":2841,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-button.js?ref=master","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-button.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/ce45991644b3d9fc5f3b563791999e6862dedbcb","type":"file","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-button.js?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/ce45991644b3d9fc5f3b563791999e6862dedbcb","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-button.js"}},{"name":"bootstrap-carousel.js","path":"js/bootstrap-carousel.js","sha":"476494ad6ad1ae6418ae4131bac416230f4dc9bb","size":6057,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-carousel.js?ref=master","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-carousel.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/476494ad6ad1ae6418ae4131bac416230f4dc9bb","type":"file","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-carousel.js?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/476494ad6ad1ae6418ae4131bac416230f4dc9bb","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-carousel.js"}},{"name":"bootstrap-collapse.js","path":"js/bootstrap-collapse.js","sha":"74a73a890a2feb65103984910dcd571c36003669","size":4735,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-collapse.js?ref=master","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-collapse.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/74a73a890a2feb65103984910dcd571c36003669","type":"file","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-collapse.js?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/74a73a890a2feb65103984910dcd571c36003669","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-collapse.js"}},{"name":"bootstrap-dropdown.js","path":"js/bootstrap-dropdown.js","sha":"6cc1221133f073a2b5602124cdaf8cc230f68c2c","size":4413,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-dropdown.js?ref=master","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-dropdown.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/6cc1221133f073a2b5602124cdaf8cc230f68c2c","type":"file","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-dropdown.js?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/6cc1221133f073a2b5602124cdaf8cc230f68c2c","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-dropdown.js"}},{"name":"bootstrap-modal.js","path":"js/bootstrap-modal.js","sha":"c3648d8b7c38bba6a881ba3e0b58991af219de5a","size":6656,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-modal.js?ref=master","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-modal.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/c3648d8b7c38bba6a881ba3e0b58991af219de5a","type":"file","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-modal.js?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/c3648d8b7c38bba6a881ba3e0b58991af219de5a","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-modal.js"}},{"name":"bootstrap-popover.js","path":"js/bootstrap-popover.js","sha":"e6a23d21045816cbf2b88b881cfb70242e774817","size":3115,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-popover.js?ref=master","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-popover.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/e6a23d21045816cbf2b88b881cfb70242e774817","type":"file","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-popover.js?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/e6a23d21045816cbf2b88b881cfb70242e774817","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-popover.js"}},{"name":"bootstrap-scrollspy.js","path":"js/bootstrap-scrollspy.js","sha":"7dd60c4262c70df806072910d175d8b45d0c302f","size":4655,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-scrollspy.js?ref=master","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-scrollspy.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/7dd60c4262c70df806072910d175d8b45d0c302f","type":"file","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-scrollspy.js?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/7dd60c4262c70df806072910d175d8b45d0c302f","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-scrollspy.js"}},{"name":"bootstrap-tab.js","path":"js/bootstrap-tab.js","sha":"a5161515acf4d812dd26f676a4c1cdae4996e269","size":3496,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-tab.js?ref=master","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-tab.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/a5161515acf4d812dd26f676a4c1cdae4996e269","type":"file","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-tab.js?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/a5161515acf4d812dd26f676a4c1cdae4996e269","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-tab.js"}},{"name":"bootstrap-tooltip.js","path":"js/bootstrap-tooltip.js","sha":"a3bbd580bba946f3fa3dd7a9bd65989597c86759","size":9911,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-tooltip.js?ref=master","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-tooltip.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/a3bbd580bba946f3fa3dd7a9bd65989597c86759","type":"file","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-tooltip.js?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/a3bbd580bba946f3fa3dd7a9bd65989597c86759","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-tooltip.js"}},{"name":"bootstrap-transition.js","path":"js/bootstrap-transition.js","sha":"e12cf6e5af81ad88e591f353d86cb00894d5b29f","size":1756,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-transition.js?ref=master","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-transition.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/e12cf6e5af81ad88e591f353d86cb00894d5b29f","type":"file","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-transition.js?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/e12cf6e5af81ad88e591f353d86cb00894d5b29f","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-transition.js"}},{"name":"bootstrap-typeahead.js","path":"js/bootstrap-typeahead.js","sha":"abc48d5056e13ca3371e1486029e67815eff048a","size":8320,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-typeahead.js?ref=master","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-typeahead.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/abc48d5056e13ca3371e1486029e67815eff048a","type":"file","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-typeahead.js?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/abc48d5056e13ca3371e1486029e67815eff048a","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-typeahead.js"}},{"name":"tests","path":"js/tests","sha":"bac460d88cf867a9382be45673ebbbdcb2ef7f41","size":0,"url":"https://api.github.com/repos/twitter/bootstrap/contents/js/tests?ref=master","html_url":"https://github.com/twitter/bootstrap/tree/master/js/tests","git_url":"https://api.github.com/repos/twitter/bootstrap/git/trees/bac460d88cf867a9382be45673ebbbdcb2ef7f41","type":"dir","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/tests?ref=master","git":"https://api.github.com/repos/twitter/bootstrap/git/trees/bac460d88cf867a9382be45673ebbbdcb2ef7f41","html":"https://github.com/twitter/bootstrap/tree/master/js/tests"}}] diff --git a/tests/ReplayData/Issue174.testGetDirContentsWithHttpRedirect.txt b/tests/ReplayData/Issue174.testGetDirContentsWithHttpRedirect.txt new file mode 100644 index 0000000000..8db6057b05 --- /dev/null +++ b/tests/ReplayData/Issue174.testGetDirContentsWithHttpRedirect.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/repos/twbs/bootstrap/contents/js/ +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +302 +[('Date', 'Thu, 30 Jan 2025 19:21:50 GMT'), ('Content-Type', 'text/html;charset=utf-8'), ('Content-Length', '0'), ('Location', 'https://api.github.com/repositories/2126244/contents/js'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4989'), ('X-RateLimit-Reset', '1738267912'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'C0B0:184863:132465:13D9FF:679BD14E')] + + +https +GET +api.github.com +None +/repositories/2126244/contents/js +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Thu, 30 Jan 2025 19:21:51 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"cb86817edf19178bfef1f187f05c7d5df1e4abaf"'), ('Last-Modified', 'Thu, 30 Jan 2025 16:47:38 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4988'), ('X-RateLimit-Reset', '1738267912'), ('X-RateLimit-Used', '12'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'C0B8:BAEBA:148C0A:1548C6:679BD14E')] +[{"name":"dist","path":"js/dist","sha":"14f77decb1abc37e8647ef373698a08396e68af6","size":0,"url":"https://api.github.com/repos/twbs/bootstrap/contents/js/dist?ref=main","html_url":"https://github.com/twbs/bootstrap/tree/main/js/dist","git_url":"https://api.github.com/repos/twbs/bootstrap/git/trees/14f77decb1abc37e8647ef373698a08396e68af6","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/twbs/bootstrap/contents/js/dist?ref=main","git":"https://api.github.com/repos/twbs/bootstrap/git/trees/14f77decb1abc37e8647ef373698a08396e68af6","html":"https://github.com/twbs/bootstrap/tree/main/js/dist"}},{"name":"index.esm.js","path":"js/index.esm.js","sha":"155d9fb6a59a98c706939cb6ec3f4dc3e1ed7944","size":907,"url":"https://api.github.com/repos/twbs/bootstrap/contents/js/index.esm.js?ref=main","html_url":"https://github.com/twbs/bootstrap/blob/main/js/index.esm.js","git_url":"https://api.github.com/repos/twbs/bootstrap/git/blobs/155d9fb6a59a98c706939cb6ec3f4dc3e1ed7944","download_url":"https://raw.githubusercontent.com/twbs/bootstrap/main/js/index.esm.js","type":"file","_links":{"self":"https://api.github.com/repos/twbs/bootstrap/contents/js/index.esm.js?ref=main","git":"https://api.github.com/repos/twbs/bootstrap/git/blobs/155d9fb6a59a98c706939cb6ec3f4dc3e1ed7944","html":"https://github.com/twbs/bootstrap/blob/main/js/index.esm.js"}},{"name":"index.umd.js","path":"js/index.umd.js","sha":"a33df74657ff5a73a02430a438b37d6ada453cc8","size":874,"url":"https://api.github.com/repos/twbs/bootstrap/contents/js/index.umd.js?ref=main","html_url":"https://github.com/twbs/bootstrap/blob/main/js/index.umd.js","git_url":"https://api.github.com/repos/twbs/bootstrap/git/blobs/a33df74657ff5a73a02430a438b37d6ada453cc8","download_url":"https://raw.githubusercontent.com/twbs/bootstrap/main/js/index.umd.js","type":"file","_links":{"self":"https://api.github.com/repos/twbs/bootstrap/contents/js/index.umd.js?ref=main","git":"https://api.github.com/repos/twbs/bootstrap/git/blobs/a33df74657ff5a73a02430a438b37d6ada453cc8","html":"https://github.com/twbs/bootstrap/blob/main/js/index.umd.js"}},{"name":"src","path":"js/src","sha":"5981281c5022b4b68807fe569ceba495febfcdc1","size":0,"url":"https://api.github.com/repos/twbs/bootstrap/contents/js/src?ref=main","html_url":"https://github.com/twbs/bootstrap/tree/main/js/src","git_url":"https://api.github.com/repos/twbs/bootstrap/git/trees/5981281c5022b4b68807fe569ceba495febfcdc1","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/twbs/bootstrap/contents/js/src?ref=main","git":"https://api.github.com/repos/twbs/bootstrap/git/trees/5981281c5022b4b68807fe569ceba495febfcdc1","html":"https://github.com/twbs/bootstrap/tree/main/js/src"}},{"name":"tests","path":"js/tests","sha":"cc3cb63e0e1a4934a54e55747f777f7785cd9733","size":0,"url":"https://api.github.com/repos/twbs/bootstrap/contents/js/tests?ref=main","html_url":"https://github.com/twbs/bootstrap/tree/main/js/tests","git_url":"https://api.github.com/repos/twbs/bootstrap/git/trees/cc3cb63e0e1a4934a54e55747f777f7785cd9733","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/twbs/bootstrap/contents/js/tests?ref=main","git":"https://api.github.com/repos/twbs/bootstrap/git/trees/cc3cb63e0e1a4934a54e55747f777f7785cd9733","html":"https://github.com/twbs/bootstrap/tree/main/js/tests"}}] diff --git a/tests/ReplayData/IssueComment.setUp.txt b/tests/ReplayData/IssueComment.setUp.txt index 8d43fffc16..de7ed3576a 100644 --- a/tests/ReplayData/IssueComment.setUp.txt +++ b/tests/ReplayData/IssueComment.setUp.txt @@ -2,42 +2,31 @@ https GET api.github.com None -/user +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4993'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"9459b6e1e4805aad5e10d13344d6ffbf"'), ('date', 'Sat, 26 May 2012 14:59:39 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"public_repos":11,"type":"User","hireable":false,"disk_usage":17080,"blog":"http://vincent-jacques.net","bio":"","url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","total_private_repos":5,"plan":{"private_repos":5,"collaborators":1,"name":"micro","space":614400},"owned_private_repos":5,"company":"Criteo","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","collaborators":0,"public_gists":3,"email":"vincent@vincent-jacques.net","followers":13,"name":"Vincent Jacques","private_gists":5,"created_at":"2010-07-09T06:10:06Z","location":"Paris, France","id":327146,"following":24,"html_url":"https://github.com/jacquev6"} +[('Date', 'Fri, 03 Jan 2025 20:15:21 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"f5cc8602b1810af03dbb6c6362f001a1e6360ddab7e5169b030d5cb0e172da51"'), ('Last-Modified', 'Fri, 03 Jan 2025 18:50:01 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '4'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'E454:47716:2474086A:25582295:67784559')] +{"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","user_view_type":"public","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":"2025-01-03T18:50:01Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7117,"watchers_count":7117,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":356,"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":1793,"open_issues":356,"watchers":7117,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"PR_BODY","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"enabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":111} https GET api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub/issues/28 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"5dc65a168cf4d957347ea04221cd5102"'), ('date', 'Sat, 26 May 2012 14:59:39 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":13,"updated_at":"2012-05-26T11:25:48Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":2,"size":412,"private":false,"open_issues":15,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-26T11:25:48Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"git_url":"git://github.com/jacquev6/PyGithub.git","html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"} +[('Date', 'Fri, 03 Jan 2025 20:15:22 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"4f9f2e3ae3fbedf89903cc5b9b41c547de19b5604d701a91684de32048920575"'), ('Last-Modified', 'Sun, 20 Oct 2024 07:14:52 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4995'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '5'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'E45E:7CD91:22BE540A:23A26FDD:67784559')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28/events","html_url":"https://github.com/PyGithub/PyGithub/issues/28","id":4653757,"node_id":"MDU6SXNzdWU0NjUzNzU3","number":28,"title":"Issue created by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":3330121,"node_id":"MDU6TGFiZWwzMzMwMTIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/bug","name":"bug","color":"e10c02","default":true,"description":null},{"id":3376821,"node_id":"MDU6TGFiZWwzMzc2ODIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/question","name":"question","color":"02e10c","default":true,"description":null}],"state":"closed","locked":false,"assignee":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"assignees":[{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/8","html_url":"https://github.com/PyGithub/PyGithub/milestone/8","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/8/labels","id":150933,"node_id":"MDk6TWlsZXN0b25lMTUwOTMz","number":8,"title":"Version 1.4","description":"","creator":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"open_issues":0,"closed_issues":3,"state":"closed","created_at":"2012-07-24T16:04:28Z","updated_at":"2012-09-11T18:52:13Z","due_on":"2012-08-05T07:00:00Z","closed_at":"2012-08-04T06:11:43Z"},"comments":3,"created_at":"2012-05-19T10:38:23Z","updated_at":"2019-05-03T09:44:22Z","closed_at":"2012-05-26T14:59:33Z","author_association":"MEMBER","active_lock_reason":null,"body":"Body edited by PyGithub\n","closed_by":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28/reactions","total_count":2,"+1":0,"-1":0,"laugh":0,"hooray":2,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28/timeline","performed_via_github_app":null,"state_reason":"completed"} https GET api.github.com None -/repos/jacquev6/PyGithub/issues/28 +/repos/PyGithub/PyGithub/issues/comments/20227753 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4991'), ('content-length', '2258'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"071cb2b8bfef81f56b94d7d9397e6aa4"'), ('date', 'Sat, 26 May 2012 14:59:40 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546,"closed_issues":3},"number":28,"closed_by":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":4653757,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/28"} - -https -GET -api.github.com -None -/repos/jacquev6/PyGithub/issues/comments/5808311 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('content-length', '506'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4fa1a8e8e534bcc93123ea6ee8fd4284"'), ('date', 'Sun, 20 May 2012 11:50:56 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"node_id": "IC_kwDOGpsAJ86Gecc_","updated_at":"2012-05-20T11:46:42Z","body":"Comment created by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5808311","created_at":"2012-05-20T11:46:42Z","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":5808311,"html_url":"https://github.com/jacquev6/PyGithub/issues/28#issuecomment-5808311","reactions":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5808311/reactions","total_count":2,"+1":1,"-1":0,"laugh":0,"hooray":1,"confused":0,"heart":0,"rocket":0,"eyes":0}} +[('Date', 'Fri, 03 Jan 2025 20:15:22 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"06c63805d93f4e1b6dbbaeaa1b30b3ccf26cdab452e95278b3926f453bca2426"'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4994'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '6'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'E468:5A83E:2199C6B2:227DE3C3:6778455A')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/20227753","html_url":"https://github.com/PyGithub/PyGithub/issues/28#issuecomment-20227753","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","id":20227753,"node_id":"MDEyOklzc3VlQ29tbWVudDIwMjI3NzUz","user":{"login":"stuglaser","id":1527117,"node_id":"MDQ6VXNlcjE1MjcxMTc=","avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=4","gravatar_id":"","url":"https://api.github.com/users/stuglaser","html_url":"https://github.com/stuglaser","followers_url":"https://api.github.com/users/stuglaser/followers","following_url":"https://api.github.com/users/stuglaser/following{/other_user}","gists_url":"https://api.github.com/users/stuglaser/gists{/gist_id}","starred_url":"https://api.github.com/users/stuglaser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stuglaser/subscriptions","organizations_url":"https://api.github.com/users/stuglaser/orgs","repos_url":"https://api.github.com/users/stuglaser/repos","events_url":"https://api.github.com/users/stuglaser/events{/privacy}","received_events_url":"https://api.github.com/users/stuglaser/received_events","type":"User","user_view_type":"public","site_admin":false},"created_at":"2013-06-29T10:31:38Z","updated_at":"2013-06-29T10:31:38Z","author_association":"CONTRIBUTOR","body":"Comment created by PyGithub\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/20227753/reactions","total_count":2,"+1":1,"-1":0,"laugh":0,"hooray":1,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null} diff --git a/tests/ReplayData/IssueComment.testCreateReaction.txt b/tests/ReplayData/IssueComment.testCreateReaction.txt index 0d35109bb8..24d2df37a9 100644 --- a/tests/ReplayData/IssueComment.testCreateReaction.txt +++ b/tests/ReplayData/IssueComment.testCreateReaction.txt @@ -2,7 +2,7 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/issues/comments/5808311/reactions +/repos/PyGithub/PyGithub/issues/comments/20227753/reactions {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'Accept': 'application/vnd.github.squirrel-girl-preview', 'User-Agent': 'PyGithub/Python'} {"content": "hooray"} 201 diff --git a/tests/ReplayData/IssueComment.testDelete.txt b/tests/ReplayData/IssueComment.testDelete.txt index 31918f8e85..450cba662f 100644 --- a/tests/ReplayData/IssueComment.testDelete.txt +++ b/tests/ReplayData/IssueComment.testDelete.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/comments/5808311 +/repos/PyGithub/PyGithub/issues/comments/20227753 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/IssueComment.testDeleteReaction.txt b/tests/ReplayData/IssueComment.testDeleteReaction.txt index 3e83b48bb7..89691cda54 100644 --- a/tests/ReplayData/IssueComment.testDeleteReaction.txt +++ b/tests/ReplayData/IssueComment.testDeleteReaction.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/comments/5808311/reactions/85743754 +/repos/PyGithub/PyGithub/issues/comments/20227753/reactions/85743754 {'Accept': 'application/vnd.github.squirrel-girl-preview', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/IssueComment.testEdit.txt b/tests/ReplayData/IssueComment.testEdit.txt index 6dd26d3962..a94a575b21 100644 --- a/tests/ReplayData/IssueComment.testEdit.txt +++ b/tests/ReplayData/IssueComment.testEdit.txt @@ -2,9 +2,9 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub/issues/comments/5808311 +/repos/PyGithub/PyGithub/issues/comments/20227753 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"body": "Comment edited by PyGithub"} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4980'), ('content-length', '505'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1599061186ef7ca2dbf5bdee1711746a"'), ('date', 'Sun, 20 May 2012 11:53:59 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"updated_at":"2012-05-20T11:53:59Z","body":"Comment edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5808311","created_at":"2012-05-20T11:46:42Z","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":5808311} +{"updated_at":"2012-05-20T11:53:59Z","body":"Comment edited by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/20227753","created_at":"2012-05-20T11:46:42Z","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":20227753} diff --git a/tests/ReplayData/IssueComment.testGetReactions.txt b/tests/ReplayData/IssueComment.testGetReactions.txt index 849603fb6f..d4d4ed7c7f 100644 --- a/tests/ReplayData/IssueComment.testGetReactions.txt +++ b/tests/ReplayData/IssueComment.testGetReactions.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/comments/5808311/reactions +/repos/PyGithub/PyGithub/issues/comments/20227753/reactions {'Authorization': 'Basic login_and_password_removed', 'Accept': 'application/vnd.github.squirrel-girl-preview', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/IssueComment.testMinimize.txt b/tests/ReplayData/IssueComment.testMinimize.txt index b14ca95a34..9469c003b9 100644 --- a/tests/ReplayData/IssueComment.testMinimize.txt +++ b/tests/ReplayData/IssueComment.testMinimize.txt @@ -4,7 +4,7 @@ api.github.com None /graphql {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"query": "mutation Mutation($input: MinimizeCommentInput!) { minimizeComment(input: $input) { minimizedComment { isMinimized } } }", "variables": {"input": {"subjectId": "IC_kwDOGpsAJ86Gecc_", "classifier": "OUTDATED"}}} +{"query": "mutation Mutation($input: MinimizeCommentInput!) { minimizeComment(input: $input) { minimizedComment { isMinimized } } }", "variables": {"input": {"subjectId": "MDEyOklzc3VlQ29tbWVudDIwMjI3NzUz", "classifier": "OUTDATED"}}} 200 [('Server', 'GitHub.com'), ('Date', 'Mon, 29 Jul 2024 14:43:44 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('github-authentication-token-expiration', '2024-08-28 16:30:05 +0200'), ('X-GitHub-Media-Type', 'github.v4; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4991'), ('X-RateLimit-Reset', '1722267171'), ('X-RateLimit-Used', '9'), ('X-RateLimit-Resource', 'graphql'), ('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', 'C08C:1A4F2F:3A882EB:3B486EE:66A7AAA0')] {"data":{"minimizeComment":{"minimizedComment":{"isMinimized":true}}}} diff --git a/tests/ReplayData/IssueComment.testUnminimize.txt b/tests/ReplayData/IssueComment.testUnminimize.txt index c6eb9aeb59..5a62c2a5e4 100644 --- a/tests/ReplayData/IssueComment.testUnminimize.txt +++ b/tests/ReplayData/IssueComment.testUnminimize.txt @@ -4,7 +4,7 @@ api.github.com None /graphql {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"query": "mutation Mutation($input: UnminimizeCommentInput!) { unminimizeComment(input: $input) { unminimizedComment { isMinimized } } }", "variables": {"input": {"subjectId": "IC_kwDOGpsAJ86Gecc_"}}} +{"query": "mutation Mutation($input: UnminimizeCommentInput!) { unminimizeComment(input: $input) { unminimizedComment { isMinimized } } }", "variables": {"input": {"subjectId": "MDEyOklzc3VlQ29tbWVudDIwMjI3NzUz"}}} 200 [('Server', 'GitHub.com'), ('Date', 'Mon, 29 Jul 2024 14:43:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('github-authentication-token-expiration', '2024-08-28 16:30:05 +0200'), ('X-GitHub-Media-Type', 'github.v4; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4990'), ('X-RateLimit-Reset', '1722267171'), ('X-RateLimit-Used', '10'), ('X-RateLimit-Resource', 'graphql'), ('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', 'C064:1A4F2F:3A8AFE1:3B4B457:66A7AAAB')] {"data":{"unminimizeComment":{"unminimizedComment":{"isMinimized":false}}}} diff --git a/tests/ReplayData/IssueEvent.setUp.txt b/tests/ReplayData/IssueEvent.setUp.txt index d76214b67b..38cf7d08ff 100644 --- a/tests/ReplayData/IssueEvent.setUp.txt +++ b/tests/ReplayData/IssueEvent.setUp.txt @@ -1,3 +1,14 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Fri, 03 Jan 2025 20:25:39 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"f5cc8602b1810af03dbb6c6362f001a1e6360ddab7e5169b030d5cb0e172da51"'), ('Last-Modified', 'Fri, 03 Jan 2025 18:50:01 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4993'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '7'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A552:236110:2293684D:23749C1A:677847C3')] +{"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","user_view_type":"public","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":"2025-01-03T18:50:01Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7117,"watchers_count":7117,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":356,"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":1793,"open_issues":356,"watchers":7117,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"PR_BODY","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"enabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":111} + https GET api.github.com @@ -6,8 +17,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:38 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4910'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"0b8e48d6ed32221ad893c6e41d2bd101"'), ('Last-Modified', 'Sat, 28 Jul 2018 06:09:54 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.082385'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E2DE:0ABD:74A67B:100F04B:5B7F1A22')] -{"id":16347479,"node_id":"MDE1OlN1YnNjcmliZWRFdmVudDE2MzQ3NDc5","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16347479","actor":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"event":"subscribed","commit_id":null,"commit_url":null,"created_at":"2012-05-27T05:40:15Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/events","html_url":"https://github.com/PyGithub/PyGithub/issues/30","id":4769659,"node_id":"MDU6SXNzdWU0NzY5NjU5","number":30,"title":"Issue also created by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"labels":[{"id":3376821,"node_id":"MDU6TGFiZWwzMzc2ODIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/question","name":"question","color":"02e10c","default":true}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2012-05-27T05:40:15Z","updated_at":"2014-03-02T18:55:10Z","closed_at":"2012-05-27T11:04:25Z","author_association":"MEMBER","active_lock_reason":null,"body":"Body created by PyGithub\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:39 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"6d47a3e49e7716fe14c0cf85050a3d25e25f9e75ab098bec7d7111963f4b3ba4"'), ('Last-Modified', 'Sun, 20 Oct 2024 07:14:52 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4992'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '8'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A55C:667D7:21D54A66:22B98E2D:677847C3')] +{"id":16347479,"node_id":"MDE1OlN1YnNjcmliZWRFdmVudDE2MzQ3NDc5","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16347479","actor":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"subscribed","commit_id":null,"commit_url":null,"created_at":"2012-05-27T05:40:15Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/events","html_url":"https://github.com/PyGithub/PyGithub/issues/30","id":4769659,"node_id":"MDU6SXNzdWU0NzY5NjU5","number":30,"title":"Issue also created by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":3376821,"node_id":"MDU6TGFiZWwzMzc2ODIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/question","name":"question","color":"02e10c","default":true,"description":null}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2012-05-27T05:40:15Z","updated_at":"2014-03-02T18:55:10Z","closed_at":"2012-05-27T11:04:25Z","author_association":"MEMBER","active_lock_reason":null,"body":"Body created by PyGithub\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/timeline","performed_via_github_app":null,"state_reason":"completed"},"performed_via_github_app":null} https GET @@ -17,8 +28,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:39 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4909'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"b49e5770e32be97b98af784190ebb7c6"'), ('Last-Modified', 'Sat, 28 Jul 2018 06:09:54 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.066192'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E974:0ABA:314FC3:7C9DAF:5B7F1A23')] -{"id":16347480,"node_id":"MDEzOkFzc2lnbmVkRXZlbnQxNjM0NzQ4MA==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16347480","actor":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"event":"assigned","commit_id":null,"commit_url":null,"created_at":"2012-05-27T05:40:15Z","assignee":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"assigner":{"login":"ghost","id":10137,"node_id":"MDQ6VXNlcjEwMTM3","avatar_url":"https://avatars3.githubusercontent.com/u/10137?v=4","gravatar_id":"","url":"https://api.github.com/users/ghost","html_url":"https://github.com/ghost","followers_url":"https://api.github.com/users/ghost/followers","following_url":"https://api.github.com/users/ghost/following{/other_user}","gists_url":"https://api.github.com/users/ghost/gists{/gist_id}","starred_url":"https://api.github.com/users/ghost/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ghost/subscriptions","organizations_url":"https://api.github.com/users/ghost/orgs","repos_url":"https://api.github.com/users/ghost/repos","events_url":"https://api.github.com/users/ghost/events{/privacy}","received_events_url":"https://api.github.com/users/ghost/received_events","type":"User","site_admin":false},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/events","html_url":"https://github.com/PyGithub/PyGithub/issues/30","id":4769659,"node_id":"MDU6SXNzdWU0NzY5NjU5","number":30,"title":"Issue also created by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"labels":[{"id":3376821,"node_id":"MDU6TGFiZWwzMzc2ODIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/question","name":"question","color":"02e10c","default":true}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2012-05-27T05:40:15Z","updated_at":"2014-03-02T18:55:10Z","closed_at":"2012-05-27T11:04:25Z","author_association":"MEMBER","active_lock_reason":null,"body":"Body created by PyGithub\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:40 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"5f13e038ccf75f45a42e528e8e6f1924a54b8a4a64a03415a8bc1137f15184e9"'), ('Last-Modified', 'Sun, 20 Oct 2024 07:14:52 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4991'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '9'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A568:5A83E:21A0381D:22847F8B:677847C3')] +{"id":16347480,"node_id":"MDEzOkFzc2lnbmVkRXZlbnQxNjM0NzQ4MA==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16347480","actor":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"assigned","commit_id":null,"commit_url":null,"created_at":"2012-05-27T05:40:15Z","assignee":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"assigner":{"login":"ghost","id":10137,"node_id":"MDQ6VXNlcjEwMTM3","avatar_url":"https://avatars.githubusercontent.com/u/10137?v=4","gravatar_id":"","url":"https://api.github.com/users/ghost","html_url":"https://github.com/ghost","followers_url":"https://api.github.com/users/ghost/followers","following_url":"https://api.github.com/users/ghost/following{/other_user}","gists_url":"https://api.github.com/users/ghost/gists{/gist_id}","starred_url":"https://api.github.com/users/ghost/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ghost/subscriptions","organizations_url":"https://api.github.com/users/ghost/orgs","repos_url":"https://api.github.com/users/ghost/repos","events_url":"https://api.github.com/users/ghost/events{/privacy}","received_events_url":"https://api.github.com/users/ghost/received_events","type":"User","user_view_type":"public","site_admin":false},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/events","html_url":"https://github.com/PyGithub/PyGithub/issues/30","id":4769659,"node_id":"MDU6SXNzdWU0NzY5NjU5","number":30,"title":"Issue also created by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":3376821,"node_id":"MDU6TGFiZWwzMzc2ODIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/question","name":"question","color":"02e10c","default":true,"description":null}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2012-05-27T05:40:15Z","updated_at":"2014-03-02T18:55:10Z","closed_at":"2012-05-27T11:04:25Z","author_association":"MEMBER","active_lock_reason":null,"body":"Body created by PyGithub\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/timeline","performed_via_github_app":null,"state_reason":"completed"},"performed_via_github_app":null} https GET @@ -28,8 +39,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:40 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4908'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"6a38598525817f72ab77ad53134d9877"'), ('Last-Modified', 'Sat, 28 Jul 2018 06:09:54 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.069489'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D07A:0ABF:9FFA4C:13C4399:5B7F1A24')] -{"id":16348656,"node_id":"MDE1OlJlZmVyZW5jZWRFdmVudDE2MzQ4NjU2","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16348656","actor":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"event":"referenced","commit_id":"ed866fc43833802ab553e5ff8581c81bb00dd433","commit_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ed866fc43833802ab553e5ff8581c81bb00dd433","created_at":"2012-05-27T07:29:25Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/events","html_url":"https://github.com/PyGithub/PyGithub/issues/30","id":4769659,"node_id":"MDU6SXNzdWU0NzY5NjU5","number":30,"title":"Issue also created by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"labels":[{"id":3376821,"node_id":"MDU6TGFiZWwzMzc2ODIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/question","name":"question","color":"02e10c","default":true}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2012-05-27T05:40:15Z","updated_at":"2014-03-02T18:55:10Z","closed_at":"2012-05-27T11:04:25Z","author_association":"MEMBER","active_lock_reason":null,"body":"Body created by PyGithub\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:40 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"df474a40b9935d5e20e6bb1537c615e7dc202e5653bd59f1ab867980b2b9d414"'), ('Last-Modified', 'Sun, 20 Oct 2024 07:14:52 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4990'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '10'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A578:59502:21996668:227DACE2:677847C4')] +{"id":16348656,"node_id":"MDE1OlJlZmVyZW5jZWRFdmVudDE2MzQ4NjU2","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16348656","actor":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"referenced","commit_id":"ed866fc43833802ab553e5ff8581c81bb00dd433","commit_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ed866fc43833802ab553e5ff8581c81bb00dd433","created_at":"2012-05-27T07:29:25Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/events","html_url":"https://github.com/PyGithub/PyGithub/issues/30","id":4769659,"node_id":"MDU6SXNzdWU0NzY5NjU5","number":30,"title":"Issue also created by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":3376821,"node_id":"MDU6TGFiZWwzMzc2ODIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/question","name":"question","color":"02e10c","default":true,"description":null}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2012-05-27T05:40:15Z","updated_at":"2014-03-02T18:55:10Z","closed_at":"2012-05-27T11:04:25Z","author_association":"MEMBER","active_lock_reason":null,"body":"Body created by PyGithub\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/timeline","performed_via_github_app":null,"state_reason":"completed"},"performed_via_github_app":null} https GET @@ -39,8 +50,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:41 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4907'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"46a1f873256a94c9c559ff982097a73b"'), ('Last-Modified', 'Sat, 28 Jul 2018 06:09:54 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.080573'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D7B8:0AB9:498B57:B4A743:5B7F1A25')] -{"id":16351220,"node_id":"MDExOkNsb3NlZEV2ZW50MTYzNTEyMjA=","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16351220","actor":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"event":"closed","commit_id":null,"commit_url":null,"created_at":"2012-05-27T11:04:25Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/events","html_url":"https://github.com/PyGithub/PyGithub/issues/30","id":4769659,"node_id":"MDU6SXNzdWU0NzY5NjU5","number":30,"title":"Issue also created by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"labels":[{"id":3376821,"node_id":"MDU6TGFiZWwzMzc2ODIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/question","name":"question","color":"02e10c","default":true}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2012-05-27T05:40:15Z","updated_at":"2014-03-02T18:55:10Z","closed_at":"2012-05-27T11:04:25Z","author_association":"MEMBER","active_lock_reason":null,"body":"Body created by PyGithub\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:40 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"f44c263432863e961d1f4cad4a3bbaab3f3aa0a693d3910d9677a7627320d824"'), ('Last-Modified', 'Sun, 20 Oct 2024 07:14:52 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4989'), ('X-RateLimit-Reset', '1735938877'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A57A:4D504:229AD8E8:237F1EEF:677847C4')] +{"id":16351220,"node_id":"MDExOkNsb3NlZEV2ZW50MTYzNTEyMjA=","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16351220","actor":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"closed","commit_id":null,"commit_url":null,"created_at":"2012-05-27T11:04:25Z","state_reason":null,"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/events","html_url":"https://github.com/PyGithub/PyGithub/issues/30","id":4769659,"node_id":"MDU6SXNzdWU0NzY5NjU5","number":30,"title":"Issue also created by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":3376821,"node_id":"MDU6TGFiZWwzMzc2ODIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/question","name":"question","color":"02e10c","default":true,"description":null}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2012-05-27T05:40:15Z","updated_at":"2014-03-02T18:55:10Z","closed_at":"2012-05-27T11:04:25Z","author_association":"MEMBER","active_lock_reason":null,"body":"Body created by PyGithub\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/timeline","performed_via_github_app":null,"state_reason":"completed"},"performed_via_github_app":null} https GET @@ -50,8 +61,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:42 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4906'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"3750cdca0e968e35755c6dea9afbd00b"'), ('Last-Modified', 'Sat, 28 Jul 2018 06:09:54 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.064877'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'F8AA:0ABF:9FFB70:13C45B4:5B7F1A26')] -{"id":98136337,"node_id":"MDEyOkxhYmVsZWRFdmVudDk4MTM2MzM3","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/98136337","actor":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"event":"labeled","commit_id":null,"commit_url":null,"created_at":"2014-03-02T18:55:10Z","label":{"name":"v1","color":"5319e7"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/events","html_url":"https://github.com/PyGithub/PyGithub/issues/30","id":4769659,"node_id":"MDU6SXNzdWU0NzY5NjU5","number":30,"title":"Issue also created by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"labels":[{"id":3376821,"node_id":"MDU6TGFiZWwzMzc2ODIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/question","name":"question","color":"02e10c","default":true}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2012-05-27T05:40:15Z","updated_at":"2014-03-02T18:55:10Z","closed_at":"2012-05-27T11:04:25Z","author_association":"MEMBER","active_lock_reason":null,"body":"Body created by PyGithub\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:40 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"74fd7ed566384b31c4745834b097e855ae4b4a388648906b6df91547432b2527"'), ('Last-Modified', 'Sun, 20 Oct 2024 07:14:52 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4988'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '12'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A58A:521E5:22CB74A1:23AFB9A6:677847C4')] +{"id":98136337,"node_id":"MDEyOkxhYmVsZWRFdmVudDk4MTM2MzM3","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/98136337","actor":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"labeled","commit_id":null,"commit_url":null,"created_at":"2014-03-02T18:55:10Z","label":{"name":"v1","color":"5319e7"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/events","html_url":"https://github.com/PyGithub/PyGithub/issues/30","id":4769659,"node_id":"MDU6SXNzdWU0NzY5NjU5","number":30,"title":"Issue also created by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":3376821,"node_id":"MDU6TGFiZWwzMzc2ODIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/question","name":"question","color":"02e10c","default":true,"description":null}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2012-05-27T05:40:15Z","updated_at":"2014-03-02T18:55:10Z","closed_at":"2012-05-27T11:04:25Z","author_association":"MEMBER","active_lock_reason":null,"body":"Body created by PyGithub\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30/timeline","performed_via_github_app":null,"state_reason":"completed"},"performed_via_github_app":null} https GET @@ -61,8 +72,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:43 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4905'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"a435bc605a111d84b00833d6c4d843bf"'), ('Last-Modified', 'Thu, 16 Aug 2018 18:04:04 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.105650'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D643:0ABD:74A7E0:100F3C6:5B7F1A27')] -{"id":1009034767,"node_id":"MDE0Ok1lbnRpb25lZEV2ZW50MTAwOTAzNDc2Nw==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1009034767","actor":{"login":"jzelinskie","id":343539,"node_id":"MDQ6VXNlcjM0MzUzOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/343539?v=4","gravatar_id":"","url":"https://api.github.com/users/jzelinskie","html_url":"https://github.com/jzelinskie","followers_url":"https://api.github.com/users/jzelinskie/followers","following_url":"https://api.github.com/users/jzelinskie/following{/other_user}","gists_url":"https://api.github.com/users/jzelinskie/gists{/gist_id}","starred_url":"https://api.github.com/users/jzelinskie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzelinskie/subscriptions","organizations_url":"https://api.github.com/users/jzelinskie/orgs","repos_url":"https://api.github.com/users/jzelinskie/repos","events_url":"https://api.github.com/users/jzelinskie/events{/privacy}","received_events_url":"https://api.github.com/users/jzelinskie/received_events","type":"User","site_admin":false},"event":"mentioned","commit_id":null,"commit_url":null,"created_at":"2017-03-21T17:30:14Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/events","html_url":"https://github.com/PyGithub/PyGithub/pull/538","id":215553858,"node_id":"MDExOlB1bGxSZXF1ZXN0MTExNjQ5NzAz","number":538,"title":"Add Support for Pull Request Reviews feature","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2017-03-20T21:00:37Z","updated_at":"2018-03-20T14:21:07Z","closed_at":"2017-03-25T16:52:49Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","html_url":"https://github.com/PyGithub/PyGithub/pull/538","diff_url":"https://github.com/PyGithub/PyGithub/pull/538.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/538.patch"},"body":"Adding support to Pull Request class to access new Github API features [Pull Request reviews](https://developer.github.com/v3/pulls/reviews/) and [Pull Request Reviewer Requests](https://developer.github.com/v3/pulls/review_requests/)\r\n\r\nThe API's is still in beta. \r\n\r\nI approached this by providing a minimal set of routines to access the list of reviews or a specific review. Also access to get a list of Reviewer requests. \r\n\r\nBecause the API is still early in Beta, I choose not to implement the create/delete/edit features, but the infrastructure should be in place for future improvements.\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:41 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"d58d8b19dde2f53571f56d1df25bbe781ed4a39468646e53110248d9305a5a93"'), ('Last-Modified', 'Sun, 15 Dec 2024 12:22:25 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4987'), ('X-RateLimit-Reset', '1735938877'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A58E:59502:219968CA:227DAF3F:677847C5')] +{"id":1009034767,"node_id":"MDE0Ok1lbnRpb25lZEV2ZW50MTAwOTAzNDc2Nw==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1009034767","actor":{"login":"jzelinskie","id":343539,"node_id":"MDQ6VXNlcjM0MzUzOQ==","avatar_url":"https://avatars.githubusercontent.com/u/343539?v=4","gravatar_id":"","url":"https://api.github.com/users/jzelinskie","html_url":"https://github.com/jzelinskie","followers_url":"https://api.github.com/users/jzelinskie/followers","following_url":"https://api.github.com/users/jzelinskie/following{/other_user}","gists_url":"https://api.github.com/users/jzelinskie/gists{/gist_id}","starred_url":"https://api.github.com/users/jzelinskie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzelinskie/subscriptions","organizations_url":"https://api.github.com/users/jzelinskie/orgs","repos_url":"https://api.github.com/users/jzelinskie/repos","events_url":"https://api.github.com/users/jzelinskie/events{/privacy}","received_events_url":"https://api.github.com/users/jzelinskie/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"mentioned","commit_id":null,"commit_url":null,"created_at":"2017-03-21T17:30:14Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/events","html_url":"https://github.com/PyGithub/PyGithub/pull/538","id":215553858,"node_id":"MDExOlB1bGxSZXF1ZXN0MTExNjQ5NzAz","number":538,"title":"Add Support for Pull Request Reviews feature","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2017-03-20T21:00:37Z","updated_at":"2024-10-18T08:57:49Z","closed_at":"2017-03-25T16:52:49Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","html_url":"https://github.com/PyGithub/PyGithub/pull/538","diff_url":"https://github.com/PyGithub/PyGithub/pull/538.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/538.patch","merged_at":"2017-03-25T16:52:49Z"},"body":"Adding support to Pull Request class to access new Github API features [Pull Request reviews](https://developer.github.com/v3/pulls/reviews/) and [Pull Request Reviewer Requests](https://developer.github.com/v3/pulls/review_requests/)\r\n\r\nThe API's is still in beta. \r\n\r\nI approached this by providing a minimal set of routines to access the list of reviews or a specific review. Also access to get a list of Reviewer requests. \r\n\r\nBecause the API is still early in Beta, I choose not to implement the create/delete/edit features, but the infrastructure should be in place for future improvements.\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -72,8 +83,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:44 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4904'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"88b242c46ba251ff63be2aff0c37664a"'), ('Last-Modified', 'Thu, 16 Aug 2018 18:04:04 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.069472'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DB3A:0ABD:74A828:100F46D:5B7F1A28')] -{"id":1015402964,"node_id":"MDExOk1lcmdlZEV2ZW50MTAxNTQwMjk2NA==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1015402964","actor":{"login":"jzelinskie","id":343539,"node_id":"MDQ6VXNlcjM0MzUzOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/343539?v=4","gravatar_id":"","url":"https://api.github.com/users/jzelinskie","html_url":"https://github.com/jzelinskie","followers_url":"https://api.github.com/users/jzelinskie/followers","following_url":"https://api.github.com/users/jzelinskie/following{/other_user}","gists_url":"https://api.github.com/users/jzelinskie/gists{/gist_id}","starred_url":"https://api.github.com/users/jzelinskie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzelinskie/subscriptions","organizations_url":"https://api.github.com/users/jzelinskie/orgs","repos_url":"https://api.github.com/users/jzelinskie/repos","events_url":"https://api.github.com/users/jzelinskie/events{/privacy}","received_events_url":"https://api.github.com/users/jzelinskie/received_events","type":"User","site_admin":false},"event":"merged","commit_id":"2525515b094d7425f7018eb5b66171e21c5fbc10","commit_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2525515b094d7425f7018eb5b66171e21c5fbc10","created_at":"2017-03-25T16:52:49Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/events","html_url":"https://github.com/PyGithub/PyGithub/pull/538","id":215553858,"node_id":"MDExOlB1bGxSZXF1ZXN0MTExNjQ5NzAz","number":538,"title":"Add Support for Pull Request Reviews feature","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2017-03-20T21:00:37Z","updated_at":"2018-03-20T14:21:07Z","closed_at":"2017-03-25T16:52:49Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","html_url":"https://github.com/PyGithub/PyGithub/pull/538","diff_url":"https://github.com/PyGithub/PyGithub/pull/538.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/538.patch"},"body":"Adding support to Pull Request class to access new Github API features [Pull Request reviews](https://developer.github.com/v3/pulls/reviews/) and [Pull Request Reviewer Requests](https://developer.github.com/v3/pulls/review_requests/)\r\n\r\nThe API's is still in beta. \r\n\r\nI approached this by providing a minimal set of routines to access the list of reviews or a specific review. Also access to get a list of Reviewer requests. \r\n\r\nBecause the API is still early in Beta, I choose not to implement the create/delete/edit features, but the infrastructure should be in place for future improvements.\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:41 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"ff6778233343994d7be1669bf9689a90ff5d2444af044ed0e2969e6531ccb0d2"'), ('Last-Modified', 'Sun, 15 Dec 2024 12:22:25 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4986'), ('X-RateLimit-Reset', '1735938877'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A59A:4E297:238945A3:246D8C28:677847C5')] +{"id":1015402964,"node_id":"MDExOk1lcmdlZEV2ZW50MTAxNTQwMjk2NA==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1015402964","actor":{"login":"jzelinskie","id":343539,"node_id":"MDQ6VXNlcjM0MzUzOQ==","avatar_url":"https://avatars.githubusercontent.com/u/343539?v=4","gravatar_id":"","url":"https://api.github.com/users/jzelinskie","html_url":"https://github.com/jzelinskie","followers_url":"https://api.github.com/users/jzelinskie/followers","following_url":"https://api.github.com/users/jzelinskie/following{/other_user}","gists_url":"https://api.github.com/users/jzelinskie/gists{/gist_id}","starred_url":"https://api.github.com/users/jzelinskie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzelinskie/subscriptions","organizations_url":"https://api.github.com/users/jzelinskie/orgs","repos_url":"https://api.github.com/users/jzelinskie/repos","events_url":"https://api.github.com/users/jzelinskie/events{/privacy}","received_events_url":"https://api.github.com/users/jzelinskie/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"merged","commit_id":"2525515b094d7425f7018eb5b66171e21c5fbc10","commit_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2525515b094d7425f7018eb5b66171e21c5fbc10","created_at":"2017-03-25T16:52:49Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/events","html_url":"https://github.com/PyGithub/PyGithub/pull/538","id":215553858,"node_id":"MDExOlB1bGxSZXF1ZXN0MTExNjQ5NzAz","number":538,"title":"Add Support for Pull Request Reviews feature","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2017-03-20T21:00:37Z","updated_at":"2024-10-18T08:57:49Z","closed_at":"2017-03-25T16:52:49Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","html_url":"https://github.com/PyGithub/PyGithub/pull/538","diff_url":"https://github.com/PyGithub/PyGithub/pull/538.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/538.patch","merged_at":"2017-03-25T16:52:49Z"},"body":"Adding support to Pull Request class to access new Github API features [Pull Request reviews](https://developer.github.com/v3/pulls/reviews/) and [Pull Request Reviewer Requests](https://developer.github.com/v3/pulls/review_requests/)\r\n\r\nThe API's is still in beta. \r\n\r\nI approached this by providing a minimal set of routines to access the list of reviews or a specific review. Also access to get a list of Reviewer requests. \r\n\r\nBecause the API is still early in Beta, I choose not to implement the create/delete/edit features, but the infrastructure should be in place for future improvements.\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -83,8 +94,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:45 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4903'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"ee600aa216a3442dab99a67dfe9769f6"'), ('Last-Modified', 'Thu, 16 Aug 2018 18:04:04 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.088436'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'FA81:0ABF:9FFCBB:13C4839:5B7F1A29')] -{"id":1011101309,"node_id":"MDIwOlJldmlld1JlcXVlc3RlZEV2ZW50MTAxMTEwMTMwOQ==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1011101309","actor":{"login":"jzelinskie","id":343539,"node_id":"MDQ6VXNlcjM0MzUzOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/343539?v=4","gravatar_id":"","url":"https://api.github.com/users/jzelinskie","html_url":"https://github.com/jzelinskie","followers_url":"https://api.github.com/users/jzelinskie/followers","following_url":"https://api.github.com/users/jzelinskie/following{/other_user}","gists_url":"https://api.github.com/users/jzelinskie/gists{/gist_id}","starred_url":"https://api.github.com/users/jzelinskie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzelinskie/subscriptions","organizations_url":"https://api.github.com/users/jzelinskie/orgs","repos_url":"https://api.github.com/users/jzelinskie/repos","events_url":"https://api.github.com/users/jzelinskie/events{/privacy}","received_events_url":"https://api.github.com/users/jzelinskie/received_events","type":"User","site_admin":false},"event":"review_requested","commit_id":null,"commit_url":null,"created_at":"2017-03-22T19:06:44Z","review_requester":{"login":"jzelinskie","id":343539,"node_id":"MDQ6VXNlcjM0MzUzOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/343539?v=4","gravatar_id":"","url":"https://api.github.com/users/jzelinskie","html_url":"https://github.com/jzelinskie","followers_url":"https://api.github.com/users/jzelinskie/followers","following_url":"https://api.github.com/users/jzelinskie/following{/other_user}","gists_url":"https://api.github.com/users/jzelinskie/gists{/gist_id}","starred_url":"https://api.github.com/users/jzelinskie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzelinskie/subscriptions","organizations_url":"https://api.github.com/users/jzelinskie/orgs","repos_url":"https://api.github.com/users/jzelinskie/repos","events_url":"https://api.github.com/users/jzelinskie/events{/privacy}","received_events_url":"https://api.github.com/users/jzelinskie/received_events","type":"User","site_admin":false},"requested_reviewer":{"login":"jzelinskie","id":343539,"node_id":"MDQ6VXNlcjM0MzUzOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/343539?v=4","gravatar_id":"","url":"https://api.github.com/users/jzelinskie","html_url":"https://github.com/jzelinskie","followers_url":"https://api.github.com/users/jzelinskie/followers","following_url":"https://api.github.com/users/jzelinskie/following{/other_user}","gists_url":"https://api.github.com/users/jzelinskie/gists{/gist_id}","starred_url":"https://api.github.com/users/jzelinskie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzelinskie/subscriptions","organizations_url":"https://api.github.com/users/jzelinskie/orgs","repos_url":"https://api.github.com/users/jzelinskie/repos","events_url":"https://api.github.com/users/jzelinskie/events{/privacy}","received_events_url":"https://api.github.com/users/jzelinskie/received_events","type":"User","site_admin":false},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/events","html_url":"https://github.com/PyGithub/PyGithub/pull/538","id":215553858,"node_id":"MDExOlB1bGxSZXF1ZXN0MTExNjQ5NzAz","number":538,"title":"Add Support for Pull Request Reviews feature","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2017-03-20T21:00:37Z","updated_at":"2018-03-20T14:21:07Z","closed_at":"2017-03-25T16:52:49Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","html_url":"https://github.com/PyGithub/PyGithub/pull/538","diff_url":"https://github.com/PyGithub/PyGithub/pull/538.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/538.patch"},"body":"Adding support to Pull Request class to access new Github API features [Pull Request reviews](https://developer.github.com/v3/pulls/reviews/) and [Pull Request Reviewer Requests](https://developer.github.com/v3/pulls/review_requests/)\r\n\r\nThe API's is still in beta. \r\n\r\nI approached this by providing a minimal set of routines to access the list of reviews or a specific review. Also access to get a list of Reviewer requests. \r\n\r\nBecause the API is still early in Beta, I choose not to implement the create/delete/edit features, but the infrastructure should be in place for future improvements.\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:41 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"67201e42d1d2d8abe6e2b4cd07fd1ae277fdc8979deb5720283125b73fa5528d"'), ('Last-Modified', 'Sun, 15 Dec 2024 12:22:25 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4985'), ('X-RateLimit-Reset', '1735938877'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A5A6:59502:21996A55:227DB0EC:677847C5')] +{"id":1011101309,"node_id":"MDIwOlJldmlld1JlcXVlc3RlZEV2ZW50MTAxMTEwMTMwOQ==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1011101309","actor":{"login":"jzelinskie","id":343539,"node_id":"MDQ6VXNlcjM0MzUzOQ==","avatar_url":"https://avatars.githubusercontent.com/u/343539?v=4","gravatar_id":"","url":"https://api.github.com/users/jzelinskie","html_url":"https://github.com/jzelinskie","followers_url":"https://api.github.com/users/jzelinskie/followers","following_url":"https://api.github.com/users/jzelinskie/following{/other_user}","gists_url":"https://api.github.com/users/jzelinskie/gists{/gist_id}","starred_url":"https://api.github.com/users/jzelinskie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzelinskie/subscriptions","organizations_url":"https://api.github.com/users/jzelinskie/orgs","repos_url":"https://api.github.com/users/jzelinskie/repos","events_url":"https://api.github.com/users/jzelinskie/events{/privacy}","received_events_url":"https://api.github.com/users/jzelinskie/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"review_requested","commit_id":null,"commit_url":null,"created_at":"2017-03-22T19:06:44Z","review_requester":{"login":"jzelinskie","id":343539,"node_id":"MDQ6VXNlcjM0MzUzOQ==","avatar_url":"https://avatars.githubusercontent.com/u/343539?v=4","gravatar_id":"","url":"https://api.github.com/users/jzelinskie","html_url":"https://github.com/jzelinskie","followers_url":"https://api.github.com/users/jzelinskie/followers","following_url":"https://api.github.com/users/jzelinskie/following{/other_user}","gists_url":"https://api.github.com/users/jzelinskie/gists{/gist_id}","starred_url":"https://api.github.com/users/jzelinskie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzelinskie/subscriptions","organizations_url":"https://api.github.com/users/jzelinskie/orgs","repos_url":"https://api.github.com/users/jzelinskie/repos","events_url":"https://api.github.com/users/jzelinskie/events{/privacy}","received_events_url":"https://api.github.com/users/jzelinskie/received_events","type":"User","user_view_type":"public","site_admin":false},"requested_reviewer":{"login":"jzelinskie","id":343539,"node_id":"MDQ6VXNlcjM0MzUzOQ==","avatar_url":"https://avatars.githubusercontent.com/u/343539?v=4","gravatar_id":"","url":"https://api.github.com/users/jzelinskie","html_url":"https://github.com/jzelinskie","followers_url":"https://api.github.com/users/jzelinskie/followers","following_url":"https://api.github.com/users/jzelinskie/following{/other_user}","gists_url":"https://api.github.com/users/jzelinskie/gists{/gist_id}","starred_url":"https://api.github.com/users/jzelinskie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzelinskie/subscriptions","organizations_url":"https://api.github.com/users/jzelinskie/orgs","repos_url":"https://api.github.com/users/jzelinskie/repos","events_url":"https://api.github.com/users/jzelinskie/events{/privacy}","received_events_url":"https://api.github.com/users/jzelinskie/received_events","type":"User","user_view_type":"public","site_admin":false},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/events","html_url":"https://github.com/PyGithub/PyGithub/pull/538","id":215553858,"node_id":"MDExOlB1bGxSZXF1ZXN0MTExNjQ5NzAz","number":538,"title":"Add Support for Pull Request Reviews feature","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2017-03-20T21:00:37Z","updated_at":"2024-10-18T08:57:49Z","closed_at":"2017-03-25T16:52:49Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","html_url":"https://github.com/PyGithub/PyGithub/pull/538","diff_url":"https://github.com/PyGithub/PyGithub/pull/538.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/538.patch","merged_at":"2017-03-25T16:52:49Z"},"body":"Adding support to Pull Request class to access new Github API features [Pull Request reviews](https://developer.github.com/v3/pulls/reviews/) and [Pull Request Reviewer Requests](https://developer.github.com/v3/pulls/review_requests/)\r\n\r\nThe API's is still in beta. \r\n\r\nI approached this by providing a minimal set of routines to access the list of reviews or a specific review. Also access to get a list of Reviewer requests. \r\n\r\nBecause the API is still early in Beta, I choose not to implement the create/delete/edit features, but the infrastructure should be in place for future improvements.\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/538/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -94,8 +105,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:46 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4902'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"e1dc589b7165f7ab3b9a5ec1f1992257"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.100333'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'FF47:0ABF:9FFD2C:13C4905:5B7F1A2A')] -{"id":1782463023,"node_id":"MDEzOlJlb3BlbmVkRXZlbnQxNzgyNDYzMDIz","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782463023","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"event":"reopened","commit_id":null,"commit_url":null,"created_at":"2018-08-10T13:10:09Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:42 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"d5b2ff58b4dd6cdd09efa4650d5336c08506faaead3dd26638edfc3d290cf838"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4984'), ('X-RateLimit-Reset', '1735938877'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A5A8:4DB83:214C9410:2230D97A:677847C5')] +{"id":1782463023,"node_id":"MDEzOlJlb3BlbmVkRXZlbnQxNzgyNDYzMDIz","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782463023","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"reopened","commit_id":null,"commit_url":null,"created_at":"2018-08-10T13:10:09Z","state_reason":null,"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -105,8 +116,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:47 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4901'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"81ce2153a96fa3ddc345e2b0f86f9393"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.069654'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'EDCA:0AB9:498C6B:B4A9B6:5B7F1A2B')] -{"id":1782463379,"node_id":"MDE1OlVuYXNzaWduZWRFdmVudDE3ODI0NjMzNzk=","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782463379","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"event":"unassigned","commit_id":null,"commit_url":null,"created_at":"2018-08-10T13:10:21Z","assignee":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"assigner":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:42 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"c0ff30383b44a39c933e0a8c13f590fd684e7a0b83fc8b5979ae2ca6fc526c6e"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4983'), ('X-RateLimit-Reset', '1735938877'), ('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'"), ('Content-Encoding', 'gzip'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A5B6:654DF:235B30A0:243F7676:677847C6')] +{"id":1782463379,"node_id":"MDE1OlVuYXNzaWduZWRFdmVudDE3ODI0NjMzNzk=","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782463379","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"unassigned","commit_id":null,"commit_url":null,"created_at":"2018-08-10T13:10:21Z","assignee":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"assigner":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -116,8 +127,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4900'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"2128dbb310e3cc637185358d404869e1"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.115073'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E51D:0ABD:74A924:100F6ED:5B7F1A2C')] -{"id":1782463917,"node_id":"MDE0OlVubGFiZWxlZEV2ZW50MTc4MjQ2MzkxNw==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782463917","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"event":"unlabeled","commit_id":null,"commit_url":null,"created_at":"2018-08-10T13:10:38Z","label":{"name":"improvement","color":"f46bb7"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:42 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"24fdaab7ac69762128a26c4e0bad188c9b00fce70dfad4e9e55651c6ddedcd2d"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4982'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '18'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A5BA:1146F1:1DA1A590:1E6A92C3:677847C6')] +{"id":1782463917,"node_id":"MDE0OlVubGFiZWxlZEV2ZW50MTc4MjQ2MzkxNw==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782463917","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"unlabeled","commit_id":null,"commit_url":null,"created_at":"2018-08-10T13:10:38Z","label":{"name":"improvement","color":"f46bb7"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -127,8 +138,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:49 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4899'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"55f43f031b8936f492a7361077dd5a86"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.086051'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D67B:0ABD:74A96D:100F789:5B7F1A2D')] -{"id":1782472556,"node_id":"MDE3OlJlbmFtZWRUaXRsZUV2ZW50MTc4MjQ3MjU1Ng==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782472556","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"event":"renamed","commit_id":null,"commit_url":null,"created_at":"2018-08-10T13:15:18Z","rename":{"from":"Adding new attributes to IssueEvent Object (DO NOT MERGE - SEE NOTES)","to":"Adding new attributes to IssueEvent"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:43 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"65593ed1fd105d2321c5699f189f3cdc41955eb254f2092b33579b840cd3b86a"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4981'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '19'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A5BE:236110:229370D3:2374A4BA:677847C6')] +{"id":1782472556,"node_id":"MDE3OlJlbmFtZWRUaXRsZUV2ZW50MTc4MjQ3MjU1Ng==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782472556","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"renamed","commit_id":null,"commit_url":null,"created_at":"2018-08-10T13:15:18Z","rename":{"from":"Adding new attributes to IssueEvent Object (DO NOT MERGE - SEE NOTES)","to":"Adding new attributes to IssueEvent"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -138,8 +149,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:50 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4898'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"d45782077b9250f01a093c6c087b8fef"'), ('Last-Modified', 'Fri, 10 Aug 2018 16:38:22 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.091391'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D36D:0ABF:9FFEFE:13C4C7D:5B7F1A2E')] -{"id":1782915693,"node_id":"MDE5OkJhc2VSZWZDaGFuZ2VkRXZlbnQxNzgyOTE1Njkz","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782915693","actor":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"event":"base_ref_changed","commit_id":null,"commit_url":null,"created_at":"2018-08-10T16:38:22Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:43 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"06cb69bbbd22a673e81ad0c2a86cf333bdc8bfdbf45794b3dde9d78dd679e3e4"'), ('Last-Modified', 'Mon, 25 Jul 2022 14:31:35 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4980'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '20'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A5CA:7CD91:22C51EF9:23A96553:677847C7')] +{"id":1782915693,"node_id":"MDE5OkJhc2VSZWZDaGFuZ2VkRXZlbnQxNzgyOTE1Njkz","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782915693","actor":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"base_ref_changed","commit_id":null,"commit_url":null,"created_at":"2018-08-10T16:38:22Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -149,8 +160,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:51 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4897'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"cea13c0d66e8242585202a08230df49b"'), ('Last-Modified', 'Fri, 10 Aug 2018 16:39:20 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.066303'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'FA38:0ABF:9FFF90:13C4DA0:5B7F1A2F')] -{"id":1782917185,"node_id":"MDE5OkhlYWRSZWZEZWxldGVkRXZlbnQxNzgyOTE3MTg1","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782917185","actor":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"event":"head_ref_deleted","commit_id":null,"commit_url":null,"created_at":"2018-08-10T16:39:20Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:43 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"b14653b30577b18572b4ff4b10f1d5e50bcd88e6a40ccdc6398352f2fa214531"'), ('Last-Modified', 'Mon, 25 Jul 2022 14:31:35 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4979'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '21'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B8AA:88FDE:22B3762F:2397BBD0:677847C7')] +{"id":1782917185,"node_id":"MDE5OkhlYWRSZWZEZWxldGVkRXZlbnQxNzgyOTE3MTg1","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782917185","actor":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"head_ref_deleted","commit_id":null,"commit_url":null,"created_at":"2018-08-10T16:39:20Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -160,8 +171,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:52 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4896'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"b801e04ad0112192e719aa4fb0b25ba2"'), ('Last-Modified', 'Fri, 10 Aug 2018 16:39:23 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.064855'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E58A:0ABF:A0000B:13C4E97:5B7F1A30')] -{"id":1782917299,"node_id":"MDIwOkhlYWRSZWZSZXN0b3JlZEV2ZW50MTc4MjkxNzI5OQ==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782917299","actor":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"event":"head_ref_restored","commit_id":null,"commit_url":null,"created_at":"2018-08-10T16:39:23Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:44 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"bea36fdb854c959e456898c1ec3bf74c94e2dfe3c360e09e1b3b89eb3c4a9cd2"'), ('Last-Modified', 'Mon, 25 Jul 2022 14:31:35 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4978'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '22'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B8B6:521E5:22CB7C8C:23AFC1C1:677847C7')] +{"id":1782917299,"node_id":"MDIwOkhlYWRSZWZSZXN0b3JlZEV2ZW50MTc4MjkxNzI5OQ==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782917299","actor":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"head_ref_restored","commit_id":null,"commit_url":null,"created_at":"2018-08-10T16:39:23Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -171,8 +182,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:53 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4895'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"25f19f95a7043292b53a23436aa60231"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.087629'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'EFF5:0ABD:74AAF4:100FAEF:5B7F1A31')] -{"id":1783596418,"node_id":"MDE1Ok1pbGVzdG9uZWRFdmVudDE3ODM1OTY0MTg=","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783596418","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"event":"milestoned","commit_id":null,"commit_url":null,"created_at":"2018-08-11T00:46:19Z","milestone":{"title":"Version 1.25.0"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:44 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"b3e87e6cf16cf47a721d8bc10fbc4ffd64bbdccfb5de69a81fa08c2138421e97"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4977'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '23'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B8BC:44383:228E7B5C:2372C04F:677847C8')] +{"id":1783596418,"node_id":"MDE1Ok1pbGVzdG9uZWRFdmVudDE3ODM1OTY0MTg=","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783596418","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"milestoned","commit_id":null,"commit_url":null,"created_at":"2018-08-11T00:46:19Z","milestone":{"title":"Version 1.25.0"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -182,8 +193,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:54 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4894'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"a11f30929314b0742ff91f4b6c8bb5c4"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.110909'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E954:0ABA:3151AA:7CA228:5B7F1A32')] -{"id":1783596452,"node_id":"MDE3OkRlbWlsZXN0b25lZEV2ZW50MTc4MzU5NjQ1Mg==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783596452","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"event":"demilestoned","commit_id":null,"commit_url":null,"created_at":"2018-08-11T00:46:22Z","milestone":{"title":"Version 1.25.0"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:44 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"cc5dad25645581397f99c5f3a6c61e4b856a880bce3f68ab547cceea21e5aab2"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4976'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '24'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B8C8:4DB83:214C99FB:2230DF9B:677847C8')] +{"id":1783596452,"node_id":"MDE3OkRlbWlsZXN0b25lZEV2ZW50MTc4MzU5NjQ1Mg==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783596452","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"demilestoned","commit_id":null,"commit_url":null,"created_at":"2018-08-11T00:46:22Z","milestone":{"title":"Version 1.25.0"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -193,8 +204,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4893'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"a28045358f23ee01f926d42735aaabb9"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.093095'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DADE:0AB9:498DD6:B4AD84:5B7F1A33')] -{"id":1783596743,"node_id":"MDExOkxvY2tlZEV2ZW50MTc4MzU5Njc0Mw==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783596743","actor":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.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},"event":"locked","commit_id":null,"commit_url":null,"created_at":"2018-08-11T00:46:56Z","lock_reason":"too heated","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:44 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"f5691eabf53dda490287e0d4dfdf7a35913d9a1edde0ec720bc3f4f3dec536cc"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4975'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '25'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B8D4:47716:247AD5DB:255F1A9F:677847C8')] +{"id":1783596743,"node_id":"MDExOkxvY2tlZEV2ZW50MTc4MzU5Njc0Mw==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783596743","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"locked","commit_id":null,"commit_url":null,"created_at":"2018-08-11T00:46:56Z","lock_reason":"too heated","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -204,8 +215,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:56 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4892'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"8e4c8d72a74c7c3846ec8af70a71d922"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.068891'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CD74:0ABF:A001EB:13C52A3:5B7F1A34')] -{"id":1783596818,"node_id":"MDEzOlVubG9ja2VkRXZlbnQxNzgzNTk2ODE4","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783596818","actor":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.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},"event":"unlocked","commit_id":null,"commit_url":null,"created_at":"2018-08-11T00:47:07Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:45 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"4c25911128355007be2a2fd2f10dd96ea418717b488e314f878df561df15e4a2"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4974'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '26'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B8DA:4D2C4:233628AB:241A70A8:677847C9')] +{"id":1783596818,"node_id":"MDEzOlVubG9ja2VkRXZlbnQxNzgzNTk2ODE4","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783596818","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"unlocked","commit_id":null,"commit_url":null,"created_at":"2018-08-11T00:47:07Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -215,8 +226,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4891'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"b192301fc0c988dbf374c23c3b6782e2"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.082050'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'C4BE:0ABF:A00292:13C53E4:5B7F1A35')] -{"id":1783605084,"node_id":"MDIwOlJldmlld0Rpc21pc3NlZEV2ZW50MTc4MzYwNTA4NA==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783605084","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"event":"review_dismissed","commit_id":null,"commit_url":null,"created_at":"2018-08-11T01:07:10Z","dismissed_review":{"state":"changes_requested","review_id":145431295,"dismissal_message":"dismiss"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:45 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"e7fb989c1c81f2c9efcc2848a60c0ec0ccffcc0007aa715ee17fd0a63722963b"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4973'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '27'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B8E6:47716:247AD782:255F1C59:677847C9')] +{"id":1783605084,"node_id":"MDIwOlJldmlld0Rpc21pc3NlZEV2ZW50MTc4MzYwNTA4NA==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783605084","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"review_dismissed","commit_id":null,"commit_url":null,"created_at":"2018-08-11T01:07:10Z","dismissed_review":{"state":"changes_requested","review_id":145431295,"dismissal_message":"dismiss"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -226,8 +237,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:58 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4890'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"c611462fb35ce91ffcb3cbacc4956ad0"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.078285'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E19A:0ABA:315230:7CA3D9:5B7F1A36')] -{"id":1783779835,"node_id":"MDI1OlJldmlld1JlcXVlc3RSZW1vdmVkRXZlbnQxNzgzNzc5ODM1","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783779835","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"event":"review_request_removed","commit_id":null,"commit_url":null,"created_at":"2018-08-11T12:32:59Z","review_requester":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"requested_reviewer":{"login":"jasonwhite","id":865541,"node_id":"MDQ6VXNlcjg2NTU0MQ==","avatar_url":"https://avatars0.githubusercontent.com/u/865541?v=4","gravatar_id":"","url":"https://api.github.com/users/jasonwhite","html_url":"https://github.com/jasonwhite","followers_url":"https://api.github.com/users/jasonwhite/followers","following_url":"https://api.github.com/users/jasonwhite/following{/other_user}","gists_url":"https://api.github.com/users/jasonwhite/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonwhite/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonwhite/subscriptions","organizations_url":"https://api.github.com/users/jasonwhite/orgs","repos_url":"https://api.github.com/users/jasonwhite/repos","events_url":"https://api.github.com/users/jasonwhite/events{/privacy}","received_events_url":"https://api.github.com/users/jasonwhite/received_events","type":"User","site_admin":false},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:45 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"731b28095eba1e3064e1591566d31e7e41beaca57b8f55494a048f26d9c41948"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4972'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '28'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B8EA:7BB2F:22193A16:22FD7FBD:677847C9')] +{"id":1783779835,"node_id":"MDI1OlJldmlld1JlcXVlc3RSZW1vdmVkRXZlbnQxNzgzNzc5ODM1","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783779835","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"review_request_removed","commit_id":null,"commit_url":null,"created_at":"2018-08-11T12:32:59Z","review_requester":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"requested_reviewer":{"login":"jasonwhite","id":865541,"node_id":"MDQ6VXNlcjg2NTU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/865541?v=4","gravatar_id":"","url":"https://api.github.com/users/jasonwhite","html_url":"https://github.com/jasonwhite","followers_url":"https://api.github.com/users/jasonwhite/followers","following_url":"https://api.github.com/users/jasonwhite/following{/other_user}","gists_url":"https://api.github.com/users/jasonwhite/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonwhite/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonwhite/subscriptions","organizations_url":"https://api.github.com/users/jasonwhite/orgs","repos_url":"https://api.github.com/users/jasonwhite/repos","events_url":"https://api.github.com/users/jasonwhite/events{/privacy}","received_events_url":"https://api.github.com/users/jasonwhite/received_events","type":"User","user_view_type":"public","site_admin":false},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -237,8 +248,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:59 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4889'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"c4737a54b8a3e25200736104caf75b69"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.087883'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'F645:0ABA:314ED4:7C9B77:5B7F1A1B')] -{"id":1783779725,"node_id":"MDIyOk1hcmtlZEFzRHVwbGljYXRlRXZlbnQxNzgzNzc5NzI1","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783779725","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"event":"marked_as_duplicate","commit_id":null,"commit_url":null,"created_at":"2018-08-11T12:32:35Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:46 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"5307d53daccda518a43ec8593a5406ad34b697b04ede36b674e79ec5bc886036"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4971'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '29'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B8F0:1146F1:1DA1ADEE:1E6A9B71:677847CA')] +{"id":1783779725,"node_id":"MDIyOk1hcmtlZEFzRHVwbGljYXRlRXZlbnQxNzgzNzc5NzI1","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783779725","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"marked_as_duplicate","commit_id":null,"commit_url":null,"created_at":"2018-08-11T12:32:35Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -248,8 +259,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:33 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4915'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"a184ed730763ee7d13ad0b91001ee0d3"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.098896'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D6DE:0ABF:9FF77A:13C3DE7:5B7F1A1C')] -{"id":1789228962,"node_id":"MDI0OlVubWFya2VkQXNEdXBsaWNhdGVFdmVudDE3ODkyMjg5NjI=","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1789228962","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"event":"unmarked_as_duplicate","commit_id":null,"commit_url":null,"created_at":"2018-08-15T02:57:46Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:46 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"621c1b9878285c4381099d3c4c95475056dbe8ee0a020c05b50db8d442491eee"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4970'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '30'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B8FA:7CD91:22C52664:23A96CF9:677847CA')] +{"id":1789228962,"node_id":"MDI0OlVubWFya2VkQXNEdXBsaWNhdGVFdmVudDE3ODkyMjg5NjI=","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1789228962","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"unmarked_as_duplicate","commit_id":null,"commit_url":null,"created_at":"2018-08-15T02:57:46Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -259,8 +270,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4914'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"6dc6346c7f54f182fd6234d6e256df84"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.094375'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E400:0ABF:9FF7F1:13C3ECD:5B7F1A1D')] -{"id":1791766828,"node_id":"MDE5OkFkZGVkVG9Qcm9qZWN0RXZlbnQxNzkxNzY2ODI4","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1791766828","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"event":"added_to_project","commit_id":null,"commit_url":null,"created_at":"2018-08-16T08:13:24Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:46 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"0df632af3776a1c03d03d4f728b943cb14a1c346ceff2de5304eaaad3136561b"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4969'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '31'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B900:4D2C4:23362DCC:241A75DF:677847CA')] +{"id":1791766828,"node_id":"MDE5OkFkZGVkVG9Qcm9qZWN0RXZlbnQxNzkxNzY2ODI4","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1791766828","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"added_to_project","commit_id":null,"commit_url":null,"created_at":"2018-08-16T08:13:24Z","project_card":{"id":12179888,"url":"https://api.github.com/projects/columns/cards/12179888","project_id":1714960,"project_url":"https://api.github.com/projects/1714960","column_name":"To do"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -270,8 +281,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:35 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4913'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"fd57d20a075af6be908ebe9c9de2cddb"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.100872'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'F265:0ABA:314F33:7C9C61:5B7F1A1F')] -{"id":1791767766,"node_id":"MDI2Ok1vdmVkQ29sdW1uc0luUHJvamVjdEV2ZW50MTc5MTc2Nzc2Ng==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1791767766","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"event":"moved_columns_in_project","commit_id":null,"commit_url":null,"created_at":"2018-08-16T08:13:55Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:47 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"1e032ab79e34a2cfcae8dd2ff5765cb381b06951c0be98b053bfb79d2d2779ad"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4968'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '32'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B90C:12E178:1D9DB72C:1E624F5F:677847CA')] +{"id":1791767766,"node_id":"MDI2Ok1vdmVkQ29sdW1uc0luUHJvamVjdEV2ZW50MTc5MTc2Nzc2Ng==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1791767766","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"moved_columns_in_project","commit_id":null,"commit_url":null,"created_at":"2018-08-16T08:13:55Z","project_card":{"id":12179888,"url":"https://api.github.com/projects/columns/cards/12179888","project_id":1714960,"project_url":"https://api.github.com/projects/1714960","column_name":"In progress","previous_column_name":"To do"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -281,8 +292,8 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:36 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4912'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"547f3ba825578e3408fe404bfd35b24e"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.098965'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E9F1:0ABF:9FF8C9:13C4092:5B7F1A20')] -{"id":1791768212,"node_id":"MDIzOlJlbW92ZWRGcm9tUHJvamVjdEV2ZW50MTc5MTc2ODIxMg==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1791768212","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"event":"removed_from_project","commit_id":null,"commit_url":null,"created_at":"2018-08-16T08:14:08Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars2.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-23T01:02:17Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n"}} +[('Date', 'Fri, 03 Jan 2025 20:25:47 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"8aed9355cfdb41a2cada98078087755a82bcb13607af34766d7ce78962a9227e"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4967'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '33'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B90E:4D2C4:23362F80:241A77A7:677847CB')] +{"id":1791768212,"node_id":"MDIzOlJlbW92ZWRGcm9tUHJvamVjdEV2ZW50MTc5MTc2ODIxMg==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1791768212","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"removed_from_project","commit_id":null,"commit_url":null,"created_at":"2018-08-16T08:14:08Z","project_card":{"id":12179888,"url":"https://api.github.com/projects/columns/cards/12179888","project_id":1714960,"project_url":"https://api.github.com/projects/1714960","column_name":"In progress"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/events","html_url":"https://github.com/PyGithub/PyGithub/pull/857","id":348340651,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzEzMTAy","number":857,"title":"Adding new attributes to IssueEvent","user":{"login":"allevin","id":13543471,"node_id":"MDQ6VXNlcjEzNTQzNDcx","avatar_url":"https://avatars.githubusercontent.com/u/13543471?v=4","gravatar_id":"","url":"https://api.github.com/users/allevin","html_url":"https://github.com/allevin","followers_url":"https://api.github.com/users/allevin/followers","following_url":"https://api.github.com/users/allevin/following{/other_user}","gists_url":"https://api.github.com/users/allevin/gists{/gist_id}","starred_url":"https://api.github.com/users/allevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allevin/subscriptions","organizations_url":"https://api.github.com/users/allevin/orgs","repos_url":"https://api.github.com/users/allevin/repos","events_url":"https://api.github.com/users/allevin/events{/privacy}","received_events_url":"https://api.github.com/users/allevin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":895322782,"node_id":"MDU6TGFiZWw4OTUzMjI3ODI=","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"f46bb7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-08-07T14:14:44Z","updated_at":"2018-08-24T16:09:23Z","closed_at":"2018-08-24T16:01:30Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/857","html_url":"https://github.com/PyGithub/PyGithub/pull/857","diff_url":"https://github.com/PyGithub/PyGithub/pull/857.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/857.patch","merged_at":"2018-08-24T16:01:29Z"},"body":"See Issue #855 \r\n\r\nThe class [IssueEvent](https://github.com/PyGithub/PyGithub/blob/master/github/IssueEvent.py) is missing a large number of attributes documented in the [API](https://developer.github.com/v3/issues/events/).\r\n\r\nThis is also commented about in #653 to a degree\r\n\r\n27 of the tests 27 known event types have tests.\r\n\r\n**Currently Tested using Issue #30** \r\n- [x] subscribed\r\n- [x] assigned\r\n- [x] referenced \r\n- [x] closed \r\n- [x] labeled \r\n\r\n**Currently Tested using Issue/PR #538**\r\n- [x] merged\r\n- [x] mentioned\r\n- [x] review_requested\r\n\r\n**Currently Tested using Issue/PR #857**\r\n- [x] reopened\r\n- [x] unassigned\r\n- [x] unlabeled\r\n- [x] renamed\r\n- [x] base_ref_changed\r\n- [x] head_ref_deleted \r\n- [x] head_ref_restored\r\n- [x] milestoned\r\n- [x] demilestoned\r\n- [x] locked\r\n- [x] unlocked\r\n- [x] review_dismissed\r\n- [x] review_request_removed\r\n- [x] marked_as_duplicate\r\n- [x] unmarked_as_duplicate\r\n- [x] added_to_project \r\n- [x] moved_columns_in_project\r\n- [x] removed_from_project\r\n- [x] converted_note_to_issue - Note: this event is tied into Issue #866 \r\n\r\nThis PR is now ready to be merged\r\n\r\n","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/857/timeline","performed_via_github_app":null,"state_reason":null},"performed_via_github_app":null} https GET @@ -292,5 +303,5 @@ None {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Aug 2018 20:33:37 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4911'), ('X-RateLimit-Reset', '1535059890'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"c9c2512a1714a76980ef889b162b0824"'), ('Last-Modified', 'Tue, 21 Aug 2018 02:49:57 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.113217'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E9DA:0ABF:9FF928:13C4159:5B7F1A21')] -{"id":1791769149,"node_id":"MDI1OkNvbnZlcnRlZE5vdGVUb0lzc3VlRXZlbnQxNzkxNzY5MTQ5","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1791769149","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"event":"converted_note_to_issue","commit_id":null,"commit_url":null,"created_at":"2018-08-16T08:14:34Z","issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/866","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/866/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/866/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/866/events","html_url":"https://github.com/PyGithub/PyGithub/issues/866","id":351101033,"node_id":"MDU6SXNzdWUzNTExMDEwMzM=","number":866,"title":"test issue to be created","user":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-08-16T08:14:33Z","updated_at":"2018-08-16T08:14:55Z","closed_at":"2018-08-16T08:14:55Z","author_association":"MEMBER","active_lock_reason":null,"body":""}} +[('Date', 'Fri, 03 Jan 2025 20:25:47 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"27415c3f3c9398515e21b74dd03423270d71029feb65a70d09087c732eaf115f"'), ('Last-Modified', 'Fri, 03 Jan 2025 12:21:24 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=sailor-v-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4966'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '34'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B91A:16833C:1C6784BD:1D28A3A2:677847CB')] +{"id":1791769149,"node_id":"MDI1OkNvbnZlcnRlZE5vdGVUb0lzc3VlRXZlbnQxNzkxNzY5MTQ5","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/1791769149","actor":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"event":"converted_note_to_issue","commit_id":null,"commit_url":null,"created_at":"2018-08-16T08:14:34Z","project_card":{"id":12179901,"url":"https://api.github.com/projects/columns/cards/12179901","project_id":1714960,"project_url":"https://api.github.com/projects/1714960","column_name":"To do"},"issue":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/866","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/866/labels{/name}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/866/comments","events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/866/events","html_url":"https://github.com/PyGithub/PyGithub/issues/866","id":351101033,"node_id":"MDU6SXNzdWUzNTExMDEwMzM=","number":866,"title":"test issue to be created","user":{"login":"sfdye","id":1016390,"node_id":"MDQ6VXNlcjEwMTYzOTA=","avatar_url":"https://avatars.githubusercontent.com/u/1016390?v=4","gravatar_id":"","url":"https://api.github.com/users/sfdye","html_url":"https://github.com/sfdye","followers_url":"https://api.github.com/users/sfdye/followers","following_url":"https://api.github.com/users/sfdye/following{/other_user}","gists_url":"https://api.github.com/users/sfdye/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdye/subscriptions","organizations_url":"https://api.github.com/users/sfdye/orgs","repos_url":"https://api.github.com/users/sfdye/repos","events_url":"https://api.github.com/users/sfdye/events{/privacy}","received_events_url":"https://api.github.com/users/sfdye/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-08-16T08:14:33Z","updated_at":"2018-08-16T08:14:55Z","closed_at":"2018-08-16T08:14:55Z","author_association":"MEMBER","active_lock_reason":null,"body":"","reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/866/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/866/timeline","performed_via_github_app":null,"state_reason":"completed"},"performed_via_github_app":null} diff --git a/tests/ReplayData/Label.setUp.txt b/tests/ReplayData/Label.setUp.txt index 0dafe60777..a56c619a53 100644 --- a/tests/ReplayData/Label.setUp.txt +++ b/tests/ReplayData/Label.setUp.txt @@ -2,31 +2,20 @@ https GET api.github.com None -/user +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4964'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"708be4e44b32b617fad893a7eb4aed93"'), ('date', 'Sat, 19 May 2012 10:17:52 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"type":"User","public_gists":1,"company":"Criteo","blog":"http://vincent-jacques.net","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","total_private_repos":5,"private_gists":5,"collaborators":0,"plan":{"private_repos":5,"collaborators":1,"name":"micro","space":614400},"public_repos":11,"followers":13,"owned_private_repos":5,"hireable":false,"login":"jacquev6","email":"vincent@vincent-jacques.net","bio":"","disk_usage":16768,"html_url":"https://github.com/jacquev6","name":"Vincent Jacques","created_at":"2010-07-09T06:10:06Z","location":"Paris, France","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"following":24} +[('Date', 'Fri, 03 Jan 2025 20:54:50 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"581c439a3aed8bca0c870e7f3ba3b1615b67e161e36dbf91afdf4c180a753f09"'), ('Last-Modified', 'Fri, 03 Jan 2025 18:50:01 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4965'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '35'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'D144:4DB83:215E3141:2242EEFB:67784E9A')] +{"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","user_view_type":"public","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":"2025-01-03T18:50:01Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7117,"watchers_count":7117,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1792,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":356,"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":1792,"open_issues":356,"watchers":7117,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"PR_BODY","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"enabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1792,"subscribers_count":111} https GET api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4963'), ('content-length', '1097'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1da4fc53170e51b749ed7930a5fe947c"'), ('date', 'Sat, 19 May 2012 10:17:52 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"svn_url":"https://github.com/jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-18T20:30:15Z","forks":2,"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","git_url":"git://github.com/jacquev6/PyGithub.git","open_issues":17,"fork":false,"ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-18T20:30:14Z","mirror_url":null,"size":220,"private":false,"has_downloads":true,"watchers":13,"html_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"name":"PyGithub","permissions":{"pull":true,"admin":true,"push":true},"language":"Python","description":"Python library implementing the full Github API v3","created_at":"2012-02-25T12:53:47Z","id":3544490} - -https -GET -api.github.com -None -/repos/jacquev6/PyGithub/labels/Bug -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '97'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"fe2e942523eecb156d100829a6347516"'), ('date', 'Sat, 19 May 2012 09:40:37 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"} +[('Date', 'Fri, 03 Jan 2025 20:54:51 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"5953a55703ef0aaad9567958cd89107d3015ffdae76c85bdded1f252a77eeca7"'), ('Last-Modified', 'Wed, 18 Mar 2015 19:11:19 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4964'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '36'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'D150:5A83E:21B1AEF0:22966EC9:67784E9B')] +{"id":3330121,"node_id":"MDU6TGFiZWwzMzMwMTIx","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/bug","name":"bug","color":"e10c02","default":true,"description":null} diff --git a/tests/ReplayData/Label.testDelete.txt b/tests/ReplayData/Label.testDelete.txt index 41495db56c..63e0d7a3e9 100644 --- a/tests/ReplayData/Label.testDelete.txt +++ b/tests/ReplayData/Label.testDelete.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/labels/Bug +/repos/PyGithub/PyGithub/labels/bug {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/Label.testEdit.txt b/tests/ReplayData/Label.testEdit.txt index ed6804593b..4b933fe1da 100644 --- a/tests/ReplayData/Label.testEdit.txt +++ b/tests/ReplayData/Label.testEdit.txt @@ -2,9 +2,9 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub/labels/Bug +/repos/PyGithub/PyGithub/labels/bug {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.symmetra-preview+json'} {"color": "0000ff", "new_name": "LabelEditedByPyGithub", "description": "Description of LabelEditedByPyGithub"} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4965'), ('content-length', '133'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"57435796bd4f14b84ad92105669cfab1"'), ('date', 'Sat, 19 May 2012 10:17:44 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/LabelEditedByPyGithub","name":"LabelEditedByPyGithub","color":"0000ff","description":"Description of LabelEditedByPyGithub"} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/LabelEditedByPyGithub","name":"LabelEditedByPyGithub","color":"0000ff","description":"Description of LabelEditedByPyGithub"} diff --git a/tests/ReplayData/LazyRepository.setUp.txt b/tests/ReplayData/LazyRepository.setUp.txt deleted file mode 100644 index 386cc41ad8..0000000000 --- a/tests/ReplayData/LazyRepository.setUp.txt +++ /dev/null @@ -1,10 +0,0 @@ -https -GET -api.github.com -None -/user -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('content-length', '1304'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', 'c6c65e5196703428e7641f7d1e9bc353'), ('x-oauth-scopes', 'gist, repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"975c21d2f55751d13745ffc5fa12b1c2"'), ('access-control-allow-credentials', 'true'), ('status', '200 OK'), ('x-ratelimit-remaining', '4960'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', '6CE875F7:1E5F:42689E:5514C7D8'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('last-modified', 'Fri, 27 Mar 2015 02:56:43 GMT'), ('date', 'Fri, 27 Mar 2015 03:00:40 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1427427963')] -{"login":"korfuri","id":1124263,"avatar_url":"https://avatars.githubusercontent.com/u/1124263?v=3","gravatar_id":"","url":"https://api.github.com/users/korfuri","html_url":"https://github.com/korfuri","followers_url":"https://api.github.com/users/korfuri/followers","following_url":"https://api.github.com/users/korfuri/following{/other_user}","gists_url":"https://api.github.com/users/korfuri/gists{/gist_id}","starred_url":"https://api.github.com/users/korfuri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/korfuri/subscriptions","organizations_url":"https://api.github.com/users/korfuri/orgs","repos_url":"https://api.github.com/users/korfuri/repos","events_url":"https://api.github.com/users/korfuri/events{/privacy}","received_events_url":"https://api.github.com/users/korfuri/received_events","type":"User","site_admin":false,"name":"Uriel Corfa","company":"","blog":"http://korfuri.fr/","location":"","email":"uriel@corfa.fr","hireable":false,"bio":null,"public_repos":13,"public_gists":0,"followers":29,"following":57,"created_at":"2011-10-13T02:27:26Z","updated_at":"2015-03-27T02:56:43Z","private_gists":0,"total_private_repos":0,"owned_private_repos":0,"disk_usage":444,"collaborators":0,"plan":{"name":"free","space":976562499,"collaborators":0,"private_repos":0}} diff --git a/tests/ReplayData/LazyRepository.testChangeAutomateFixWhenNoVulnerabilityAlert.txt b/tests/ReplayData/LazyRepository.testChangeAutomateFixWhenNoVulnerabilityAlert.txt index 2a9ee38c32..870e08639e 100644 --- a/tests/ReplayData/LazyRepository.testChangeAutomateFixWhenNoVulnerabilityAlert.txt +++ b/tests/ReplayData/LazyRepository.testChangeAutomateFixWhenNoVulnerabilityAlert.txt @@ -2,7 +2,7 @@ https PUT api.github.com None -/repos/korfuri/PyGithub/automated-security-fixes +/repos/PyGithub/PyGithub/automated-security-fixes {'Accept': 'application/vnd.github.london-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 422 @@ -13,7 +13,7 @@ https DELETE api.github.com None -/repos/korfuri/PyGithub/automated-security-fixes +/repos/PyGithub/PyGithub/automated-security-fixes {'Accept': 'application/vnd.github.london-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 422 diff --git a/tests/ReplayData/LazyRepository.testDisableAutomatedSecurityFixes.txt b/tests/ReplayData/LazyRepository.testDisableAutomatedSecurityFixes.txt index d6d3f58e25..a2cdfaa0eb 100644 --- a/tests/ReplayData/LazyRepository.testDisableAutomatedSecurityFixes.txt +++ b/tests/ReplayData/LazyRepository.testDisableAutomatedSecurityFixes.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/korfuri/PyGithub/automated-security-fixes +/repos/PyGithub/PyGithub/automated-security-fixes {'Accept': 'application/vnd.github.london-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/LazyRepository.testDisableVulnerabilityAlert.txt b/tests/ReplayData/LazyRepository.testDisableVulnerabilityAlert.txt index 866a7de251..edb02e4484 100644 --- a/tests/ReplayData/LazyRepository.testDisableVulnerabilityAlert.txt +++ b/tests/ReplayData/LazyRepository.testDisableVulnerabilityAlert.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/korfuri/PyGithub/vulnerability-alerts +/repos/PyGithub/PyGithub/vulnerability-alerts {'Accept': 'application/vnd.github.dorian-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/LazyRepository.testEnableAutomatedSecurityFixes.txt b/tests/ReplayData/LazyRepository.testEnableAutomatedSecurityFixes.txt index 2698dd65fd..a6baa7b9f1 100644 --- a/tests/ReplayData/LazyRepository.testEnableAutomatedSecurityFixes.txt +++ b/tests/ReplayData/LazyRepository.testEnableAutomatedSecurityFixes.txt @@ -2,7 +2,7 @@ https PUT api.github.com None -/repos/korfuri/PyGithub/automated-security-fixes +/repos/PyGithub/PyGithub/automated-security-fixes {'Accept': 'application/vnd.github.london-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/LazyRepository.testEnableVulnerabilityAlert.txt b/tests/ReplayData/LazyRepository.testEnableVulnerabilityAlert.txt index dd1b8d16b1..1fc02c5be7 100644 --- a/tests/ReplayData/LazyRepository.testEnableVulnerabilityAlert.txt +++ b/tests/ReplayData/LazyRepository.testEnableVulnerabilityAlert.txt @@ -2,7 +2,7 @@ https PUT api.github.com None -/repos/korfuri/PyGithub/vulnerability-alerts +/repos/PyGithub/PyGithub/vulnerability-alerts {'Accept': 'application/vnd.github.dorian-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/LazyRepository.testGetIssues.txt b/tests/ReplayData/LazyRepository.testGetIssues.txt index d61bca832a..85407a8988 100644 --- a/tests/ReplayData/LazyRepository.testGetIssues.txt +++ b/tests/ReplayData/LazyRepository.testGetIssues.txt @@ -2,18 +2,18 @@ https GET api.github.com None -/repos/korfuri/PyGithub +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('content-length', '13643'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', 'd594a23ec74671eba905bf91ef329026'), ('x-oauth-scopes', 'gist, repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', 'repo'), ('etag', '"4a598c12d70d21ed45f8cc87ca10c0ef"'), ('access-control-allow-credentials', 'true'), ('status', '200 OK'), ('x-ratelimit-remaining', '4963'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', '6CE875F7:2CC6:6A71E4:5514C7D6'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('last-modified', 'Fri, 27 Mar 2015 02:56:43 GMT'), ('date', 'Fri, 27 Mar 2015 03:00:38 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1427427963')] -{"id":32964720,"name":"PyGithub","full_name":"korfuri/PyGithub","owner":{"login":"korfuri","id":1124263,"avatar_url":"https://avatars.githubusercontent.com/u/1124263?v=3","gravatar_id":"","url":"https://api.github.com/users/korfuri","html_url":"https://github.com/korfuri","followers_url":"https://api.github.com/users/korfuri/followers","following_url":"https://api.github.com/users/korfuri/following{/other_user}","gists_url":"https://api.github.com/users/korfuri/gists{/gist_id}","starred_url":"https://api.github.com/users/korfuri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/korfuri/subscriptions","organizations_url":"https://api.github.com/users/korfuri/orgs","repos_url":"https://api.github.com/users/korfuri/repos","events_url":"https://api.github.com/users/korfuri/events{/privacy}","received_events_url":"https://api.github.com/users/korfuri/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/korfuri/PyGithub","description":"Python library implementing the GitHub API v3","fork":true,"url":"https://api.github.com/repos/korfuri/PyGithub","forks_url":"https://api.github.com/repos/korfuri/PyGithub/forks","keys_url":"https://api.github.com/repos/korfuri/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/korfuri/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/korfuri/PyGithub/teams","hooks_url":"https://api.github.com/repos/korfuri/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/korfuri/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/korfuri/PyGithub/events","assignees_url":"https://api.github.com/repos/korfuri/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/korfuri/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/korfuri/PyGithub/tags","blobs_url":"https://api.github.com/repos/korfuri/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/korfuri/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/korfuri/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/korfuri/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/korfuri/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/korfuri/PyGithub/languages","stargazers_url":"https://api.github.com/repos/korfuri/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/korfuri/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/korfuri/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/korfuri/PyGithub/subscription","commits_url":"https://api.github.com/repos/korfuri/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/korfuri/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/korfuri/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/korfuri/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/korfuri/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/korfuri/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/korfuri/PyGithub/merges","archive_url":"https://api.github.com/repos/korfuri/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/korfuri/PyGithub/downloads","issues_url":"https://api.github.com/repos/korfuri/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/korfuri/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/korfuri/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/korfuri/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/korfuri/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/korfuri/PyGithub/releases{/id}","created_at":"2015-03-27T02:56:40Z","updated_at":"2015-03-27T02:56:43Z","pushed_at":"2015-03-18T19:20:30Z","git_url":"git://github.com/korfuri/PyGithub.git","ssh_url":"git@github.com:korfuri/PyGithub.git","clone_url":"https://github.com/korfuri/PyGithub.git","svn_url":"https://github.com/korfuri/PyGithub","homepage":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"parent":{"id":32905113,"name":"PyGithub","full_name":"Jucyio/PyGithub","owner":{"login":"Jucyio","id":11623651,"avatar_url":"https://avatars.githubusercontent.com/u/11623651?v=3","gravatar_id":"","url":"https://api.github.com/users/Jucyio","html_url":"https://github.com/Jucyio","followers_url":"https://api.github.com/users/Jucyio/followers","following_url":"https://api.github.com/users/Jucyio/following{/other_user}","gists_url":"https://api.github.com/users/Jucyio/gists{/gist_id}","starred_url":"https://api.github.com/users/Jucyio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jucyio/subscriptions","organizations_url":"https://api.github.com/users/Jucyio/orgs","repos_url":"https://api.github.com/users/Jucyio/repos","events_url":"https://api.github.com/users/Jucyio/events{/privacy}","received_events_url":"https://api.github.com/users/Jucyio/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Jucyio/PyGithub","description":"Python library implementing the GitHub API v3","fork":true,"url":"https://api.github.com/repos/Jucyio/PyGithub","forks_url":"https://api.github.com/repos/Jucyio/PyGithub/forks","keys_url":"https://api.github.com/repos/Jucyio/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Jucyio/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Jucyio/PyGithub/teams","hooks_url":"https://api.github.com/repos/Jucyio/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/Jucyio/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/Jucyio/PyGithub/events","assignees_url":"https://api.github.com/repos/Jucyio/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/Jucyio/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/Jucyio/PyGithub/tags","blobs_url":"https://api.github.com/repos/Jucyio/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Jucyio/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Jucyio/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/Jucyio/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Jucyio/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/Jucyio/PyGithub/languages","stargazers_url":"https://api.github.com/repos/Jucyio/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/Jucyio/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/Jucyio/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/Jucyio/PyGithub/subscription","commits_url":"https://api.github.com/repos/Jucyio/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/Jucyio/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/Jucyio/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/Jucyio/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/Jucyio/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/Jucyio/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Jucyio/PyGithub/merges","archive_url":"https://api.github.com/repos/Jucyio/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Jucyio/PyGithub/downloads","issues_url":"https://api.github.com/repos/Jucyio/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/Jucyio/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/Jucyio/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/Jucyio/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Jucyio/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/Jucyio/PyGithub/releases{/id}","created_at":"2015-03-26T03:17:03Z","updated_at":"2015-03-26T03:17:05Z","pushed_at":"2015-03-18T19:20:30Z","git_url":"git://github.com/Jucyio/PyGithub.git","ssh_url":"git@github.com:Jucyio/PyGithub.git","clone_url":"https://github.com/Jucyio/PyGithub.git","svn_url":"https://github.com/Jucyio/PyGithub","homepage":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"},"source":{"id":3544490,"name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"PyGithub","id":11288996,"avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=3","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},"private":false,"html_url":"https://github.com/PyGithub/PyGithub","description":"Python library implementing 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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2015-03-26T14:31:35Z","pushed_at":"2015-03-18T19:20:30Z","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":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":559,"watchers_count":559,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":152,"mirror_url":null,"open_issues_count":24,"forks":152,"open_issues":24,"watchers":559,"default_branch":"master"},"network_count":152,"subscribers_count":1} +{"id":32964720,"name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"korfuri","id":1124263,"avatar_url":"https://avatars.githubusercontent.com/u/1124263?v=3","gravatar_id":"","url":"https://api.github.com/users/korfuri","html_url":"https://github.com/korfuri","followers_url":"https://api.github.com/users/korfuri/followers","following_url":"https://api.github.com/users/korfuri/following{/other_user}","gists_url":"https://api.github.com/users/korfuri/gists{/gist_id}","starred_url":"https://api.github.com/users/korfuri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/korfuri/subscriptions","organizations_url":"https://api.github.com/users/korfuri/orgs","repos_url":"https://api.github.com/users/korfuri/repos","events_url":"https://api.github.com/users/korfuri/events{/privacy}","received_events_url":"https://api.github.com/users/korfuri/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/PyGithub/PyGithub","description":"Python library implementing the GitHub API v3","fork":true,"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}","created_at":"2015-03-27T02:56:40Z","updated_at":"2015-03-27T02:56:43Z","pushed_at":"2015-03-18T19:20:30Z","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":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"parent":{"id":32905113,"name":"PyGithub","full_name":"Jucyio/PyGithub","owner":{"login":"Jucyio","id":11623651,"avatar_url":"https://avatars.githubusercontent.com/u/11623651?v=3","gravatar_id":"","url":"https://api.github.com/users/Jucyio","html_url":"https://github.com/Jucyio","followers_url":"https://api.github.com/users/Jucyio/followers","following_url":"https://api.github.com/users/Jucyio/following{/other_user}","gists_url":"https://api.github.com/users/Jucyio/gists{/gist_id}","starred_url":"https://api.github.com/users/Jucyio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jucyio/subscriptions","organizations_url":"https://api.github.com/users/Jucyio/orgs","repos_url":"https://api.github.com/users/Jucyio/repos","events_url":"https://api.github.com/users/Jucyio/events{/privacy}","received_events_url":"https://api.github.com/users/Jucyio/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Jucyio/PyGithub","description":"Python library implementing the GitHub API v3","fork":true,"url":"https://api.github.com/repos/Jucyio/PyGithub","forks_url":"https://api.github.com/repos/Jucyio/PyGithub/forks","keys_url":"https://api.github.com/repos/Jucyio/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Jucyio/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Jucyio/PyGithub/teams","hooks_url":"https://api.github.com/repos/Jucyio/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/Jucyio/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/Jucyio/PyGithub/events","assignees_url":"https://api.github.com/repos/Jucyio/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/Jucyio/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/Jucyio/PyGithub/tags","blobs_url":"https://api.github.com/repos/Jucyio/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Jucyio/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Jucyio/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/Jucyio/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Jucyio/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/Jucyio/PyGithub/languages","stargazers_url":"https://api.github.com/repos/Jucyio/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/Jucyio/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/Jucyio/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/Jucyio/PyGithub/subscription","commits_url":"https://api.github.com/repos/Jucyio/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/Jucyio/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/Jucyio/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/Jucyio/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/Jucyio/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/Jucyio/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Jucyio/PyGithub/merges","archive_url":"https://api.github.com/repos/Jucyio/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Jucyio/PyGithub/downloads","issues_url":"https://api.github.com/repos/Jucyio/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/Jucyio/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/Jucyio/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/Jucyio/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Jucyio/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/Jucyio/PyGithub/releases{/id}","created_at":"2015-03-26T03:17:03Z","updated_at":"2015-03-26T03:17:05Z","pushed_at":"2015-03-18T19:20:30Z","git_url":"git://github.com/Jucyio/PyGithub.git","ssh_url":"git@github.com:Jucyio/PyGithub.git","clone_url":"https://github.com/Jucyio/PyGithub.git","svn_url":"https://github.com/Jucyio/PyGithub","homepage":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"},"source":{"id":3544490,"name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"PyGithub","id":11288996,"avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=3","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},"private":false,"html_url":"https://github.com/PyGithub/PyGithub","description":"Python library implementing 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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2015-03-26T14:31:35Z","pushed_at":"2015-03-18T19:20:30Z","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":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":559,"watchers_count":559,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":152,"mirror_url":null,"open_issues_count":24,"forks":152,"open_issues":24,"watchers":559,"default_branch":"master"},"network_count":152,"subscribers_count":1} https GET api.github.com None -/repos/korfuri/PyGithub/issues +/repos/PyGithub/PyGithub/issues {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -24,7 +24,7 @@ https GET api.github.com None -/repos/korfuri/PyGithub/issues +/repos/PyGithub/PyGithub/issues {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/LazyRepository.testGetVulnerabilityAlert.txt b/tests/ReplayData/LazyRepository.testGetVulnerabilityAlert.txt index 9d4e08e45b..324a2e0161 100644 --- a/tests/ReplayData/LazyRepository.testGetVulnerabilityAlert.txt +++ b/tests/ReplayData/LazyRepository.testGetVulnerabilityAlert.txt @@ -2,18 +2,18 @@ https GET api.github.com None -/repos/korfuri/PyGithub +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('Date', 'Tue, 06 Aug 2019 11:26:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4744'), ('X-RateLimit-Reset', '1565093788'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"bcd71356b0501183a991a88b20784d03"'), ('Last-Modified', 'Tue, 06 Aug 2019 10:07:25 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, read:packages, repo, user, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '35DE:9CE7:431A40B:5049896:5D496401')] -{"id":197130728,"node_id":"MDEwOlJlcG9zaXRvcnkxOTcxMzA3Mjg=","name":"PyGithub","full_name":"korfuri/PyGithub","private":false,"owner":{"login":"korfuri","id":29245119,"node_id":"MDQ6VXNlcjI5MjQ1MTE5","avatar_url":"https://avatars3.githubusercontent.com/u/29245119?v=4","gravatar_id":"","url":"https://api.github.com/users/korfuri","html_url":"https://github.com/korfuri","followers_url":"https://api.github.com/users/korfuri/followers","following_url":"https://api.github.com/users/korfuri/following{/other_user}","gists_url":"https://api.github.com/users/korfuri/gists{/gist_id}","starred_url":"https://api.github.com/users/korfuri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/korfuri/subscriptions","organizations_url":"https://api.github.com/users/korfuri/orgs","repos_url":"https://api.github.com/users/korfuri/repos","events_url":"https://api.github.com/users/korfuri/events{/privacy}","received_events_url":"https://api.github.com/users/korfuri/received_events","type":"User","site_admin":false},"html_url":"https://github.com/korfuri/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/korfuri/PyGithub","forks_url":"https://api.github.com/repos/korfuri/PyGithub/forks","keys_url":"https://api.github.com/repos/korfuri/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/korfuri/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/korfuri/PyGithub/teams","hooks_url":"https://api.github.com/repos/korfuri/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/korfuri/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/korfuri/PyGithub/events","assignees_url":"https://api.github.com/repos/korfuri/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/korfuri/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/korfuri/PyGithub/tags","blobs_url":"https://api.github.com/repos/korfuri/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/korfuri/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/korfuri/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/korfuri/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/korfuri/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/korfuri/PyGithub/languages","stargazers_url":"https://api.github.com/repos/korfuri/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/korfuri/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/korfuri/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/korfuri/PyGithub/subscription","commits_url":"https://api.github.com/repos/korfuri/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/korfuri/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/korfuri/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/korfuri/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/korfuri/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/korfuri/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/korfuri/PyGithub/merges","archive_url":"https://api.github.com/repos/korfuri/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/korfuri/PyGithub/downloads","issues_url":"https://api.github.com/repos/korfuri/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/korfuri/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/korfuri/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/korfuri/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/korfuri/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/korfuri/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/korfuri/PyGithub/deployments","created_at":"2019-07-16T06:05:51Z","updated_at":"2019-08-06T10:07:25Z","pushed_at":"2019-08-06T10:07:21Z","git_url":"git://github.com/korfuri/PyGithub.git","ssh_url":"git@github.com:korfuri/PyGithub.git","clone_url":"https://github.com/korfuri/PyGithub.git","svn_url":"https://github.com/korfuri/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":11917,"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":0,"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"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"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://avatars0.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":"2019-08-06T05:16:13Z","pushed_at":"2019-08-06T10:07:24Z","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":11949,"stargazers_count":2735,"watchers_count":2735,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":939,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":68,"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"},"forks":939,"open_issues":68,"watchers":2735,"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://avatars0.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":"2019-08-06T05:16:13Z","pushed_at":"2019-08-06T10:07:24Z","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":11949,"stargazers_count":2735,"watchers_count":2735,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":939,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":68,"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"},"forks":939,"open_issues":68,"watchers":2735,"default_branch":"master"},"network_count":939,"subscribers_count":0} +{"id":197130728,"node_id":"MDEwOlJlcG9zaXRvcnkxOTcxMzA3Mjg=","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"korfuri","id":29245119,"node_id":"MDQ6VXNlcjI5MjQ1MTE5","avatar_url":"https://avatars3.githubusercontent.com/u/29245119?v=4","gravatar_id":"","url":"https://api.github.com/users/korfuri","html_url":"https://github.com/korfuri","followers_url":"https://api.github.com/users/korfuri/followers","following_url":"https://api.github.com/users/korfuri/following{/other_user}","gists_url":"https://api.github.com/users/korfuri/gists{/gist_id}","starred_url":"https://api.github.com/users/korfuri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/korfuri/subscriptions","organizations_url":"https://api.github.com/users/korfuri/orgs","repos_url":"https://api.github.com/users/korfuri/repos","events_url":"https://api.github.com/users/korfuri/events{/privacy}","received_events_url":"https://api.github.com/users/korfuri/received_events","type":"User","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"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":"2019-07-16T06:05:51Z","updated_at":"2019-08-06T10:07:25Z","pushed_at":"2019-08-06T10:07:21Z","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":11917,"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":0,"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"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"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://avatars0.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":"2019-08-06T05:16:13Z","pushed_at":"2019-08-06T10:07:24Z","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":11949,"stargazers_count":2735,"watchers_count":2735,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":939,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":68,"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"},"forks":939,"open_issues":68,"watchers":2735,"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://avatars0.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":"2019-08-06T05:16:13Z","pushed_at":"2019-08-06T10:07:24Z","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":11949,"stargazers_count":2735,"watchers_count":2735,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":939,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":68,"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"},"forks":939,"open_issues":68,"watchers":2735,"default_branch":"master"},"network_count":939,"subscribers_count":0} https GET api.github.com None -/repos/korfuri/PyGithub/vulnerability-alerts +/repos/PyGithub/PyGithub/vulnerability-alerts {'Accept': 'application/vnd.github.dorian-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/LazyRepository.testGetVulnerabilityAlertWhenTurnedOff.txt b/tests/ReplayData/LazyRepository.testGetVulnerabilityAlertWhenTurnedOff.txt index 8a265c1f1b..c0903fc49c 100644 --- a/tests/ReplayData/LazyRepository.testGetVulnerabilityAlertWhenTurnedOff.txt +++ b/tests/ReplayData/LazyRepository.testGetVulnerabilityAlertWhenTurnedOff.txt @@ -2,18 +2,18 @@ https GET api.github.com None -/repos/korfuri/PyGithub +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('Date', 'Tue, 06 Aug 2019 11:27:42 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4734'), ('X-RateLimit-Reset', '1565093788'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"bcd71356b0501183a991a88b20784d03"'), ('Last-Modified', 'Tue, 06 Aug 2019 10:07:25 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, read:packages, repo, user, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '35F2:4F41:441FFA5:511AEC0:5D49642E')] -{"id":197130728,"node_id":"MDEwOlJlcG9zaXRvcnkxOTcxMzA3Mjg=","name":"PyGithub","full_name":"korfuri/PyGithub","private":false,"owner":{"login":"korfuri","id":29245119,"node_id":"MDQ6VXNlcjI5MjQ1MTE5","avatar_url":"https://avatars3.githubusercontent.com/u/29245119?v=4","gravatar_id":"","url":"https://api.github.com/users/korfuri","html_url":"https://github.com/korfuri","followers_url":"https://api.github.com/users/korfuri/followers","following_url":"https://api.github.com/users/korfuri/following{/other_user}","gists_url":"https://api.github.com/users/korfuri/gists{/gist_id}","starred_url":"https://api.github.com/users/korfuri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/korfuri/subscriptions","organizations_url":"https://api.github.com/users/korfuri/orgs","repos_url":"https://api.github.com/users/korfuri/repos","events_url":"https://api.github.com/users/korfuri/events{/privacy}","received_events_url":"https://api.github.com/users/korfuri/received_events","type":"User","site_admin":false},"html_url":"https://github.com/korfuri/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/korfuri/PyGithub","forks_url":"https://api.github.com/repos/korfuri/PyGithub/forks","keys_url":"https://api.github.com/repos/korfuri/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/korfuri/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/korfuri/PyGithub/teams","hooks_url":"https://api.github.com/repos/korfuri/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/korfuri/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/korfuri/PyGithub/events","assignees_url":"https://api.github.com/repos/korfuri/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/korfuri/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/korfuri/PyGithub/tags","blobs_url":"https://api.github.com/repos/korfuri/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/korfuri/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/korfuri/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/korfuri/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/korfuri/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/korfuri/PyGithub/languages","stargazers_url":"https://api.github.com/repos/korfuri/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/korfuri/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/korfuri/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/korfuri/PyGithub/subscription","commits_url":"https://api.github.com/repos/korfuri/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/korfuri/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/korfuri/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/korfuri/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/korfuri/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/korfuri/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/korfuri/PyGithub/merges","archive_url":"https://api.github.com/repos/korfuri/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/korfuri/PyGithub/downloads","issues_url":"https://api.github.com/repos/korfuri/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/korfuri/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/korfuri/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/korfuri/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/korfuri/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/korfuri/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/korfuri/PyGithub/deployments","created_at":"2019-07-16T06:05:51Z","updated_at":"2019-08-06T10:07:25Z","pushed_at":"2019-08-06T10:07:21Z","git_url":"git://github.com/korfuri/PyGithub.git","ssh_url":"git@github.com:korfuri/PyGithub.git","clone_url":"https://github.com/korfuri/PyGithub.git","svn_url":"https://github.com/korfuri/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":11917,"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":0,"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"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"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://avatars0.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":"2019-08-06T05:16:13Z","pushed_at":"2019-08-06T10:07:24Z","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":11949,"stargazers_count":2735,"watchers_count":2735,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":939,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":68,"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"},"forks":939,"open_issues":68,"watchers":2735,"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://avatars0.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":"2019-08-06T05:16:13Z","pushed_at":"2019-08-06T10:07:24Z","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":11949,"stargazers_count":2735,"watchers_count":2735,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":939,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":68,"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"},"forks":939,"open_issues":68,"watchers":2735,"default_branch":"master"},"network_count":939,"subscribers_count":0} +{"id":197130728,"node_id":"MDEwOlJlcG9zaXRvcnkxOTcxMzA3Mjg=","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"korfuri","id":29245119,"node_id":"MDQ6VXNlcjI5MjQ1MTE5","avatar_url":"https://avatars3.githubusercontent.com/u/29245119?v=4","gravatar_id":"","url":"https://api.github.com/users/korfuri","html_url":"https://github.com/korfuri","followers_url":"https://api.github.com/users/korfuri/followers","following_url":"https://api.github.com/users/korfuri/following{/other_user}","gists_url":"https://api.github.com/users/korfuri/gists{/gist_id}","starred_url":"https://api.github.com/users/korfuri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/korfuri/subscriptions","organizations_url":"https://api.github.com/users/korfuri/orgs","repos_url":"https://api.github.com/users/korfuri/repos","events_url":"https://api.github.com/users/korfuri/events{/privacy}","received_events_url":"https://api.github.com/users/korfuri/received_events","type":"User","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"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":"2019-07-16T06:05:51Z","updated_at":"2019-08-06T10:07:25Z","pushed_at":"2019-08-06T10:07:21Z","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":11917,"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":0,"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"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"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://avatars0.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":"2019-08-06T05:16:13Z","pushed_at":"2019-08-06T10:07:24Z","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":11949,"stargazers_count":2735,"watchers_count":2735,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":939,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":68,"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"},"forks":939,"open_issues":68,"watchers":2735,"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://avatars0.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":"2019-08-06T05:16:13Z","pushed_at":"2019-08-06T10:07:24Z","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":11949,"stargazers_count":2735,"watchers_count":2735,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":939,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":68,"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"},"forks":939,"open_issues":68,"watchers":2735,"default_branch":"master"},"network_count":939,"subscribers_count":0} https GET api.github.com None -/repos/korfuri/PyGithub/vulnerability-alerts +/repos/PyGithub/PyGithub/vulnerability-alerts {'Accept': 'application/vnd.github.dorian-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 404 diff --git a/tests/ReplayData/LazyRepository.testOwner.txt b/tests/ReplayData/LazyRepository.testOwner.txt index 87b3421336..98ca5ea2e5 100644 --- a/tests/ReplayData/LazyRepository.testOwner.txt +++ b/tests/ReplayData/LazyRepository.testOwner.txt @@ -2,20 +2,20 @@ https GET api.github.com None -/repos/korfuri/PyGithub +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('content-length', '13643'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', 'dc1ce2bfb41810a06c705e83b388572d'), ('x-oauth-scopes', 'gist, repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', 'repo'), ('etag', '"4a598c12d70d21ed45f8cc87ca10c0ef"'), ('access-control-allow-credentials', 'true'), ('status', '200 OK'), ('x-ratelimit-remaining', '4959'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', '6CE875F7:1E66:6831F8:5514C7D8'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('last-modified', 'Fri, 27 Mar 2015 02:56:43 GMT'), ('date', 'Fri, 27 Mar 2015 03:00:40 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1427427963')] -{"id":32964720,"name":"PyGithub","full_name":"korfuri/PyGithub","owner":{"login":"korfuri","id":1124263,"avatar_url":"https://avatars.githubusercontent.com/u/1124263?v=3","gravatar_id":"","url":"https://api.github.com/users/korfuri","html_url":"https://github.com/korfuri","followers_url":"https://api.github.com/users/korfuri/followers","following_url":"https://api.github.com/users/korfuri/following{/other_user}","gists_url":"https://api.github.com/users/korfuri/gists{/gist_id}","starred_url":"https://api.github.com/users/korfuri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/korfuri/subscriptions","organizations_url":"https://api.github.com/users/korfuri/orgs","repos_url":"https://api.github.com/users/korfuri/repos","events_url":"https://api.github.com/users/korfuri/events{/privacy}","received_events_url":"https://api.github.com/users/korfuri/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/korfuri/PyGithub","description":"Python library implementing the GitHub API v3","fork":true,"url":"https://api.github.com/repos/korfuri/PyGithub","forks_url":"https://api.github.com/repos/korfuri/PyGithub/forks","keys_url":"https://api.github.com/repos/korfuri/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/korfuri/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/korfuri/PyGithub/teams","hooks_url":"https://api.github.com/repos/korfuri/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/korfuri/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/korfuri/PyGithub/events","assignees_url":"https://api.github.com/repos/korfuri/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/korfuri/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/korfuri/PyGithub/tags","blobs_url":"https://api.github.com/repos/korfuri/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/korfuri/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/korfuri/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/korfuri/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/korfuri/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/korfuri/PyGithub/languages","stargazers_url":"https://api.github.com/repos/korfuri/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/korfuri/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/korfuri/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/korfuri/PyGithub/subscription","commits_url":"https://api.github.com/repos/korfuri/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/korfuri/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/korfuri/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/korfuri/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/korfuri/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/korfuri/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/korfuri/PyGithub/merges","archive_url":"https://api.github.com/repos/korfuri/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/korfuri/PyGithub/downloads","issues_url":"https://api.github.com/repos/korfuri/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/korfuri/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/korfuri/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/korfuri/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/korfuri/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/korfuri/PyGithub/releases{/id}","created_at":"2015-03-27T02:56:40Z","updated_at":"2015-03-27T02:56:43Z","pushed_at":"2015-03-18T19:20:30Z","git_url":"git://github.com/korfuri/PyGithub.git","ssh_url":"git@github.com:korfuri/PyGithub.git","clone_url":"https://github.com/korfuri/PyGithub.git","svn_url":"https://github.com/korfuri/PyGithub","homepage":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"parent":{"id":32905113,"name":"PyGithub","full_name":"Jucyio/PyGithub","owner":{"login":"Jucyio","id":11623651,"avatar_url":"https://avatars.githubusercontent.com/u/11623651?v=3","gravatar_id":"","url":"https://api.github.com/users/Jucyio","html_url":"https://github.com/Jucyio","followers_url":"https://api.github.com/users/Jucyio/followers","following_url":"https://api.github.com/users/Jucyio/following{/other_user}","gists_url":"https://api.github.com/users/Jucyio/gists{/gist_id}","starred_url":"https://api.github.com/users/Jucyio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jucyio/subscriptions","organizations_url":"https://api.github.com/users/Jucyio/orgs","repos_url":"https://api.github.com/users/Jucyio/repos","events_url":"https://api.github.com/users/Jucyio/events{/privacy}","received_events_url":"https://api.github.com/users/Jucyio/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Jucyio/PyGithub","description":"Python library implementing the GitHub API v3","fork":true,"url":"https://api.github.com/repos/Jucyio/PyGithub","forks_url":"https://api.github.com/repos/Jucyio/PyGithub/forks","keys_url":"https://api.github.com/repos/Jucyio/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Jucyio/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Jucyio/PyGithub/teams","hooks_url":"https://api.github.com/repos/Jucyio/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/Jucyio/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/Jucyio/PyGithub/events","assignees_url":"https://api.github.com/repos/Jucyio/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/Jucyio/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/Jucyio/PyGithub/tags","blobs_url":"https://api.github.com/repos/Jucyio/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Jucyio/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Jucyio/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/Jucyio/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Jucyio/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/Jucyio/PyGithub/languages","stargazers_url":"https://api.github.com/repos/Jucyio/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/Jucyio/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/Jucyio/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/Jucyio/PyGithub/subscription","commits_url":"https://api.github.com/repos/Jucyio/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/Jucyio/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/Jucyio/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/Jucyio/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/Jucyio/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/Jucyio/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Jucyio/PyGithub/merges","archive_url":"https://api.github.com/repos/Jucyio/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Jucyio/PyGithub/downloads","issues_url":"https://api.github.com/repos/Jucyio/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/Jucyio/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/Jucyio/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/Jucyio/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Jucyio/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/Jucyio/PyGithub/releases{/id}","created_at":"2015-03-26T03:17:03Z","updated_at":"2015-03-26T03:17:05Z","pushed_at":"2015-03-18T19:20:30Z","git_url":"git://github.com/Jucyio/PyGithub.git","ssh_url":"git@github.com:Jucyio/PyGithub.git","clone_url":"https://github.com/Jucyio/PyGithub.git","svn_url":"https://github.com/Jucyio/PyGithub","homepage":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"},"source":{"id":3544490,"name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"PyGithub","id":11288996,"avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=3","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},"private":false,"html_url":"https://github.com/PyGithub/PyGithub","description":"Python library implementing 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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2015-03-26T14:31:35Z","pushed_at":"2015-03-18T19:20:30Z","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":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":559,"watchers_count":559,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":152,"mirror_url":null,"open_issues_count":24,"forks":152,"open_issues":24,"watchers":559,"default_branch":"master"},"network_count":152,"subscribers_count":1} +{"id":32964720,"name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"korfuri","id":1124263,"avatar_url":"https://avatars.githubusercontent.com/u/1124263?v=3","gravatar_id":"","url":"https://api.github.com/users/korfuri","html_url":"https://github.com/korfuri","followers_url":"https://api.github.com/users/korfuri/followers","following_url":"https://api.github.com/users/korfuri/following{/other_user}","gists_url":"https://api.github.com/users/korfuri/gists{/gist_id}","starred_url":"https://api.github.com/users/korfuri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/korfuri/subscriptions","organizations_url":"https://api.github.com/users/korfuri/orgs","repos_url":"https://api.github.com/users/korfuri/repos","events_url":"https://api.github.com/users/korfuri/events{/privacy}","received_events_url":"https://api.github.com/users/korfuri/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/PyGithub/PyGithub","description":"Python library implementing the GitHub API v3","fork":true,"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}","created_at":"2015-03-27T02:56:40Z","updated_at":"2015-03-27T02:56:43Z","pushed_at":"2015-03-18T19:20:30Z","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":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"parent":{"id":32905113,"name":"PyGithub","full_name":"Jucyio/PyGithub","owner":{"login":"Jucyio","id":11623651,"avatar_url":"https://avatars.githubusercontent.com/u/11623651?v=3","gravatar_id":"","url":"https://api.github.com/users/Jucyio","html_url":"https://github.com/Jucyio","followers_url":"https://api.github.com/users/Jucyio/followers","following_url":"https://api.github.com/users/Jucyio/following{/other_user}","gists_url":"https://api.github.com/users/Jucyio/gists{/gist_id}","starred_url":"https://api.github.com/users/Jucyio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jucyio/subscriptions","organizations_url":"https://api.github.com/users/Jucyio/orgs","repos_url":"https://api.github.com/users/Jucyio/repos","events_url":"https://api.github.com/users/Jucyio/events{/privacy}","received_events_url":"https://api.github.com/users/Jucyio/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Jucyio/PyGithub","description":"Python library implementing the GitHub API v3","fork":true,"url":"https://api.github.com/repos/Jucyio/PyGithub","forks_url":"https://api.github.com/repos/Jucyio/PyGithub/forks","keys_url":"https://api.github.com/repos/Jucyio/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Jucyio/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Jucyio/PyGithub/teams","hooks_url":"https://api.github.com/repos/Jucyio/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/Jucyio/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/Jucyio/PyGithub/events","assignees_url":"https://api.github.com/repos/Jucyio/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/Jucyio/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/Jucyio/PyGithub/tags","blobs_url":"https://api.github.com/repos/Jucyio/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Jucyio/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Jucyio/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/Jucyio/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Jucyio/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/Jucyio/PyGithub/languages","stargazers_url":"https://api.github.com/repos/Jucyio/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/Jucyio/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/Jucyio/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/Jucyio/PyGithub/subscription","commits_url":"https://api.github.com/repos/Jucyio/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/Jucyio/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/Jucyio/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/Jucyio/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/Jucyio/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/Jucyio/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Jucyio/PyGithub/merges","archive_url":"https://api.github.com/repos/Jucyio/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Jucyio/PyGithub/downloads","issues_url":"https://api.github.com/repos/Jucyio/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/Jucyio/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/Jucyio/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/Jucyio/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Jucyio/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/Jucyio/PyGithub/releases{/id}","created_at":"2015-03-26T03:17:03Z","updated_at":"2015-03-26T03:17:05Z","pushed_at":"2015-03-18T19:20:30Z","git_url":"git://github.com/Jucyio/PyGithub.git","ssh_url":"git@github.com:Jucyio/PyGithub.git","clone_url":"https://github.com/Jucyio/PyGithub.git","svn_url":"https://github.com/Jucyio/PyGithub","homepage":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"},"source":{"id":3544490,"name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"PyGithub","id":11288996,"avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=3","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},"private":false,"html_url":"https://github.com/PyGithub/PyGithub","description":"Python library implementing 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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2015-03-26T14:31:35Z","pushed_at":"2015-03-18T19:20:30Z","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":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":559,"watchers_count":559,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":152,"mirror_url":null,"open_issues_count":24,"forks":152,"open_issues":24,"watchers":559,"default_branch":"master"},"network_count":152,"subscribers_count":1} https GET api.github.com None -/repos/korfuri/PyGithub +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('content-length', '13643'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', '76d9828c7e4f1d910f7ba069e90ce976'), ('x-oauth-scopes', 'gist, repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', 'repo'), ('etag', '"4a598c12d70d21ed45f8cc87ca10c0ef"'), ('access-control-allow-credentials', 'true'), ('status', '200 OK'), ('x-ratelimit-remaining', '4958'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', '6CE875F7:1A8F:54374C:5514C7D9'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('last-modified', 'Fri, 27 Mar 2015 02:56:43 GMT'), ('date', 'Fri, 27 Mar 2015 03:00:41 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1427427963')] -{"id":32964720,"name":"PyGithub","full_name":"korfuri/PyGithub","owner":{"login":"korfuri","id":1124263,"avatar_url":"https://avatars.githubusercontent.com/u/1124263?v=3","gravatar_id":"","url":"https://api.github.com/users/korfuri","html_url":"https://github.com/korfuri","followers_url":"https://api.github.com/users/korfuri/followers","following_url":"https://api.github.com/users/korfuri/following{/other_user}","gists_url":"https://api.github.com/users/korfuri/gists{/gist_id}","starred_url":"https://api.github.com/users/korfuri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/korfuri/subscriptions","organizations_url":"https://api.github.com/users/korfuri/orgs","repos_url":"https://api.github.com/users/korfuri/repos","events_url":"https://api.github.com/users/korfuri/events{/privacy}","received_events_url":"https://api.github.com/users/korfuri/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/korfuri/PyGithub","description":"Python library implementing the GitHub API v3","fork":true,"url":"https://api.github.com/repos/korfuri/PyGithub","forks_url":"https://api.github.com/repos/korfuri/PyGithub/forks","keys_url":"https://api.github.com/repos/korfuri/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/korfuri/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/korfuri/PyGithub/teams","hooks_url":"https://api.github.com/repos/korfuri/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/korfuri/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/korfuri/PyGithub/events","assignees_url":"https://api.github.com/repos/korfuri/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/korfuri/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/korfuri/PyGithub/tags","blobs_url":"https://api.github.com/repos/korfuri/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/korfuri/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/korfuri/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/korfuri/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/korfuri/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/korfuri/PyGithub/languages","stargazers_url":"https://api.github.com/repos/korfuri/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/korfuri/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/korfuri/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/korfuri/PyGithub/subscription","commits_url":"https://api.github.com/repos/korfuri/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/korfuri/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/korfuri/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/korfuri/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/korfuri/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/korfuri/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/korfuri/PyGithub/merges","archive_url":"https://api.github.com/repos/korfuri/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/korfuri/PyGithub/downloads","issues_url":"https://api.github.com/repos/korfuri/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/korfuri/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/korfuri/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/korfuri/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/korfuri/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/korfuri/PyGithub/releases{/id}","created_at":"2015-03-27T02:56:40Z","updated_at":"2015-03-27T02:56:43Z","pushed_at":"2015-03-18T19:20:30Z","git_url":"git://github.com/korfuri/PyGithub.git","ssh_url":"git@github.com:korfuri/PyGithub.git","clone_url":"https://github.com/korfuri/PyGithub.git","svn_url":"https://github.com/korfuri/PyGithub","homepage":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"parent":{"id":32905113,"name":"PyGithub","full_name":"Jucyio/PyGithub","owner":{"login":"Jucyio","id":11623651,"avatar_url":"https://avatars.githubusercontent.com/u/11623651?v=3","gravatar_id":"","url":"https://api.github.com/users/Jucyio","html_url":"https://github.com/Jucyio","followers_url":"https://api.github.com/users/Jucyio/followers","following_url":"https://api.github.com/users/Jucyio/following{/other_user}","gists_url":"https://api.github.com/users/Jucyio/gists{/gist_id}","starred_url":"https://api.github.com/users/Jucyio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jucyio/subscriptions","organizations_url":"https://api.github.com/users/Jucyio/orgs","repos_url":"https://api.github.com/users/Jucyio/repos","events_url":"https://api.github.com/users/Jucyio/events{/privacy}","received_events_url":"https://api.github.com/users/Jucyio/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Jucyio/PyGithub","description":"Python library implementing the GitHub API v3","fork":true,"url":"https://api.github.com/repos/Jucyio/PyGithub","forks_url":"https://api.github.com/repos/Jucyio/PyGithub/forks","keys_url":"https://api.github.com/repos/Jucyio/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Jucyio/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Jucyio/PyGithub/teams","hooks_url":"https://api.github.com/repos/Jucyio/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/Jucyio/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/Jucyio/PyGithub/events","assignees_url":"https://api.github.com/repos/Jucyio/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/Jucyio/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/Jucyio/PyGithub/tags","blobs_url":"https://api.github.com/repos/Jucyio/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Jucyio/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Jucyio/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/Jucyio/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Jucyio/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/Jucyio/PyGithub/languages","stargazers_url":"https://api.github.com/repos/Jucyio/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/Jucyio/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/Jucyio/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/Jucyio/PyGithub/subscription","commits_url":"https://api.github.com/repos/Jucyio/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/Jucyio/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/Jucyio/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/Jucyio/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/Jucyio/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/Jucyio/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Jucyio/PyGithub/merges","archive_url":"https://api.github.com/repos/Jucyio/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Jucyio/PyGithub/downloads","issues_url":"https://api.github.com/repos/Jucyio/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/Jucyio/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/Jucyio/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/Jucyio/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Jucyio/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/Jucyio/PyGithub/releases{/id}","created_at":"2015-03-26T03:17:03Z","updated_at":"2015-03-26T03:17:05Z","pushed_at":"2015-03-18T19:20:30Z","git_url":"git://github.com/Jucyio/PyGithub.git","ssh_url":"git@github.com:Jucyio/PyGithub.git","clone_url":"https://github.com/Jucyio/PyGithub.git","svn_url":"https://github.com/Jucyio/PyGithub","homepage":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"},"source":{"id":3544490,"name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"PyGithub","id":11288996,"avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=3","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},"private":false,"html_url":"https://github.com/PyGithub/PyGithub","description":"Python library implementing 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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2015-03-26T14:31:35Z","pushed_at":"2015-03-18T19:20:30Z","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":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":559,"watchers_count":559,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":152,"mirror_url":null,"open_issues_count":24,"forks":152,"open_issues":24,"watchers":559,"default_branch":"master"},"network_count":152,"subscribers_count":1} +{"id":32964720,"name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"korfuri","id":1124263,"avatar_url":"https://avatars.githubusercontent.com/u/1124263?v=3","gravatar_id":"","url":"https://api.github.com/users/korfuri","html_url":"https://github.com/korfuri","followers_url":"https://api.github.com/users/korfuri/followers","following_url":"https://api.github.com/users/korfuri/following{/other_user}","gists_url":"https://api.github.com/users/korfuri/gists{/gist_id}","starred_url":"https://api.github.com/users/korfuri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/korfuri/subscriptions","organizations_url":"https://api.github.com/users/korfuri/orgs","repos_url":"https://api.github.com/users/korfuri/repos","events_url":"https://api.github.com/users/korfuri/events{/privacy}","received_events_url":"https://api.github.com/users/korfuri/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/PyGithub/PyGithub","description":"Python library implementing the GitHub API v3","fork":true,"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}","created_at":"2015-03-27T02:56:40Z","updated_at":"2015-03-27T02:56:43Z","pushed_at":"2015-03-18T19:20:30Z","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":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"parent":{"id":32905113,"name":"PyGithub","full_name":"Jucyio/PyGithub","owner":{"login":"Jucyio","id":11623651,"avatar_url":"https://avatars.githubusercontent.com/u/11623651?v=3","gravatar_id":"","url":"https://api.github.com/users/Jucyio","html_url":"https://github.com/Jucyio","followers_url":"https://api.github.com/users/Jucyio/followers","following_url":"https://api.github.com/users/Jucyio/following{/other_user}","gists_url":"https://api.github.com/users/Jucyio/gists{/gist_id}","starred_url":"https://api.github.com/users/Jucyio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jucyio/subscriptions","organizations_url":"https://api.github.com/users/Jucyio/orgs","repos_url":"https://api.github.com/users/Jucyio/repos","events_url":"https://api.github.com/users/Jucyio/events{/privacy}","received_events_url":"https://api.github.com/users/Jucyio/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Jucyio/PyGithub","description":"Python library implementing the GitHub API v3","fork":true,"url":"https://api.github.com/repos/Jucyio/PyGithub","forks_url":"https://api.github.com/repos/Jucyio/PyGithub/forks","keys_url":"https://api.github.com/repos/Jucyio/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Jucyio/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Jucyio/PyGithub/teams","hooks_url":"https://api.github.com/repos/Jucyio/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/Jucyio/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/Jucyio/PyGithub/events","assignees_url":"https://api.github.com/repos/Jucyio/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/Jucyio/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/Jucyio/PyGithub/tags","blobs_url":"https://api.github.com/repos/Jucyio/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Jucyio/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Jucyio/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/Jucyio/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Jucyio/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/Jucyio/PyGithub/languages","stargazers_url":"https://api.github.com/repos/Jucyio/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/Jucyio/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/Jucyio/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/Jucyio/PyGithub/subscription","commits_url":"https://api.github.com/repos/Jucyio/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/Jucyio/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/Jucyio/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/Jucyio/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/Jucyio/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/Jucyio/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Jucyio/PyGithub/merges","archive_url":"https://api.github.com/repos/Jucyio/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Jucyio/PyGithub/downloads","issues_url":"https://api.github.com/repos/Jucyio/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/Jucyio/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/Jucyio/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/Jucyio/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Jucyio/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/Jucyio/PyGithub/releases{/id}","created_at":"2015-03-26T03:17:03Z","updated_at":"2015-03-26T03:17:05Z","pushed_at":"2015-03-18T19:20:30Z","git_url":"git://github.com/Jucyio/PyGithub.git","ssh_url":"git@github.com:Jucyio/PyGithub.git","clone_url":"https://github.com/Jucyio/PyGithub.git","svn_url":"https://github.com/Jucyio/PyGithub","homepage":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"},"source":{"id":3544490,"name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"PyGithub","id":11288996,"avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=3","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},"private":false,"html_url":"https://github.com/PyGithub/PyGithub","description":"Python library implementing 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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2015-03-26T14:31:35Z","pushed_at":"2015-03-18T19:20:30Z","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":"http://jacquev6.github.io/PyGithub","size":15874,"stargazers_count":559,"watchers_count":559,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":152,"mirror_url":null,"open_issues_count":24,"forks":152,"open_issues":24,"watchers":559,"default_branch":"master"},"network_count":152,"subscribers_count":1} diff --git a/tests/ReplayData/License.setUp.txt b/tests/ReplayData/License.setUp.txt index cdd640fc43..560c3c2314 100644 --- a/tests/ReplayData/License.setUp.txt +++ b/tests/ReplayData/License.setUp.txt @@ -6,5 +6,5 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('content-length', '1927'), ('x-runtime-rack', '0.021099'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-oauth-scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"9f803324f4a6fde118084a597a68c1c5"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('referrer-policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('status', '200 OK'), ('x-ratelimit-remaining', '4932'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', 'DFF3:5CB3:1DA121:26987F:5AB33249'), ('date', 'Thu, 22 Mar 2018 04:34:17 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1521696564')] -{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","html_url":"http://choosealicense.com/licenses/mit/","description":"A short and simple permissive license with conditions only requiring preservation of copyright and license notices. Licensed works, modifications, and larger works may be distributed under different terms and without source code.","implementation":"Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. Replace [year] with the current year and [fullname] with the name (or names) of the copyright holders.","permissions":["commercial-use","modifications","distribution","private-use"],"conditions":["include-copyright"],"limitations":["liability","warranty"],"body":"MIT License\n\nCopyright (c) [year] [fullname]\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","featured":true} +[('Date', 'Fri, 03 Jan 2025 21:02:19 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"490649ace0d045490f6aae672bacf638dd2b937aeb7c8f94c050fbd93d1fa27f"'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4963'), ('X-RateLimit-Reset', '1735938877'), ('X-RateLimit-Used', '37'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A1B4:12E656:1E70F9BB:1F3C75B3:6778505A')] +{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz","html_url":"http://choosealicense.com/licenses/mit/","description":"A short and simple permissive license with conditions only requiring preservation of copyright and license notices. Licensed works, modifications, and larger works may be distributed under different terms and without source code.","implementation":"Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. Replace [year] with the current year and [fullname] with the name (or names) of the copyright holders.","permissions":["commercial-use","modifications","distribution","private-use"],"conditions":["include-copyright"],"limitations":["liability","warranty"],"body":"MIT License\n\nCopyright (c) [year] [fullname]\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","featured":true} diff --git a/tests/ReplayData/GitMembership.testGetMembership.txt b/tests/ReplayData/Membership.setUp.txt similarity index 70% rename from tests/ReplayData/GitMembership.testGetMembership.txt rename to tests/ReplayData/Membership.setUp.txt index 9bca4bcf23..c00a7e13a7 100644 --- a/tests/ReplayData/GitMembership.testGetMembership.txt +++ b/tests/ReplayData/Membership.setUp.txt @@ -1,14 +1,3 @@ -https -GET -api.github.com -None -/user -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -null -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4960'), ('content-length', '598'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"75740284d989e9a492e32f435cff48ac"'), ('date', 'Sat, 16 Apr 2018 20:23:33 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"type":"User","public_gists":19,"url":"https://api.github.com/users/octocat","hireable":false,"bio":null,"company":"Github","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","login":"octocat","blog":"http://blog.github.com","email":"info@github.com","public_repos":62,"followers":299,"name":"Octocat","created_at":"2009-05-12T21:19:38Z","location":"Netherlands","avatar_url":"","id":83844,"following":41,"html_url":"https://github.com/nvie"} - https GET api.github.com diff --git a/tests/ReplayData/Migration.setUp.txt b/tests/ReplayData/Migration.setUp.txt index a45566cffd..dbbd665063 100644 --- a/tests/ReplayData/Migration.setUp.txt +++ b/tests/ReplayData/Migration.setUp.txt @@ -7,4 +7,4 @@ None None 200 [('Server', 'GitHub.com'), ('Date', 'Thu, 13 Sep 2018 20:18:23 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4967'), ('X-RateLimit-Reset', '1536871398'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"0e6e9ad6d4eb6ea5556826cc673d7145"'), ('X-GitHub-Media-Type', 'github.wyandotte-preview; format=json'), ('Link', '; rel="next", ; rel="last"'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.256511'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'F2A0:20F9:4E070C:C80BBD:5B9AC60E')] -[{"id":25320,"node_id":"MDk6TWlncmF0aW9uMjUzMjA=","owner":{"login":"singh811","id":41840111,"node_id":"MDQ6VXNlcjQxODQwMTEx","avatar_url":"https://avatars2.githubusercontent.com/u/41840111?v=4","gravatar_id":"","url":"https://api.github.com/users/singh811","html_url":"https://github.com/singh811","followers_url":"https://api.github.com/users/singh811/followers","following_url":"https://api.github.com/users/singh811/following{/other_user}","gists_url":"https://api.github.com/users/singh811/gists{/gist_id}","starred_url":"https://api.github.com/users/singh811/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/singh811/subscriptions","organizations_url":"https://api.github.com/users/singh811/orgs","repos_url":"https://api.github.com/users/singh811/repos","events_url":"https://api.github.com/users/singh811/events{/privacy}","received_events_url":"https://api.github.com/users/singh811/received_events","type":"User","site_admin":false},"guid":"608bceae-b790-11e8-8b43-4e3cb0dd56cc","state":"exported","lock_repositories":false,"exclude_attachments":false,"repositories":[{"id":148631065,"node_id":"MDEwOlJlcG9zaXRvcnkxNDg2MzEwNjU=","name":"sample-repo","full_name":"singh811/sample-repo","owner":{"login":"singh811","id":41840111,"node_id":"MDQ6VXNlcjQxODQwMTEx","avatar_url":"https://avatars2.githubusercontent.com/u/41840111?v=4","gravatar_id":"","url":"https://api.github.com/users/singh811","html_url":"https://github.com/singh811","followers_url":"https://api.github.com/users/singh811/followers","following_url":"https://api.github.com/users/singh811/following{/other_user}","gists_url":"https://api.github.com/users/singh811/gists{/gist_id}","starred_url":"https://api.github.com/users/singh811/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/singh811/subscriptions","organizations_url":"https://api.github.com/users/singh811/orgs","repos_url":"https://api.github.com/users/singh811/repos","events_url":"https://api.github.com/users/singh811/events{/privacy}","received_events_url":"https://api.github.com/users/singh811/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/singh811/sample-repo","description":null,"fork":false,"url":"https://api.github.com/repos/singh811/sample-repo","forks_url":"https://api.github.com/repos/singh811/sample-repo/forks","keys_url":"https://api.github.com/repos/singh811/sample-repo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/singh811/sample-repo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/singh811/sample-repo/teams","hooks_url":"https://api.github.com/repos/singh811/sample-repo/hooks","issue_events_url":"https://api.github.com/repos/singh811/sample-repo/issues/events{/number}","events_url":"https://api.github.com/repos/singh811/sample-repo/events","assignees_url":"https://api.github.com/repos/singh811/sample-repo/assignees{/user}","branches_url":"https://api.github.com/repos/singh811/sample-repo/branches{/branch}","tags_url":"https://api.github.com/repos/singh811/sample-repo/tags","blobs_url":"https://api.github.com/repos/singh811/sample-repo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/singh811/sample-repo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/singh811/sample-repo/git/refs{/sha}","trees_url":"https://api.github.com/repos/singh811/sample-repo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/singh811/sample-repo/statuses/{sha}","languages_url":"https://api.github.com/repos/singh811/sample-repo/languages","stargazers_url":"https://api.github.com/repos/singh811/sample-repo/stargazers","contributors_url":"https://api.github.com/repos/singh811/sample-repo/contributors","subscribers_url":"https://api.github.com/repos/singh811/sample-repo/subscribers","subscription_url":"https://api.github.com/repos/singh811/sample-repo/subscription","commits_url":"https://api.github.com/repos/singh811/sample-repo/commits{/sha}","git_commits_url":"https://api.github.com/repos/singh811/sample-repo/git/commits{/sha}","comments_url":"https://api.github.com/repos/singh811/sample-repo/comments{/number}","issue_comment_url":"https://api.github.com/repos/singh811/sample-repo/issues/comments{/number}","contents_url":"https://api.github.com/repos/singh811/sample-repo/contents/{+path}","compare_url":"https://api.github.com/repos/singh811/sample-repo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/singh811/sample-repo/merges","archive_url":"https://api.github.com/repos/singh811/sample-repo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/singh811/sample-repo/downloads","issues_url":"https://api.github.com/repos/singh811/sample-repo/issues{/number}","pulls_url":"https://api.github.com/repos/singh811/sample-repo/pulls{/number}","milestones_url":"https://api.github.com/repos/singh811/sample-repo/milestones{/number}","notifications_url":"https://api.github.com/repos/singh811/sample-repo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/singh811/sample-repo/labels{/name}","releases_url":"https://api.github.com/repos/singh811/sample-repo/releases{/id}","deployments_url":"https://api.github.com/repos/singh811/sample-repo/deployments","created_at":"2018-09-13T11:58:30Z","updated_at":"2018-09-13T20:05:35Z","pushed_at":"2018-09-13T11:58:31Z","git_url":"git://github.com/singh811/sample-repo.git","ssh_url":"git@github.com:singh811/sample-repo.git","clone_url":"https://github.com/singh811/sample-repo.git","svn_url":"https://github.com/singh811/sample-repo","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true}}],"url":"https://api.github.com/user/migrations/25320","created_at":"2018-09-14T01:35:35.000+05:30","updated_at":"2018-09-14T01:35:46.000+05:30"}] +[{"id":25320,"node_id":"MDk6TWlncmF0aW9uMjUzMjA=","owner":{"login":"singh811","id":41840111,"node_id":"MDQ6VXNlcjQxODQwMTEx","avatar_url":"https://avatars2.githubusercontent.com/u/41840111?v=4","gravatar_id":"","url":"https://api.github.com/users/singh811","html_url":"https://github.com/singh811","followers_url":"https://api.github.com/users/singh811/followers","following_url":"https://api.github.com/users/singh811/following{/other_user}","gists_url":"https://api.github.com/users/singh811/gists{/gist_id}","starred_url":"https://api.github.com/users/singh811/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/singh811/subscriptions","organizations_url":"https://api.github.com/users/singh811/orgs","repos_url":"https://api.github.com/users/singh811/repos","events_url":"https://api.github.com/users/singh811/events{/privacy}","received_events_url":"https://api.github.com/users/singh811/received_events","type":"User","site_admin":false},"guid":"608bceae-b790-11e8-8b43-4e3cb0dd56cc","state":"exported","lock_repositories":false,"exclude":["repositories"],"exclude_attachments":false,"exclude_git_data":false,"exclude_metadata":false,"exclude_owner_projects":false,"exclude_releases":false,"org_metadata_only":false,"repositories":[{"id":148631065,"node_id":"MDEwOlJlcG9zaXRvcnkxNDg2MzEwNjU=","name":"sample-repo","full_name":"singh811/sample-repo","owner":{"login":"singh811","id":41840111,"node_id":"MDQ6VXNlcjQxODQwMTEx","avatar_url":"https://avatars2.githubusercontent.com/u/41840111?v=4","gravatar_id":"","url":"https://api.github.com/users/singh811","html_url":"https://github.com/singh811","followers_url":"https://api.github.com/users/singh811/followers","following_url":"https://api.github.com/users/singh811/following{/other_user}","gists_url":"https://api.github.com/users/singh811/gists{/gist_id}","starred_url":"https://api.github.com/users/singh811/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/singh811/subscriptions","organizations_url":"https://api.github.com/users/singh811/orgs","repos_url":"https://api.github.com/users/singh811/repos","events_url":"https://api.github.com/users/singh811/events{/privacy}","received_events_url":"https://api.github.com/users/singh811/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/singh811/sample-repo","description":null,"fork":false,"url":"https://api.github.com/repos/singh811/sample-repo","forks_url":"https://api.github.com/repos/singh811/sample-repo/forks","keys_url":"https://api.github.com/repos/singh811/sample-repo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/singh811/sample-repo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/singh811/sample-repo/teams","hooks_url":"https://api.github.com/repos/singh811/sample-repo/hooks","issue_events_url":"https://api.github.com/repos/singh811/sample-repo/issues/events{/number}","events_url":"https://api.github.com/repos/singh811/sample-repo/events","assignees_url":"https://api.github.com/repos/singh811/sample-repo/assignees{/user}","branches_url":"https://api.github.com/repos/singh811/sample-repo/branches{/branch}","tags_url":"https://api.github.com/repos/singh811/sample-repo/tags","blobs_url":"https://api.github.com/repos/singh811/sample-repo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/singh811/sample-repo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/singh811/sample-repo/git/refs{/sha}","trees_url":"https://api.github.com/repos/singh811/sample-repo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/singh811/sample-repo/statuses/{sha}","languages_url":"https://api.github.com/repos/singh811/sample-repo/languages","stargazers_url":"https://api.github.com/repos/singh811/sample-repo/stargazers","contributors_url":"https://api.github.com/repos/singh811/sample-repo/contributors","subscribers_url":"https://api.github.com/repos/singh811/sample-repo/subscribers","subscription_url":"https://api.github.com/repos/singh811/sample-repo/subscription","commits_url":"https://api.github.com/repos/singh811/sample-repo/commits{/sha}","git_commits_url":"https://api.github.com/repos/singh811/sample-repo/git/commits{/sha}","comments_url":"https://api.github.com/repos/singh811/sample-repo/comments{/number}","issue_comment_url":"https://api.github.com/repos/singh811/sample-repo/issues/comments{/number}","contents_url":"https://api.github.com/repos/singh811/sample-repo/contents/{+path}","compare_url":"https://api.github.com/repos/singh811/sample-repo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/singh811/sample-repo/merges","archive_url":"https://api.github.com/repos/singh811/sample-repo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/singh811/sample-repo/downloads","issues_url":"https://api.github.com/repos/singh811/sample-repo/issues{/number}","pulls_url":"https://api.github.com/repos/singh811/sample-repo/pulls{/number}","milestones_url":"https://api.github.com/repos/singh811/sample-repo/milestones{/number}","notifications_url":"https://api.github.com/repos/singh811/sample-repo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/singh811/sample-repo/labels{/name}","releases_url":"https://api.github.com/repos/singh811/sample-repo/releases{/id}","deployments_url":"https://api.github.com/repos/singh811/sample-repo/deployments","created_at":"2018-09-13T11:58:30Z","updated_at":"2018-09-13T20:05:35Z","pushed_at":"2018-09-13T11:58:31Z","git_url":"git://github.com/singh811/sample-repo.git","ssh_url":"git@github.com:singh811/sample-repo.git","clone_url":"https://github.com/singh811/sample-repo.git","svn_url":"https://github.com/singh811/sample-repo","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true}}],"url":"https://api.github.com/user/migrations/25320","archive_url":null,"created_at":"2018-09-14T01:35:35.000+05:30","updated_at":"2018-09-14T01:35:46.000+05:30"}] diff --git a/tests/ReplayData/Milestone.setUp.txt b/tests/ReplayData/Milestone.setUp.txt index 7b0d539b72..a7d1af4a03 100644 --- a/tests/ReplayData/Milestone.setUp.txt +++ b/tests/ReplayData/Milestone.setUp.txt @@ -2,31 +2,20 @@ https GET api.github.com None -/user +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4999'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"cafcc970ccfa36947999605caefbe3be"'), ('date', 'Fri, 11 May 2012 13:34:48 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"type":"User","bio":"","url":"https://api.github.com/users/jacquev6","blog":"http://vincent-jacques.net","total_private_repos":5,"disk_usage":16676,"plan":{"collaborators":1,"space":614400,"name":"micro","private_repos":5},"public_gists":1,"html_url":"https://github.com/jacquev6","owned_private_repos":5,"public_repos":11,"login":"jacquev6","private_gists":5,"collaborators":0,"email":"vincent@vincent-jacques.net","created_at":"2010-07-09T06:10:06Z","company":"Criteo","location":"Paris, France","followers":13,"following":24,"name":"Vincent Jacques","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","hireable":false,"id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"} +[('Date', 'Fri, 03 Jan 2025 21:49:20 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"581c439a3aed8bca0c870e7f3ba3b1615b67e161e36dbf91afdf4c180a753f09"'), ('Last-Modified', 'Fri, 03 Jan 2025 18:50:01 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4999'), ('X-RateLimit-Reset', '1735944560'), ('X-RateLimit-Used', '1'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '92F0:4DB83:217F2204:2264C2BD:67785B60')] +{"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","user_view_type":"public","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":"2025-01-03T18:50:01Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7117,"watchers_count":7117,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1792,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":356,"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":1792,"open_issues":356,"watchers":7117,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"PR_BODY","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"enabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1792,"subscribers_count":111} https GET api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub/milestones/1 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4998'), ('content-length', '1097'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4a386c2ab2675e1e0addb729b4576ea9"'), ('date', 'Fri, 11 May 2012 13:34:49 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"updated_at":"2012-05-10T20:00:24Z","has_wiki":false,"has_issues":true,"homepage":"http://vincent-jacques.net/PyGithub","git_url":"git://github.com/jacquev6/PyGithub.git","mirror_url":null,"forks":2,"html_url":"https://github.com/jacquev6/PyGithub","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","url":"https://api.github.com/repos/jacquev6/PyGithub","pushed_at":"2012-05-10T20:00:24Z","language":"Python","size":196,"private":false,"clone_url":"https://github.com/jacquev6/PyGithub.git","created_at":"2012-02-25T12:53:47Z","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"watchers":13,"description":"Python library implementing the full Github API v3","id":3544490,"permissions":{"admin":true,"pull":true,"push":true}} - -https -GET -api.github.com -None -/repos/jacquev6/PyGithub/milestones/1 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4997'), ('content-length', '556'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"977ee5e1d9c368036c6121e01680ce45"'), ('date', 'Fri, 11 May 2012 13:34:49 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","number":1,"closed_issues":2,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","created_at":"2012-03-08T12:22:10Z","state":"closed","creator":{"url":"https://api.github.com/users/jacquev6","login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"description":"","open_issues":0,"id":93546} +[('Date', 'Fri, 03 Jan 2025 21:49:21 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"5d26cc4d2ba7e9af18090425bf8491d09d6ebce7d5d5540960ba2a66b4b309d0"'), ('Last-Modified', 'Sun, 20 Oct 2024 07:14:52 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1735944560'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '92F6:4E297:23BC472B:24A1E8E2:67785B60')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/1","html_url":"https://github.com/PyGithub/PyGithub/milestone/1","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/1/labels","id":93546,"node_id":"MDk6TWlsZXN0b25lOTM1NDY=","number":1,"title":"Version 0.4","description":"","creator":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"open_issues":0,"closed_issues":2,"state":"closed","created_at":"2012-03-08T12:22:10Z","updated_at":"2012-09-11T18:48:34Z","due_on":"2012-03-13T07:00:00Z","closed_at":"2012-03-12T22:18:49Z"} diff --git a/tests/ReplayData/Milestone.testDelete.txt b/tests/ReplayData/Milestone.testDelete.txt index f3640067ff..e4ee811862 100644 --- a/tests/ReplayData/Milestone.testDelete.txt +++ b/tests/ReplayData/Milestone.testDelete.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/milestones/1 +/repos/PyGithub/PyGithub/milestones/1 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/Milestone.testEditWithAllParameters.txt b/tests/ReplayData/Milestone.testEditWithAllParameters.txt index ce7be1dffa..0e3fff3368 100644 --- a/tests/ReplayData/Milestone.testEditWithAllParameters.txt +++ b/tests/ReplayData/Milestone.testEditWithAllParameters.txt @@ -2,9 +2,9 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub/milestones/1 +/repos/PyGithub/PyGithub/milestones/1 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"due_on": "2012-06-16", "state": "closed", "description": "Description edited by PyGithub", "title": "Title edited twice by PyGithub"} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4946'), ('content-length', '606'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ac9f76c61e1fe0e76cd26e77e59d5797"'), ('date', 'Sat, 19 May 2012 10:30:15 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","due_on":"2012-06-16T07:00:00Z","creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"number":5,"open_issues":0,"title":"Title edited twice by PyGithub","closed_issues":0,"created_at":"2012-05-19T10:24:13Z","state":"closed","description":"Description edited by PyGithub","id":121463} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/5","due_on":"2012-06-16T07:00:00Z","creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"number":5,"open_issues":0,"title":"Title edited twice by PyGithub","closed_issues":0,"created_at":"2012-05-19T10:24:13Z","state":"closed","description":"Description edited by PyGithub","id":121463} diff --git a/tests/ReplayData/Milestone.testEditWithMinimalParameters.txt b/tests/ReplayData/Milestone.testEditWithMinimalParameters.txt index 092b06a82d..41fe28056e 100644 --- a/tests/ReplayData/Milestone.testEditWithMinimalParameters.txt +++ b/tests/ReplayData/Milestone.testEditWithMinimalParameters.txt @@ -2,9 +2,9 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub/milestones/1 +/repos/PyGithub/PyGithub/milestones/1 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"title": "Title edited by PyGithub"} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4954'), ('content-length', '599'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"df00dd4d1183f48c313b9cf04330623b"'), ('date', 'Sat, 19 May 2012 10:29:02 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"closed_issues":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","due_on":"2012-06-15T07:00:00Z","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"number":5,"open_issues":0,"title":"Title edited by PyGithub","created_at":"2012-05-19T10:24:13Z","state":"open","description":"Description created by PyGithub","id":121463} +{"closed_issues":0,"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/5","due_on":"2012-06-15T07:00:00Z","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"number":5,"open_issues":0,"title":"Title edited by PyGithub","created_at":"2012-05-19T10:24:13Z","state":"open","description":"Description created by PyGithub","id":121463} diff --git a/tests/ReplayData/Milestone.testGetLabels.txt b/tests/ReplayData/Milestone.testGetLabels.txt index 01cb395a95..1725ef4889 100644 --- a/tests/ReplayData/Milestone.testGetLabels.txt +++ b/tests/ReplayData/Milestone.testGetLabels.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/milestones/1/labels +/repos/PyGithub/PyGithub/milestones/1/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4942'), ('content-length', '253'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"cd4ed3176e27a01da9a51f84c7b19b63"'), ('date', 'Sat, 19 May 2012 10:33:15 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}] diff --git a/tests/ReplayData/NamedUser.setUp.txt b/tests/ReplayData/NamedUser.setUp.txt index 093b8dd8dc..23d642baf2 100644 --- a/tests/ReplayData/NamedUser.setUp.txt +++ b/tests/ReplayData/NamedUser.setUp.txt @@ -6,5 +6,5 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4960'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"2b9d2167029cc33666d02e0b0e95f2b9"'), ('date', 'Sat, 26 May 2012 11:08:21 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"type":"User","disk_usage":17080,"public_gists":2,"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","public_repos":11,"hireable":false,"private_gists":5,"plan":{"private_repos":5,"collaborators":1,"name":"micro","space":614400},"bio":"","company":"Criteo","blog":"http://vincent-jacques.net","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","total_private_repos":5,"email":"vincent@vincent-jacques.net","collaborators":0,"followers":13,"name":"Vincent Jacques","owned_private_repos":5,"created_at":"2010-07-09T06:10:06Z","suspended_at":"2013-08-10T07:11:07Z","location":"Paris, France","id":327146,"following":24,"html_url":"https://github.com/jacquev6", "node_id":"MDQ6VXNlcjMyNzE0Ng=="} +[('Date', 'Fri, 03 Jan 2025 22:05:16 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"cdcdd165941281cdc3948a0cdff00dcb40d91a0ba044e67272d5b433326e8f81"'), ('Last-Modified', 'Sun, 20 Oct 2024 07:14:52 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1735944560'), ('X-RateLimit-Used', '4'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'DEEE:4E297:23C6134F:24ABF6D7:67785F1C')] +{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Vincent Jacques","company":null,"blog":"http://vincent-jacques.net","location":"France","email":"vincent@vincent-jacques.net","hireable":true,"bio":null,"twitter_username":null,"public_repos":38,"public_gists":18,"followers":98,"following":62,"created_at":"2010-07-09T06:10:06Z","updated_at":"2024-10-20T07:14:52Z"} diff --git a/tests/ReplayData/Organization.setUp.txt b/tests/ReplayData/Organization.setUp.txt index 975764d097..44f784f6b0 100644 --- a/tests/ReplayData/Organization.setUp.txt +++ b/tests/ReplayData/Organization.setUp.txt @@ -6,5 +6,5 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('content-length', '1337'), ('x-runtime-rack', '0.067917'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', 'admin:org, read:org, repo, user, write:org'), ('etag', '"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('referrer-policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('status', '200 OK'), ('x-ratelimit-remaining', '4998'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('last-modified', 'Tue, 24 Oct 2017 12:11:24 GMT'), ('date', 'Fri, 06 Apr 2018 12:54:55 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1523022613')] -{"login":"BeaverSoftware","id":1,"url":"https://api.github.com/orgs/BeaverSoftware", "repos_url":"https://api.github.com/orgs/BeaverSoftware/repos","events_url":"https://api.github .com/orgs/BeaverSoftware/events","hooks_url":"https://api.github.com/orgs/BeaverSoftware/hooks", "issues_url":"https://api.github.com/orgs/BeaverSoftware/issues","members_url":"https://api.github .com/orgs/BeaverSoftware/members{/member}","public_members_url":"https://api.github.com/orgs/BeaverSoftware/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/1?v=4","description":"BeaverSoftware writes software.","name":"BeaverSoftware","company":null,"blog":"http://www.example.com","location":"Paris, France","email":"","has_organization_projects":true,"has_repository_projects":true,"public_repos":27,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/BeaverSoftware","created_at":"2014-01-09T16:56:17Z","updated_at":"2017-10-24T12:11:24Z","type":"Organization","total_private_repos":7,"owned_private_repos":0,"private_gists":0,"disk_usage":2,"collaborators":9,"billing_email":"foo@example.com","plan":{"name":"free","space":1,"private_repos":3,"filled_seats":3,"seats":0},"default_repository_permission":"none","members_can_create_repositories":false} +[('Date', 'Sat, 04 Jan 2025 14:03:14 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"37e82d47ffd1abedecd5b2eacabdb07778a797c702d4b7d8cb628356da265fd7"'), ('Last-Modified', 'Tue, 20 Aug 2024 08:44:26 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'admin:org, read:org, repo, user, write:org'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1736002780'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'DD00:44383:24E39C7F:25D8F4B0:67793FA2')] +{"login":"BeaverSoftware","id":21341965,"node_id":"AbCdEfG","url":"https://api.github.com/orgs/BeaverSoftware","repos_url":"https://api.github.com/orgs/BeaverSoftware/repos","events_url":"https://api.github.com/orgs/BeaverSoftware/events","hooks_url":"https://api.github.com/orgs/BeaverSoftware/hooks","issues_url":"https://api.github.com/orgs/BeaverSoftware/issues","members_url":"https://api.github.com/orgs/BeaverSoftware/members{/member}","public_members_url":"https://api.github.com/orgs/BeaverSoftware/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/12345678?v=4","description":"BeaverSoftware writes software.","name":"BeaverSoftware","company":null,"blog":"http://www.example.com","location":"Paris, France","email":"foo@example.com","twitter_username":null,"is_verified":false,"has_organization_projects":true,"has_repository_projects":true,"public_repos":121,"public_gists":0,"followers":130,"following":1,"html_url":"https://github.com/BeaverSoftware","created_at":"2014-01-09T16:56:17Z","updated_at":"2024-08-20T08:44:26Z","archived_at":null,"type":"Organization","total_private_repos":176,"owned_private_repos":191,"private_gists":null,"disk_usage":null,"collaborators":9,"billing_email":"foo@example.com","default_repository_permission":null,"members_can_create_repositories":false,"two_factor_requirement_enabled":true,"members_allowed_repository_creation_type":"none","members_can_create_public_repositories":false,"members_can_create_private_repositories":false,"members_can_create_internal_repositories":false,"members_can_create_pages":true,"members_can_fork_private_repositories":false,"web_commit_signoff_required":false,"deploy_keys_enabled_for_repositories":true,"members_can_create_public_pages":true,"members_can_create_private_pages":true,"plan":{"name":"enterprise","space":123456789,"private_repos":999999,"filled_seats":640,"seats":1024}} diff --git a/tests/ReplayData/Organization.testAttachDetachSecurityConfig.txt b/tests/ReplayData/Organization.testAttachDetachSecurityConfig.txt new file mode 100644 index 0000000000..7a8bbd4937 --- /dev/null +++ b/tests/ReplayData/Organization.testAttachDetachSecurityConfig.txt @@ -0,0 +1,75 @@ +https +POST +api.github.com +None +/orgs/BeaverSoftware/code-security/configurations +{'Accept': 'application/vnd.github.nebula-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"name": "test1", "description": "This is a description"} +201 +[('Date', 'Thu, 12 Dec 2024 06:42:28 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1035'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"fd73fc4c5ec13f387050105a80787cb1ecd5ae65c85752c4a4f6e81ffa443c95"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, repo'), ('X-Accepted-OAuth-Scopes', 'admin:org, write:org'), ('github-authentication-token-expiration', '2025-01-09 05:04:04 UTC'), ('Location', 'https://api.github.com/orgs/BeaverSoftware/code-security/configurations/181720'), ('X-GitHub-Media-Type', 'github.v3; param=nebula-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4861'), ('X-RateLimit-Reset', '1733988416'), ('X-RateLimit-Used', '139'), ('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'"), ('X-GitHub-Request-Id', 'A041:376D58:25F1BF:4B7B1E:675A85D3'), ('Server', 'github.com')] +{"id":181720,"target_type":"organization","name":"test1","description":"This is a description","advanced_security":"disabled","dependency_graph":"enabled","dependency_graph_autosubmit_action":"disabled","dependency_graph_autosubmit_action_options":{"labeled_runners":false},"dependabot_alerts":"disabled","dependabot_security_updates":"disabled","code_scanning_default_setup":"disabled","code_scanning_default_setup_options":{"runner_type":"not_set","runner_label":null},"secret_scanning":"disabled","secret_scanning_push_protection":"disabled","secret_scanning_delegated_bypass":"disabled","secret_scanning_non_provider_patterns":"disabled","enforcement":"enforced","url":"https://api.github.com/orgs/BeaverSoftware/code-security/configurations/181720","html_url":"https://github.com/organizations/BeaverSoftware/settings/security_products/configurations/edit/181720","created_at":"2024-12-12T06:42:27Z","updated_at":"2024-12-12T06:42:27Z","private_vulnerability_reporting":"disabled","secret_scanning_validity_checks":"disabled"} + +https +GET +api.github.com +None +/repos/BeaverSoftware/test1 +{'Accept': 'application/vnd.github.nebula-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Thu, 12 Dec 2024 06:42:28 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"be6662f0c54e82efea0ce2cb6fd9ebe4e50bb2ae0e1ccef8096cb01695dd9758"'), ('Last-Modified', 'Tue, 10 Dec 2024 06:05:14 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-01-09 05:04:04 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=nebula-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4860'), ('X-RateLimit-Reset', '1733988416'), ('X-RateLimit-Used', '140'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', 'A042:38B93F:2900A9:518077:675A85D4'), ('Server', 'github.com')] +{"id":901148930,"node_id":"R_kgDONbZxAg","name":"test1","full_name":"BeaverSoftware/test1","private":true,"owner":{"login":"BeaverSoftware","id":130614553,"node_id":"O_kgDOB8kFGQ","avatar_url":"https://avatars.githubusercontent.com/u/130614553?v=4","gravatar_id":"","url":"https://api.github.com/users/BeaverSoftware","html_url":"https://github.com/BeaverSoftware","followers_url":"https://api.github.com/users/BeaverSoftware/followers","following_url":"https://api.github.com/users/BeaverSoftware/following{/other_user}","gists_url":"https://api.github.com/users/BeaverSoftware/gists{/gist_id}","starred_url":"https://api.github.com/users/BeaverSoftware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BeaverSoftware/subscriptions","organizations_url":"https://api.github.com/users/BeaverSoftware/orgs","repos_url":"https://api.github.com/users/BeaverSoftware/repos","events_url":"https://api.github.com/users/BeaverSoftware/events{/privacy}","received_events_url":"https://api.github.com/users/BeaverSoftware/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/BeaverSoftware/test1","description":null,"fork":false,"url":"https://api.github.com/repos/BeaverSoftware/test1","forks_url":"https://api.github.com/repos/BeaverSoftware/test1/forks","keys_url":"https://api.github.com/repos/BeaverSoftware/test1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BeaverSoftware/test1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BeaverSoftware/test1/teams","hooks_url":"https://api.github.com/repos/BeaverSoftware/test1/hooks","issue_events_url":"https://api.github.com/repos/BeaverSoftware/test1/issues/events{/number}","events_url":"https://api.github.com/repos/BeaverSoftware/test1/events","assignees_url":"https://api.github.com/repos/BeaverSoftware/test1/assignees{/user}","branches_url":"https://api.github.com/repos/BeaverSoftware/test1/branches{/branch}","tags_url":"https://api.github.com/repos/BeaverSoftware/test1/tags","blobs_url":"https://api.github.com/repos/BeaverSoftware/test1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BeaverSoftware/test1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BeaverSoftware/test1/git/refs{/sha}","trees_url":"https://api.github.com/repos/BeaverSoftware/test1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BeaverSoftware/test1/statuses/{sha}","languages_url":"https://api.github.com/repos/BeaverSoftware/test1/languages","stargazers_url":"https://api.github.com/repos/BeaverSoftware/test1/stargazers","contributors_url":"https://api.github.com/repos/BeaverSoftware/test1/contributors","subscribers_url":"https://api.github.com/repos/BeaverSoftware/test1/subscribers","subscription_url":"https://api.github.com/repos/BeaverSoftware/test1/subscription","commits_url":"https://api.github.com/repos/BeaverSoftware/test1/commits{/sha}","git_commits_url":"https://api.github.com/repos/BeaverSoftware/test1/git/commits{/sha}","comments_url":"https://api.github.com/repos/BeaverSoftware/test1/comments{/number}","issue_comment_url":"https://api.github.com/repos/BeaverSoftware/test1/issues/comments{/number}","contents_url":"https://api.github.com/repos/BeaverSoftware/test1/contents/{+path}","compare_url":"https://api.github.com/repos/BeaverSoftware/test1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BeaverSoftware/test1/merges","archive_url":"https://api.github.com/repos/BeaverSoftware/test1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BeaverSoftware/test1/downloads","issues_url":"https://api.github.com/repos/BeaverSoftware/test1/issues{/number}","pulls_url":"https://api.github.com/repos/BeaverSoftware/test1/pulls{/number}","milestones_url":"https://api.github.com/repos/BeaverSoftware/test1/milestones{/number}","notifications_url":"https://api.github.com/repos/BeaverSoftware/test1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BeaverSoftware/test1/labels{/name}","releases_url":"https://api.github.com/repos/BeaverSoftware/test1/releases{/id}","deployments_url":"https://api.github.com/repos/BeaverSoftware/test1/deployments","created_at":"2024-12-10T06:05:14Z","updated_at":"2024-12-10T06:05:14Z","pushed_at":"2024-12-10T06:05:14Z","git_url":"git://github.com/BeaverSoftware/test1.git","ssh_url":"git@github.com:BeaverSoftware/test1.git","clone_url":"https://github.com/BeaverSoftware/test1.git","svn_url":"https://github.com/BeaverSoftware/test1","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"allow_forking":false,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"private","forks":0,"open_issues":0,"watchers":0,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"AABH56PXTNYVFFCR57ULJETHLKDQA","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","custom_properties":{},"organization":{"login":"BeaverSoftware","id":130614553,"node_id":"O_kgDOB8kFGQ","avatar_url":"https://avatars.githubusercontent.com/u/130614553?v=4","gravatar_id":"","url":"https://api.github.com/users/BeaverSoftware","html_url":"https://github.com/BeaverSoftware","followers_url":"https://api.github.com/users/BeaverSoftware/followers","following_url":"https://api.github.com/users/BeaverSoftware/following{/other_user}","gists_url":"https://api.github.com/users/BeaverSoftware/gists{/gist_id}","starred_url":"https://api.github.com/users/BeaverSoftware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BeaverSoftware/subscriptions","organizations_url":"https://api.github.com/users/BeaverSoftware/orgs","repos_url":"https://api.github.com/users/BeaverSoftware/repos","events_url":"https://api.github.com/users/BeaverSoftware/events{/privacy}","received_events_url":"https://api.github.com/users/BeaverSoftware/received_events","type":"Organization","user_view_type":"public","site_admin":false},"network_count":0,"subscribers_count":0} + +https +POST +api.github.com +None +/orgs/BeaverSoftware/code-security/configurations/181720/attach +{'Accept': 'application/vnd.github.nebula-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"scope": "selected", "selected_repository_ids": [901148930]} +202 +[('Date', 'Thu, 12 Dec 2024 06:42:28 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, repo'), ('X-Accepted-OAuth-Scopes', 'admin:org, write:org'), ('github-authentication-token-expiration', '2025-01-09 05:04:04 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=nebula-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4859'), ('X-RateLimit-Reset', '1733988416'), ('X-RateLimit-Used', '141'), ('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', 'A043:1F683C:264C0D:4C2462:675A85D4'), ('Server', 'github.com')] +{} + +https +GET +api.github.com +None +/repos/BeaverSoftware/test1/code-security-configuration +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Thu, 12 Dec 2024 06:42:29 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"ac438e227214ea4c58a4bb12f12d6f36e6e821956f05c3b073f05dfda7d8fad8"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-01-09 05:04:04 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4858'), ('X-RateLimit-Reset', '1733988416'), ('X-RateLimit-Used', '142'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', 'A045:25E224:27A1AF:4EABB8:675A85D5'), ('Server', 'github.com')] +{"status":"attaching","configuration":{"id":181720,"target_type":"organization","name":"test1","description":"This is a description","advanced_security":"disabled","dependency_graph":"enabled","dependency_graph_autosubmit_action":"disabled","dependency_graph_autosubmit_action_options":{"labeled_runners":false},"dependabot_alerts":"disabled","dependabot_security_updates":"disabled","code_scanning_default_setup":"disabled","code_scanning_default_setup_options":{"runner_type":"not_set","runner_label":null},"secret_scanning":"disabled","secret_scanning_push_protection":"disabled","secret_scanning_delegated_bypass":"disabled","secret_scanning_non_provider_patterns":"disabled","enforcement":"enforced","url":"https://api.github.com/orgs/BeaverSoftware/code-security/configurations/181720","html_url":"https://github.com/organizations/BeaverSoftware/settings/security_products/configurations/edit/181720","created_at":"2024-12-12T06:42:27Z","updated_at":"2024-12-12T06:42:27Z","private_vulnerability_reporting":"disabled","secret_scanning_validity_checks":"disabled"}} + +https +GET +api.github.com +None +/repos/BeaverSoftware/test1/code-security-configuration +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Thu, 12 Dec 2024 06:42:29 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"ac438e227214ea4c58a4bb12f12d6f36e6e821956f05c3b073f05dfda7d8fad8"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-01-09 05:04:04 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4857'), ('X-RateLimit-Reset', '1733988416'), ('X-RateLimit-Used', '143'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', 'A046:12605D:2926EE:51D780:675A85D5'), ('Server', 'github.com')] +{"status":"attaching","configuration":{"id":181720,"target_type":"organization","name":"test1","description":"This is a description","advanced_security":"disabled","dependency_graph":"enabled","dependency_graph_autosubmit_action":"disabled","dependency_graph_autosubmit_action_options":{"labeled_runners":false},"dependabot_alerts":"disabled","dependabot_security_updates":"disabled","code_scanning_default_setup":"disabled","code_scanning_default_setup_options":{"runner_type":"not_set","runner_label":null},"secret_scanning":"disabled","secret_scanning_push_protection":"disabled","secret_scanning_delegated_bypass":"disabled","secret_scanning_non_provider_patterns":"disabled","enforcement":"enforced","url":"https://api.github.com/orgs/BeaverSoftware/code-security/configurations/181720","html_url":"https://github.com/organizations/BeaverSoftware/settings/security_products/configurations/edit/181720","created_at":"2024-12-12T06:42:27Z","updated_at":"2024-12-12T06:42:27Z","private_vulnerability_reporting":"disabled","secret_scanning_validity_checks":"disabled"}} + +https +GET +api.github.com +None +/repos/BeaverSoftware/test1/code-security-configuration +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Thu, 12 Dec 2024 06:42:29 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"a2755946d001764ddf25f541b9351b3a1ea4aec520c66584e027c14984f75a72"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-01-09 05:04:04 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4856'), ('X-RateLimit-Reset', '1733988416'), ('X-RateLimit-Used', '144'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', 'A044:2C0CDF:2A4D75:540637:675A85D5'), ('Server', 'github.com')] +{"status":"enforced","configuration":{"id":181720,"target_type":"organization","name":"test1","description":"This is a description","advanced_security":"disabled","dependency_graph":"enabled","dependency_graph_autosubmit_action":"disabled","dependency_graph_autosubmit_action_options":{"labeled_runners":false},"dependabot_alerts":"disabled","dependabot_security_updates":"disabled","code_scanning_default_setup":"disabled","code_scanning_default_setup_options":{"runner_type":"not_set","runner_label":null},"secret_scanning":"disabled","secret_scanning_push_protection":"disabled","secret_scanning_delegated_bypass":"disabled","secret_scanning_non_provider_patterns":"disabled","enforcement":"enforced","url":"https://api.github.com/orgs/BeaverSoftware/code-security/configurations/181720","html_url":"https://github.com/organizations/BeaverSoftware/settings/security_products/configurations/edit/181720","created_at":"2024-12-12T06:42:27Z","updated_at":"2024-12-12T06:42:27Z","private_vulnerability_reporting":"disabled","secret_scanning_validity_checks":"disabled"}} + +https +DELETE +api.github.com +None +/orgs/BeaverSoftware/code-security/configurations/detach +{'Accept': 'application/vnd.github.nebula-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"selected_repository_ids": [901148930]} +204 +[('Date', 'Thu, 12 Dec 2024 06:42:30 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, repo'), ('X-Accepted-OAuth-Scopes', 'admin:org, write:org'), ('github-authentication-token-expiration', '2025-01-09 05:04:04 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=nebula-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4855'), ('X-RateLimit-Reset', '1733988416'), ('X-RateLimit-Used', '145'), ('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', 'A047:373DC3:2BC267:56FFA1:675A85D5'), ('Server', 'github.com')] diff --git a/tests/ReplayData/Organization.testCreateCodeSecurityConfigs.txt b/tests/ReplayData/Organization.testCreateCodeSecurityConfigs.txt new file mode 100644 index 0000000000..cf3244b39f --- /dev/null +++ b/tests/ReplayData/Organization.testCreateCodeSecurityConfigs.txt @@ -0,0 +1,20 @@ +https +POST +api.github.com +None +/orgs/BeaverSoftware/code-security/configurations +{'Accept': 'application/vnd.github.nebula-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"name": "test1", "description": "This is a description"} +201 +[('Date', 'Wed, 11 Dec 2024 06:20:26 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1035'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"f4b815f22240ed795f90e5051f7130187182a91533af980cd0682863ecbc0873"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, repo'), ('X-Accepted-OAuth-Scopes', 'admin:org, write:org'), ('github-authentication-token-expiration', '2025-01-09 05:04:04 UTC'), ('Location', 'https://api.github.com/orgs/BeaverSoftware/code-security/configurations/171827'), ('X-GitHub-Media-Type', 'github.v3; param=nebula-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4992'), ('X-RateLimit-Reset', '1733901073'), ('X-RateLimit-Used', '8'), ('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'"), ('X-GitHub-Request-Id', '2009:345DF0:4575CA:89DDE7:67592F2A'), ('Server', 'github.com')] +{"id":171827,"target_type":"organization","name":"test1","description":"This is a description","advanced_security":"disabled","dependency_graph":"enabled","dependency_graph_autosubmit_action":"disabled","dependency_graph_autosubmit_action_options":{"labeled_runners":false},"dependabot_alerts":"disabled","dependabot_security_updates":"disabled","code_scanning_default_setup":"disabled","code_scanning_default_setup_options":{"runner_type":"not_set","runner_label":null},"secret_scanning":"disabled","secret_scanning_push_protection":"disabled","secret_scanning_delegated_bypass":"disabled","secret_scanning_non_provider_patterns":"disabled","enforcement":"enforced","url":"https://api.github.com/orgs/BeaverSoftware/code-security/configurations/171827","html_url":"https://github.com/organizations/BeaverSoftware/settings/security_products/configurations/edit/171827","created_at":"2024-12-11T06:20:26Z","updated_at":"2024-12-11T06:20:26Z","private_vulnerability_reporting":"disabled","secret_scanning_validity_checks":"disabled"} + +https +DELETE +api.github.com +None +/orgs/BeaverSoftware/code-security/configurations/171827 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Date', 'Wed, 11 Dec 2024 06:20:26 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, repo'), ('X-Accepted-OAuth-Scopes', 'admin:org, write:org'), ('github-authentication-token-expiration', '2025-01-09 05:04:04 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4991'), ('X-RateLimit-Reset', '1733901073'), ('X-RateLimit-Used', '9'), ('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', '200A:1701B2:3FA04B:7E2DCC:67592F2A'), ('Server', 'github.com')] diff --git a/tests/ReplayData/Organization.testGetCodeSecurityConfig.txt b/tests/ReplayData/Organization.testGetCodeSecurityConfig.txt new file mode 100644 index 0000000000..3866eea095 --- /dev/null +++ b/tests/ReplayData/Organization.testGetCodeSecurityConfig.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/orgs/BeaverSoftware/code-security/configurations/17 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Wed, 11 Dec 2024 06:22:14 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"44b2f501fef989c6e7be378455ac0f5cb93a0042343bcc8fe694187f9c3d557c"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, repo'), ('X-Accepted-OAuth-Scopes', 'admin:org, write:org'), ('github-authentication-token-expiration', '2025-01-09 05:04:04 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4987'), ('X-RateLimit-Reset', '1733901073'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', '2009:579C3:920C51:120CE70:67592F96'), ('Server', 'github.com')] +{"id":17,"target_type":"global","name":"GitHub recommended","description":"Suggested settings for Dependabot, secret scanning, and code scanning.","advanced_security":"enabled","dependency_graph":"enabled","dependency_graph_autosubmit_action":"not_set","dependency_graph_autosubmit_action_options":{"labeled_runners":false},"dependabot_alerts":"enabled","dependabot_security_updates":"not_set","code_scanning_default_setup":"enabled","code_scanning_default_setup_options":null,"secret_scanning":"enabled","secret_scanning_push_protection":"enabled","secret_scanning_delegated_bypass":"not_set","secret_scanning_non_provider_patterns":"enabled","enforcement":"unenforced","url":"https://api.github.com/orgs/BeaverSoftware/code-security/configurations/17","html_url":"https://github.com/organizations/BeaverSoftware/settings/security_products/configurations/view/17","created_at":"2023-12-04T15:58:07Z","updated_at":"2024-10-18T05:46:31Z","private_vulnerability_reporting":"enabled","secret_scanning_validity_checks":"enabled"} diff --git a/tests/ReplayData/Organization.testGetCodeSecurityConfigs.txt b/tests/ReplayData/Organization.testGetCodeSecurityConfigs.txt new file mode 100644 index 0000000000..55e4f00c21 --- /dev/null +++ b/tests/ReplayData/Organization.testGetCodeSecurityConfigs.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/orgs/BeaverSoftware/code-security/configurations +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Wed, 11 Dec 2024 06:21:13 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"d6d2b223c783bd2c8190402bf943457a16c93ffd9564c3c8e2e05aa01517104f"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, repo'), ('X-Accepted-OAuth-Scopes', 'admin:org, write:org'), ('github-authentication-token-expiration', '2025-01-09 05:04:04 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4989'), ('X-RateLimit-Reset', '1733901073'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', '2009:345DF0:45FE79:8AF121:67592F59'), ('Server', 'github.com')] +[{"id":17,"target_type":"global","name":"GitHub recommended","description":"Suggested settings for Dependabot, secret scanning, and code scanning.","advanced_security":"enabled","dependency_graph":"enabled","dependency_graph_autosubmit_action":"not_set","dependency_graph_autosubmit_action_options":{"labeled_runners":false},"dependabot_alerts":"enabled","dependabot_security_updates":"not_set","code_scanning_default_setup":"enabled","code_scanning_default_setup_options":null,"secret_scanning":"enabled","secret_scanning_push_protection":"enabled","secret_scanning_delegated_bypass":"not_set","secret_scanning_non_provider_patterns":"enabled","enforcement":"unenforced","url":"https://api.github.com/orgs/BeaverSoftware/code-security/configurations/17","html_url":"https://github.com/organizations/BeaverSoftware/settings/security_products/configurations/view/17","created_at":"2023-12-04T15:58:07Z","updated_at":"2024-10-18T05:46:31Z","private_vulnerability_reporting":"enabled","secret_scanning_validity_checks":"enabled"}] diff --git a/tests/ReplayData/Organization.testSetDefaultCodeSecurityConfig.txt b/tests/ReplayData/Organization.testSetDefaultCodeSecurityConfig.txt new file mode 100644 index 0000000000..994998e583 --- /dev/null +++ b/tests/ReplayData/Organization.testSetDefaultCodeSecurityConfig.txt @@ -0,0 +1,21 @@ +https +PUT +api.github.com +None +/orgs/BeaverSoftware/code-security/configurations/17/defaults +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"default_for_new_repos": "all"} +200 +[('Date', 'Wed, 11 Dec 2024 06:28:38 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"e8ede71c8e21be8d5e9969da5e6cf96b25e4a111066016c3c6f55196f46edede"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, repo'), ('X-Accepted-OAuth-Scopes', 'admin:org, write:org'), ('github-authentication-token-expiration', '2025-01-09 05:04:04 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4969'), ('X-RateLimit-Reset', '1733901073'), ('X-RateLimit-Used', '31'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', '2009:345DF0:4B1169:950D33:67593116'), ('Server', 'github.com')] +{"default_for_new_repos":"all","configuration":{"id":17,"target_type":"global","name":"GitHub recommended","description":"Suggested settings for Dependabot, secret scanning, and code scanning.","advanced_security":"enabled","dependency_graph":"enabled","dependency_graph_autosubmit_action":"not_set","dependency_graph_autosubmit_action_options":{"labeled_runners":false},"dependabot_alerts":"enabled","dependabot_security_updates":"not_set","code_scanning_default_setup":"enabled","code_scanning_default_setup_options":null,"secret_scanning":"enabled","secret_scanning_push_protection":"enabled","secret_scanning_delegated_bypass":"not_set","secret_scanning_non_provider_patterns":"enabled","enforcement":"unenforced","url":"https://api.github.com/orgs/BeaverSoftware/code-security/configurations/17","html_url":"https://github.com/organizations/BeaverSoftware/settings/security_products/configurations/view/17","created_at":"2023-12-04T15:58:07Z","updated_at":"2024-10-18T05:46:31Z","private_vulnerability_reporting":"enabled","secret_scanning_validity_checks":"enabled"}} + +https +GET +api.github.com +None +/orgs/BeaverSoftware/code-security/configurations/defaults +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Wed, 11 Dec 2024 06:28:38 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"534be78a9c8049dab2393d78314a803e083912757826ca733467f31dba21499b"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, repo'), ('X-Accepted-OAuth-Scopes', 'admin:org, write:org'), ('github-authentication-token-expiration', '2025-01-09 05:04:04 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4968'), ('X-RateLimit-Reset', '1733901073'), ('X-RateLimit-Used', '32'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', '200A:1701B2:4521F5:89271C:67593116'), ('Server', 'github.com')] +[{"default_for_new_repos":"all","configuration":{"id":17,"target_type":"global","name":"GitHub recommended","description":"Suggested settings for Dependabot, secret scanning, and code scanning.","advanced_security":"enabled","dependency_graph":"enabled","dependency_graph_autosubmit_action":"not_set","dependency_graph_autosubmit_action_options":{"labeled_runners":false},"dependabot_alerts":"enabled","dependabot_security_updates":"not_set","code_scanning_default_setup":"enabled","code_scanning_default_setup_options":null,"secret_scanning":"enabled","secret_scanning_push_protection":"enabled","secret_scanning_delegated_bypass":"not_set","secret_scanning_non_provider_patterns":"enabled","enforcement":"unenforced","url":"https://api.github.com/orgs/BeaverSoftware/code-security/configurations/17","html_url":"https://github.com/organizations/BeaverSoftware/settings/security_products/configurations/view/17","created_at":"2023-12-04T15:58:07Z","updated_at":"2024-10-18T05:46:31Z","private_vulnerability_reporting":"enabled","secret_scanning_validity_checks":"enabled"}}] diff --git a/tests/ReplayData/Pickle.testPickleRepository.txt b/tests/ReplayData/Pickle.testPickleRepository.txt new file mode 100644 index 0000000000..88ac34a444 --- /dev/null +++ b/tests/ReplayData/Pickle.testPickleRepository.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub +{'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Fri, 25 Aug 2023 22:18:41 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"30c1df371a44c445b7125f2d17df44062f98c1725ddf212dd09cabdd8fde9389"'), ('Last-Modified', 'Fri, 25 Aug 2023 15:12:40 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('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-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '52'), ('X-RateLimit-Reset', '1693004247'), ('X-RateLimit-Resource', 'core'), ('X-RateLimit-Used', '8'), ('Accept-Ranges', 'bytes'), ('Content-Length', '1427'), ('X-GitHub-Request-Id', '9DE4:9CCE:5DA8631:5E9093E:64E928C0')] +{"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":"2023-08-25T15:12:40Z","pushed_at":"2023-08-25T22:01:27Z","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":13634,"stargazers_count":6209,"watchers_count":6209,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1662,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":286,"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":1662,"open_issues":286,"watchers":6209,"default_branch":"main","temp_clone_token":null,"organization":{"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},"network_count":1662,"subscribers_count":112} diff --git a/tests/ReplayData/Project.setUp.txt b/tests/ReplayData/Project.setUp.txt index 568410e302..7f07aac7fa 100644 --- a/tests/ReplayData/Project.setUp.txt +++ b/tests/ReplayData/Project.setUp.txt @@ -19,3 +19,14 @@ None 200 [('Date', 'Mon, 13 Aug 2018 20:46:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4991'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"1a4d58b0c31a5e69747b7ad48d7a91ee"'), ('Last-Modified', 'Wed, 01 Aug 2018 05:11:35 GMT'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.077165'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'ED5B:528C:C8555:10426C:5B71EE27')] {"id":143089995,"node_id":"MDEwOlJlcG9zaXRvcnkxNDMwODk5OTU=","name":"PyGithub","full_name":"bbi-yggy/PyGithub","owner":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bbi-yggy/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/bbi-yggy/PyGithub","forks_url":"https://api.github.com/repos/bbi-yggy/PyGithub/forks","keys_url":"https://api.github.com/repos/bbi-yggy/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bbi-yggy/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bbi-yggy/PyGithub/teams","hooks_url":"https://api.github.com/repos/bbi-yggy/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/bbi-yggy/PyGithub/events","assignees_url":"https://api.github.com/repos/bbi-yggy/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/bbi-yggy/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/bbi-yggy/PyGithub/tags","blobs_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bbi-yggy/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/bbi-yggy/PyGithub/languages","stargazers_url":"https://api.github.com/repos/bbi-yggy/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/bbi-yggy/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/bbi-yggy/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/bbi-yggy/PyGithub/subscription","commits_url":"https://api.github.com/repos/bbi-yggy/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/bbi-yggy/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/bbi-yggy/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/bbi-yggy/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bbi-yggy/PyGithub/merges","archive_url":"https://api.github.com/repos/bbi-yggy/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bbi-yggy/PyGithub/downloads","issues_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/bbi-yggy/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/bbi-yggy/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/bbi-yggy/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bbi-yggy/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/bbi-yggy/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/bbi-yggy/PyGithub/deployments","created_at":"2018-08-01T01:50:10Z","updated_at":"2018-08-01T05:11:35Z","pushed_at":"2018-08-13T19:19:24Z","git_url":"git://github.com/bbi-yggy/PyGithub.git","ssh_url":"git@github.com:bbi-yggy/PyGithub.git","clone_url":"https://github.com/bbi-yggy/PyGithub.git","svn_url":"https://github.com/bbi-yggy/PyGithub","homepage":"http://pygithub.readthedocs.io/","size":11292,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":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"},"forks":0,"open_issues":1,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"parent":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.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},"private":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":"2018-08-13T19:07:20Z","pushed_at":"2018-08-13T19:19:26Z","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":"http://pygithub.readthedocs.io/","size":11205,"stargazers_count":1976,"watchers_count":1976,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":691,"mirror_url":null,"archived":false,"open_issues_count":103,"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"},"forks":691,"open_issues":103,"watchers":1976,"default_branch":"master"},"source":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.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},"private":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":"2018-08-13T19:07:20Z","pushed_at":"2018-08-13T19:19:26Z","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":"http://pygithub.readthedocs.io/","size":11205,"stargazers_count":1976,"watchers_count":1976,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":691,"mirror_url":null,"archived":false,"open_issues_count":103,"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"},"forks":691,"open_issues":103,"watchers":1976,"default_branch":"master"},"network_count":691,"subscribers_count":0} + +https +GET +api.github.com +None +/projects/1682941 +{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 11 Aug 2018 05:11:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4977'), ('X-RateLimit-Reset', '1533965918'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"27943de4706a46a49435f50612ed14a7"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.073652'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DB5F:5AC5:10682C2:21382ED:5B6E701D')] +{"owner_url":"https://api.github.com/repos/bbi-yggy/PyGithub","url":"https://api.github.com/projects/1682941","html_url":"https://github.com/bbi-yggy/PyGithub/projects/1","columns_url":"https://api.github.com/projects/1682941/columns","id":1682941,"node_id":"MDc6UHJvamVjdDE2ODI5NDE=","name":"TestProject","body":"To be used for testing project access API for PyGithub.","number":1,"state":"open","creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:06:57Z","updated_at":"2018-08-03T00:31:17Z"} diff --git a/tests/ReplayData/Project.testCreateColumn.txt b/tests/ReplayData/Project.testCreateColumn.txt deleted file mode 100644 index b805eb612f..0000000000 --- a/tests/ReplayData/Project.testCreateColumn.txt +++ /dev/null @@ -1,21 +0,0 @@ -https -POST -api.github.com -None -/repos/bbi-yggy/PyGithub/projects -{'Content-Type': 'application/json', 'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -{"body": "Project Body", "name": "Project created by PyGithub"} -201 -[('Server', 'GitHub.com'), ('Date', 'Sun, 16 Dec 2018 22:02:56 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1373'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4989'), ('X-RateLimit-Reset', '1544999455'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', '"bf99d7ce1a2fe172bd5715baa6a96669"'), ('Location', 'https://api.github.com/projects/2013874'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', '8FE4:0E37:25EFA8D:55896AD:5C16CB8F')] -{"owner_url":"https://api.github.com/repos/bbi-yggy/PyGithub","url":"https://api.github.com/projects/2013874","html_url":"https://github.com/bbi-yggy/PyGithub/projects/2","columns_url":"https://api.github.com/projects/2013874/columns","id":2013874,"node_id":"MDc6UHJvamVjdDIwMTM4NzQ=","name":"Project created by PyGithub","body":"Project Body","number":2,"state":"open","creator":{"login":"bbi-yggy","id":1086629,"node_id":"MDQ6VXNlcjEwODY2Mjk=","avatar_url":"https://avatars0.githubusercontent.com/u/1086629?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-12-16T22:02:56Z","updated_at":"2018-12-16T22:02:56Z"} - -https -POST -api.github.com -None -/projects/2013874/columns -{'Content-Type': 'application/json', 'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -{"name": "Project Column created by PyGithub"} -201 -[('Server', 'GitHub.com'), ('Date', 'Sun, 16 Dec 2018 22:02:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '355'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4988'), ('X-RateLimit-Reset', '1544999455'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', '"e665df9df30f8cacff8d513a747defae"'), ('Location', 'https://api.github.com/projects/columns/3999333'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', 'A49A:0E36:145887E:33DDBB8:5C16CB90')] -{"url":"https://api.github.com/projects/columns/3999333","project_url":"https://api.github.com/projects/2013874","cards_url":"https://api.github.com/projects/columns/3999333/cards","id":3999333,"node_id":"MDEzOlByb2plY3RDb2x1bW4zOTk5MzMz","name":"Project Column created by PyGithub","created_at":"2018-12-16T22:02:57Z","updated_at":"2018-12-16T22:02:57Z"} diff --git a/tests/ReplayData/Project.testGetProject.txt b/tests/ReplayData/Project.testGetProject.txt deleted file mode 100644 index ac2181c57b..0000000000 --- a/tests/ReplayData/Project.testGetProject.txt +++ /dev/null @@ -1,10 +0,0 @@ -https -GET -api.github.com -None -/projects/1682941 -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Sat, 11 Aug 2018 05:11:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4977'), ('X-RateLimit-Reset', '1533965918'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"27943de4706a46a49435f50612ed14a7"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.073652'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DB5F:5AC5:10682C2:21382ED:5B6E701D')] -{"owner_url":"https://api.github.com/repos/bbi-yggy/PyGithub","url":"https://api.github.com/projects/1682941","html_url":"https://github.com/bbi-yggy/PyGithub/projects/1","columns_url":"https://api.github.com/projects/1682941/columns","id":1682941,"node_id":"MDc6UHJvamVjdDE2ODI5NDE=","name":"TestProject","body":"To be used for testing project access API for PyGithub.","number":1,"state":"open","creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:06:57Z","updated_at":"2018-08-03T00:31:17Z"} diff --git a/tests/ReplayData/Project.testProjectAttributes.txt b/tests/ReplayData/Project.testProjectAttributes.txt deleted file mode 100644 index 58ef52ddf5..0000000000 --- a/tests/ReplayData/Project.testProjectAttributes.txt +++ /dev/null @@ -1,10 +0,0 @@ -https -GET -api.github.com -None -/projects/1682941 -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Sat, 11 Aug 2018 05:25:10 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4971'), ('X-RateLimit-Reset', '1533965918'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"27943de4706a46a49435f50612ed14a7"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.061095'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DB9E:5AC6:C62649:1C03B15:5B6E7336')] -{"owner_url":"https://api.github.com/repos/bbi-yggy/PyGithub","url":"https://api.github.com/projects/1682941","html_url":"https://github.com/bbi-yggy/PyGithub/projects/1","columns_url":"https://api.github.com/projects/1682941/columns","id":1682941,"node_id":"MDc6UHJvamVjdDE2ODI5NDE=","name":"TestProject","body":"To be used for testing project access API for PyGithub.","number":1,"state":"open","creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:06:57Z","updated_at":"2018-08-03T00:31:17Z"} diff --git a/tests/ReplayData/Project.testProjectCardAttributes.txt b/tests/ReplayData/Project.testProjectCardAttributes.txt deleted file mode 100644 index 5464cd38ca..0000000000 --- a/tests/ReplayData/Project.testProjectCardAttributes.txt +++ /dev/null @@ -1,32 +0,0 @@ -https -GET -api.github.com -None -/projects/1682941 -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 13 Aug 2018 04:43:42 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4962'), ('X-RateLimit-Reset', '1534137668'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"27943de4706a46a49435f50612ed14a7"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.049242'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DEA1:5F7A:481C7:8BD49:5B710C7E')] -{"owner_url":"https://api.github.com/repos/bbi-yggy/PyGithub","url":"https://api.github.com/projects/1682941","html_url":"https://github.com/bbi-yggy/PyGithub/projects/1","columns_url":"https://api.github.com/projects/1682941/columns","id":1682941,"node_id":"MDc6UHJvamVjdDE2ODI5NDE=","name":"TestProject","body":"To be used for testing project access API for PyGithub.","number":1,"state":"open","creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:06:57Z","updated_at":"2018-08-03T00:31:17Z"} - -https -GET -api.github.com -None -/projects/1682941/columns -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 13 Aug 2018 04:43:42 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4961'), ('X-RateLimit-Reset', '1534137668'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"3163aa25d9bf114a91b6ac971fec44f1"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.064389'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DEA2:5F7A:481E2:8BD71:5B710C7E')] -[{"url":"https://api.github.com/projects/columns/3138830","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138830/cards","id":3138830,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMw","name":"To Do","created_at":"2018-08-01T04:07:35Z","updated_at":"2018-08-01T04:07:35Z"},{"url":"https://api.github.com/projects/columns/3138831","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138831/cards","id":3138831,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMx","name":"In Progress","created_at":"2018-08-01T04:07:43Z","updated_at":"2018-08-01T04:54:16Z"},{"url":"https://api.github.com/projects/columns/3138832","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138832/cards","id":3138832,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMy","name":"Done","created_at":"2018-08-01T04:07:47Z","updated_at":"2018-08-03T00:31:17Z"}] - -https -GET -api.github.com -None -/projects/columns/3138831/cards -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 13 Aug 2018 04:43:43 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4960'), ('X-RateLimit-Reset', '1534137668'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"10383f6a2c126768bba0316a3547d35c"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.106876'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DEA3:5F78:2ECFD:71104:5B710C7E')] -[{"url":"https://api.github.com/projects/columns/cards/11780055","id":11780055,"node_id":"MDExOlByb2plY3RDYXJkMTE3ODAwNTU=","note":null,"archived":false,"creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:53:59Z","updated_at":"2018-08-01T04:54:16Z","column_url":"https://api.github.com/projects/columns/3138831","content_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/1"}] diff --git a/tests/ReplayData/Project.testProjectCardDelete.txt b/tests/ReplayData/Project.testProjectCardDelete.txt deleted file mode 100644 index 280b936ba0..0000000000 --- a/tests/ReplayData/Project.testProjectCardDelete.txt +++ /dev/null @@ -1,43 +0,0 @@ -https -GET -api.github.com -None -/projects/1682941 -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Date', 'Mon, 13 Aug 2018 20:46:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4990'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"d41667487e81d823d4dfd11da0547f36"'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.074803'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'ED5E:528C:C8567:104287:5B71EE27')] -{"owner_url":"https://api.github.com/repos/bbi-yggy/PyGithub","url":"https://api.github.com/projects/1682941","html_url":"https://github.com/bbi-yggy/PyGithub/projects/1","columns_url":"https://api.github.com/projects/1682941/columns","id":1682941,"node_id":"MDc6UHJvamVjdDE2ODI5NDE=","name":"TestProject","body":"To be used for testing project access API for PyGithub.","number":1,"state":"open","creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:06:57Z","updated_at":"2018-08-13T05:36:20Z"} - -https -GET -api.github.com -None -/projects/1682941/columns -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Date', 'Mon, 13 Aug 2018 20:46:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4989'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"2651dd36184e34861070c99961911f72"'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.068263'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'EDAB:528C:C8574:104296:5B71EE27')] -[{"url":"https://api.github.com/projects/columns/3138830","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138830/cards","id":3138830,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMw","name":"To Do","created_at":"2018-08-01T04:07:35Z","updated_at":"2018-08-01T04:07:35Z"},{"url":"https://api.github.com/projects/columns/3138831","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138831/cards","id":3138831,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMx","name":"In Progress","created_at":"2018-08-01T04:07:43Z","updated_at":"2018-08-13T05:36:20Z"},{"url":"https://api.github.com/projects/columns/3138832","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138832/cards","id":3138832,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMy","name":"Done","created_at":"2018-08-01T04:07:47Z","updated_at":"2018-08-03T00:31:17Z"}] - -https -GET -api.github.com -None -/projects/columns/3138831/cards -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Date', 'Mon, 13 Aug 2018 20:46:32 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4988'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"b34981c73fa8d0ac5117df1816b3548f"'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.133604'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'EDCD:528D:FD1E6:146E30:5B71EE27')] -[{"url":"https://api.github.com/projects/columns/cards/11780055","id":11780055,"node_id":"MDExOlByb2plY3RDYXJkMTE3ODAwNTU=","note":null,"archived":false,"creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:53:59Z","updated_at":"2018-08-01T04:54:16Z","column_url":"https://api.github.com/projects/columns/3138831","content_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/1"},{"url":"https://api.github.com/projects/columns/cards/12078706","id":12078706,"node_id":"MDExOlByb2plY3RDYXJkMTIwNzg3MDY=","note":null,"archived":false,"creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-13T04:46:29Z","updated_at":"2018-08-13T04:46:44Z","column_url":"https://api.github.com/projects/columns/3138831","content_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/2"},{"url":"https://api.github.com/projects/columns/cards/12079385","id":12079385,"node_id":"MDExOlByb2plY3RDYXJkMTIwNzkzODU=","note":"Test note","archived":false,"creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-13T05:36:13Z","updated_at":"2018-08-13T05:36:20Z","column_url":"https://api.github.com/projects/columns/3138831"}] - -https -DELETE -api.github.com -None -/projects/columns/cards/11780055 -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -204 -[('status', '204 No Content'), ('x-ratelimit-remaining', '4981'), ('x-content-type-options', 'nosniff'), ('content-security-policy', "default-src 'none'"), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', 'F8C2:AADAA:17FC875:24A1090:59635F0C'), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-runtime-rack', '0.072659'), ('x-xss-protection', '1; mode=block'), ('x-served-by', '7f48e2f7761567e923121f17538d7a6d'), ('date', 'Thu, 05 Mar 2020 02:43:38 GMT'), ('access-control-allow-origin', '*'), ('x-frame-options', 'deny'), ('x-ratelimit-reset', '1499685825')] -{} diff --git a/tests/ReplayData/Project.testProjectCardMove.txt b/tests/ReplayData/Project.testProjectCardMove.txt deleted file mode 100644 index ef85073863..0000000000 --- a/tests/ReplayData/Project.testProjectCardMove.txt +++ /dev/null @@ -1,54 +0,0 @@ -https -GET -api.github.com -None -/projects/1682941 -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Date', 'Mon, 13 Aug 2018 20:46:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4990'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"d41667487e81d823d4dfd11da0547f36"'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.074803'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'ED5E:528C:C8567:104287:5B71EE27')] -{"owner_url":"https://api.github.com/repos/bbi-yggy/PyGithub","url":"https://api.github.com/projects/1682941","html_url":"https://github.com/bbi-yggy/PyGithub/projects/1","columns_url":"https://api.github.com/projects/1682941/columns","id":1682941,"node_id":"MDc6UHJvamVjdDE2ODI5NDE=","name":"TestProject","body":"To be used for testing project access API for PyGithub.","number":1,"state":"open","creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:06:57Z","updated_at":"2018-08-13T05:36:20Z"} - -https -GET -api.github.com -None -/projects/1682941/columns -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Date', 'Mon, 13 Aug 2018 20:46:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4989'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"2651dd36184e34861070c99961911f72"'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.068263'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'EDAB:528C:C8574:104296:5B71EE27')] -[{"url":"https://api.github.com/projects/columns/3138830","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138830/cards","id":3138830,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMw","name":"To Do","created_at":"2018-08-01T04:07:35Z","updated_at":"2018-08-01T04:07:35Z"},{"url":"https://api.github.com/projects/columns/3138831","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138831/cards","id":3138831,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMx","name":"In Progress","created_at":"2018-08-01T04:07:43Z","updated_at":"2018-08-13T05:36:20Z"},{"url":"https://api.github.com/projects/columns/3138832","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138832/cards","id":3138832,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMy","name":"Done","created_at":"2018-08-01T04:07:47Z","updated_at":"2018-08-03T00:31:17Z"}] - -https -GET -api.github.com -None -/projects/columns/3138831/cards -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Date', 'Mon, 13 Aug 2018 20:46:32 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4988'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"b34981c73fa8d0ac5117df1816b3548f"'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.133604'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'EDCD:528D:FD1E6:146E30:5B71EE27')] -[{"url":"https://api.github.com/projects/columns/cards/11780055","id":11780055,"node_id":"MDExOlByb2plY3RDYXJkMTE3ODAwNTU=","note":null,"archived":false,"creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:53:59Z","updated_at":"2018-08-01T04:54:16Z","column_url":"https://api.github.com/projects/columns/3138831","content_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/1"},{"url":"https://api.github.com/projects/columns/cards/12078706","id":12078706,"node_id":"MDExOlByb2plY3RDYXJkMTIwNzg3MDY=","note":null,"archived":false,"creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-13T04:46:29Z","updated_at":"2018-08-13T04:46:44Z","column_url":"https://api.github.com/projects/columns/3138831","content_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/2"},{"url":"https://api.github.com/projects/columns/cards/12079385","id":12079385,"node_id":"MDExOlByb2plY3RDYXJkMTIwNzkzODU=","note":"Test note","archived":false,"creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-13T05:36:13Z","updated_at":"2018-08-13T05:36:20Z","column_url":"https://api.github.com/projects/columns/3138831"}] - -https -POST -api.github.com -None -/projects/columns/cards/11780055/moves -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'Content-Type': 'application/json', 'User-Agent': 'PyGithub/Python'} -{"column_id": 3138832, "position": "top"} -201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4982'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f79a53550c9b90814f0be2b54ab2cc8e"'), ('date', 'Fri, 17 Jan 2020 02:03:18 GMT'), ('content-type', 'application/json; charset=utf-8')] -{} - -https -POST -api.github.com -None -/projects/columns/cards/11780055/moves -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'Content-Type': 'application/json', 'User-Agent': 'PyGithub/Python'} -{"column_id": 3138831, "position": "bottom"} -201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4982'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e87658ab0c9b90814f0be2b54ab2cc8e"'), ('date', 'Fri, 17 Jan 2020 02:03:24 GMT'), ('content-type', 'application/json; charset=utf-8')] -{} diff --git a/tests/ReplayData/Project.testProjectColumnAttributes.txt b/tests/ReplayData/Project.testProjectColumnAttributes.txt deleted file mode 100644 index 225c65e12b..0000000000 --- a/tests/ReplayData/Project.testProjectColumnAttributes.txt +++ /dev/null @@ -1,21 +0,0 @@ -https -GET -api.github.com -None -/projects/1682941 -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 13 Aug 2018 04:27:29 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4986'), ('X-RateLimit-Reset', '1534137668'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"27943de4706a46a49435f50612ed14a7"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.064815'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DE4E:5F76:13E6C:35FA4:5B7108B1')] -{"owner_url":"https://api.github.com/repos/bbi-yggy/PyGithub","url":"https://api.github.com/projects/1682941","html_url":"https://github.com/bbi-yggy/PyGithub/projects/1","columns_url":"https://api.github.com/projects/1682941/columns","id":1682941,"node_id":"MDc6UHJvamVjdDE2ODI5NDE=","name":"TestProject","body":"To be used for testing project access API for PyGithub.","number":1,"state":"open","creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:06:57Z","updated_at":"2018-08-03T00:31:17Z"} - -https -GET -api.github.com -None -/projects/1682941/columns -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 13 Aug 2018 04:27:30 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4985'), ('X-RateLimit-Reset', '1534137668'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"3163aa25d9bf114a91b6ac971fec44f1"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.053606'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DE4F:5F76:13E71:35FB1:5B7108B1')] -[{"url":"https://api.github.com/projects/columns/3138830","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138830/cards","id":3138830,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMw","name":"To Do","created_at":"2018-08-01T04:07:35Z","updated_at":"2018-08-01T04:07:35Z"},{"url":"https://api.github.com/projects/columns/3138831","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138831/cards","id":3138831,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMx","name":"In Progress","created_at":"2018-08-01T04:07:43Z","updated_at":"2018-08-01T04:54:16Z"},{"url":"https://api.github.com/projects/columns/3138832","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138832/cards","id":3138832,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMy","name":"Done","created_at":"2018-08-01T04:07:47Z","updated_at":"2018-08-03T00:31:17Z"}] diff --git a/tests/ReplayData/ProjectCard.setUp.txt b/tests/ReplayData/ProjectCard.setUp.txt new file mode 100644 index 0000000000..f99803f16b --- /dev/null +++ b/tests/ReplayData/ProjectCard.setUp.txt @@ -0,0 +1,76 @@ +https +GET +api.github.com +None +/user +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Mon, 13 Aug 2018 20:46:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4992'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"a7b881032dc3372f0757ab8399ffce75"'), ('Last-Modified', 'Fri, 27 Jul 2018 17:52:16 GMT'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.038446'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'ED45:528D:FD186:146DB5:5B71EE27')] +{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false,"name":"Yossarian King","company":"Blackbird Interactive","blog":"","location":"Vancouver, Canada","email":null,"hireable":null,"bio":null,"public_repos":3,"public_gists":2,"followers":3,"following":1,"created_at":"2014-01-13T18:03:47Z","updated_at":"2018-07-27T17:52:16Z","private_gists":3,"total_private_repos":0,"owned_private_repos":0,"disk_usage":0,"collaborators":0,"two_factor_authentication":true,"plan":{"name":"free","space":976562499,"collaborators":0,"private_repos":0}} + +https +GET +api.github.com +None +/repos/bbi-yggy/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Mon, 13 Aug 2018 20:46:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4991'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"1a4d58b0c31a5e69747b7ad48d7a91ee"'), ('Last-Modified', 'Wed, 01 Aug 2018 05:11:35 GMT'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.077165'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'ED5B:528C:C8555:10426C:5B71EE27')] +{"id":143089995,"node_id":"MDEwOlJlcG9zaXRvcnkxNDMwODk5OTU=","name":"PyGithub","full_name":"bbi-yggy/PyGithub","owner":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bbi-yggy/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/bbi-yggy/PyGithub","forks_url":"https://api.github.com/repos/bbi-yggy/PyGithub/forks","keys_url":"https://api.github.com/repos/bbi-yggy/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bbi-yggy/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bbi-yggy/PyGithub/teams","hooks_url":"https://api.github.com/repos/bbi-yggy/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/bbi-yggy/PyGithub/events","assignees_url":"https://api.github.com/repos/bbi-yggy/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/bbi-yggy/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/bbi-yggy/PyGithub/tags","blobs_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bbi-yggy/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/bbi-yggy/PyGithub/languages","stargazers_url":"https://api.github.com/repos/bbi-yggy/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/bbi-yggy/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/bbi-yggy/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/bbi-yggy/PyGithub/subscription","commits_url":"https://api.github.com/repos/bbi-yggy/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/bbi-yggy/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/bbi-yggy/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/bbi-yggy/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bbi-yggy/PyGithub/merges","archive_url":"https://api.github.com/repos/bbi-yggy/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bbi-yggy/PyGithub/downloads","issues_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/bbi-yggy/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/bbi-yggy/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/bbi-yggy/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bbi-yggy/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/bbi-yggy/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/bbi-yggy/PyGithub/deployments","created_at":"2018-08-01T01:50:10Z","updated_at":"2018-08-01T05:11:35Z","pushed_at":"2018-08-13T19:19:24Z","git_url":"git://github.com/bbi-yggy/PyGithub.git","ssh_url":"git@github.com:bbi-yggy/PyGithub.git","clone_url":"https://github.com/bbi-yggy/PyGithub.git","svn_url":"https://github.com/bbi-yggy/PyGithub","homepage":"http://pygithub.readthedocs.io/","size":11292,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":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"},"forks":0,"open_issues":1,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"parent":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.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},"private":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":"2018-08-13T19:07:20Z","pushed_at":"2018-08-13T19:19:26Z","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":"http://pygithub.readthedocs.io/","size":11205,"stargazers_count":1976,"watchers_count":1976,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":691,"mirror_url":null,"archived":false,"open_issues_count":103,"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"},"forks":691,"open_issues":103,"watchers":1976,"default_branch":"master"},"source":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.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},"private":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":"2018-08-13T19:07:20Z","pushed_at":"2018-08-13T19:19:26Z","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":"http://pygithub.readthedocs.io/","size":11205,"stargazers_count":1976,"watchers_count":1976,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":691,"mirror_url":null,"archived":false,"open_issues_count":103,"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"},"forks":691,"open_issues":103,"watchers":1976,"default_branch":"master"},"network_count":691,"subscribers_count":0} + +https +GET +api.github.com +None +/projects/1682941 +{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Mon, 13 Aug 2018 20:46:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4990'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"d41667487e81d823d4dfd11da0547f36"'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.074803'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'ED5E:528C:C8567:104287:5B71EE27')] +{"owner_url":"https://api.github.com/repos/bbi-yggy/PyGithub","url":"https://api.github.com/projects/1682941","html_url":"https://github.com/bbi-yggy/PyGithub/projects/1","columns_url":"https://api.github.com/projects/1682941/columns","id":1682941,"node_id":"MDc6UHJvamVjdDE2ODI5NDE=","name":"TestProject","body":"To be used for testing project access API for PyGithub.","number":1,"state":"open","creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:06:57Z","updated_at":"2018-08-13T05:36:20Z"} + +https +GET +api.github.com +None +/projects/1682941/columns +{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Mon, 13 Aug 2018 20:46:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4989'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"2651dd36184e34861070c99961911f72"'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.068263'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'EDAB:528C:C8574:104296:5B71EE27')] +[{"url":"https://api.github.com/projects/columns/3138830","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138830/cards","id":3138830,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMw","name":"To Do","created_at":"2018-08-01T04:07:35Z","updated_at":"2018-08-01T04:07:35Z"},{"url":"https://api.github.com/projects/columns/3138831","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138831/cards","id":3138831,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMx","name":"In Progress","created_at":"2018-08-01T04:07:43Z","updated_at":"2018-08-13T05:36:20Z"},{"url":"https://api.github.com/projects/columns/3138832","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138832/cards","id":3138832,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMy","name":"Done","created_at":"2018-08-01T04:07:47Z","updated_at":"2018-08-03T00:31:17Z"}] + +https +GET +api.github.com +None +/projects/columns/3138831/cards +{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Mon, 13 Aug 2018 20:46:32 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4988'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"b34981c73fa8d0ac5117df1816b3548f"'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.133604'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'EDCD:528D:FD1E6:146E30:5B71EE27')] +[{"url":"https://api.github.com/projects/columns/cards/11780055","id":11780055,"node_id":"MDExOlByb2plY3RDYXJkMTE3ODAwNTU=","note":null,"archived":false,"creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:53:59Z","updated_at":"2018-08-01T04:54:16Z","column_url":"https://api.github.com/projects/columns/3138831","content_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/1"},{"url":"https://api.github.com/projects/columns/cards/12078706","id":12078706,"node_id":"MDExOlByb2plY3RDYXJkMTIwNzg3MDY=","note":null,"archived":false,"creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-13T04:46:29Z","updated_at":"2018-08-13T04:46:44Z","column_url":"https://api.github.com/projects/columns/3138831","content_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/2"},{"url":"https://api.github.com/projects/columns/cards/12079385","id":12079385,"node_id":"MDExOlByb2plY3RDYXJkMTIwNzkzODU=","note":"Test note","archived":false,"creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-13T05:36:13Z","updated_at":"2018-08-13T05:36:20Z","column_url":"https://api.github.com/projects/columns/3138831"}] + +https +GET +api.github.com +None +/projects/4015343 +{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Fri, 06 Mar 2020 17:16:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4930'), ('X-RateLimit-Reset', '1583518122'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"859ccf140c23723c7919f2398b3871ba"'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D0B6:492C:F647F7:1DC6448:5E628580')] +{"owner_url":"https://api.github.com/repos/jodytest1511/PyGithub","url":"https://api.github.com/projects/4015343","html_url":"https://github.com/jodytest1511/PyGithub/projects/15","columns_url":"https://api.github.com/projects/4015343/columns","id":4015343,"node_id":"MDc6UHJvamVjdDQwMTUzNDM=","name":"Project created by PyGithub","body":"Project Body","number":15,"state":"open","creator":{"login":"jodytest1511","id":61476392,"node_id":"MDQ6VXNlcjYxNDc2Mzky","avatar_url":"https://avatars1.githubusercontent.com/u/61476392?v=4","gravatar_id":"","url":"https://api.github.com/users/jodytest1511","html_url":"https://github.com/jodytest1511","followers_url":"https://api.github.com/users/jodytest1511/followers","following_url":"https://api.github.com/users/jodytest1511/following{/other_user}","gists_url":"https://api.github.com/users/jodytest1511/gists{/gist_id}","starred_url":"https://api.github.com/users/jodytest1511/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jodytest1511/subscriptions","organizations_url":"https://api.github.com/users/jodytest1511/orgs","repos_url":"https://api.github.com/users/jodytest1511/repos","events_url":"https://api.github.com/users/jodytest1511/events{/privacy}","received_events_url":"https://api.github.com/users/jodytest1511/received_events","type":"User","site_admin":false},"created_at":"2020-02-25T21:03:35Z","updated_at":"2020-03-06T17:16:47Z"} + +https +GET +api.github.com +None +/projects/4015343/columns +{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Fri, 06 Mar 2020 17:16:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4929'), ('X-RateLimit-Reset', '1583518122'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"303e639b16402fbdd06370a9ce962b8b"'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D0B7:71BE:FC8452:1E34B55:5E628580')] +[{"url":"https://api.github.com/projects/columns/8125057","project_url":"https://api.github.com/projects/4015343","cards_url":"https://api.github.com/projects/columns/8125057/cards","id":8125057,"node_id":"MDEzOlByb2plY3RDb2x1bW44MTI1MDU3","name":"Project Column created by PyGithub","created_at":"2020-02-25T21:03:36Z","updated_at":"2020-03-06T17:16:47Z"}] diff --git a/tests/ReplayData/Project.testCreateCardFromIssue.txt b/tests/ReplayData/ProjectCard.testCreateFromIssue.txt similarity index 100% rename from tests/ReplayData/Project.testCreateCardFromIssue.txt rename to tests/ReplayData/ProjectCard.testCreateFromIssue.txt diff --git a/tests/ReplayData/Project.testCreateCardWithNote.txt b/tests/ReplayData/ProjectCard.testCreateWithNote.txt similarity index 100% rename from tests/ReplayData/Project.testCreateCardWithNote.txt rename to tests/ReplayData/ProjectCard.testCreateWithNote.txt diff --git a/tests/ReplayData/ProjectCard.testDelete.txt b/tests/ReplayData/ProjectCard.testDelete.txt new file mode 100644 index 0000000000..cb7ad1fab3 --- /dev/null +++ b/tests/ReplayData/ProjectCard.testDelete.txt @@ -0,0 +1,9 @@ +https +DELETE +api.github.com +None +/projects/columns/cards/11780055 +{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('status', '204 No Content'), ('x-ratelimit-remaining', '4981'), ('x-content-type-options', 'nosniff'), ('content-security-policy', "default-src 'none'"), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', 'F8C2:AADAA:17FC875:24A1090:59635F0C'), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-runtime-rack', '0.072659'), ('x-xss-protection', '1; mode=block'), ('x-served-by', '7f48e2f7761567e923121f17538d7a6d'), ('date', 'Thu, 05 Mar 2020 02:43:38 GMT'), ('access-control-allow-origin', '*'), ('x-frame-options', 'deny'), ('x-ratelimit-reset', '1499685825')] diff --git a/tests/ReplayData/Project.testEditCardArchived.txt b/tests/ReplayData/ProjectCard.testEditArchived.txt similarity index 54% rename from tests/ReplayData/Project.testEditCardArchived.txt rename to tests/ReplayData/ProjectCard.testEditArchived.txt index 8c4c0a76b5..55b2f12b99 100644 --- a/tests/ReplayData/Project.testEditCardArchived.txt +++ b/tests/ReplayData/ProjectCard.testEditArchived.txt @@ -1,25 +1,3 @@ -https -GET -api.github.com -None -/projects/4015343 -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Fri, 06 Mar 2020 17:16:46 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4936'), ('X-RateLimit-Reset', '1583518122'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"8f94dd9e16bb76692ea38a2f0b45d4be"'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D0B0:799D:1085EC5:1F7CF6A:5E62857E')] -{"owner_url":"https://api.github.com/repos/jodytest1511/PyGithub","url":"https://api.github.com/projects/4015343","html_url":"https://github.com/jodytest1511/PyGithub/projects/15","columns_url":"https://api.github.com/projects/4015343/columns","id":4015343,"node_id":"MDc6UHJvamVjdDQwMTUzNDM=","name":"Project created by PyGithub","body":"Project Body","number":15,"state":"open","creator":{"login":"jodytest1511","id":61476392,"node_id":"MDQ6VXNlcjYxNDc2Mzky","avatar_url":"https://avatars1.githubusercontent.com/u/61476392?v=4","gravatar_id":"","url":"https://api.github.com/users/jodytest1511","html_url":"https://github.com/jodytest1511","followers_url":"https://api.github.com/users/jodytest1511/followers","following_url":"https://api.github.com/users/jodytest1511/following{/other_user}","gists_url":"https://api.github.com/users/jodytest1511/gists{/gist_id}","starred_url":"https://api.github.com/users/jodytest1511/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jodytest1511/subscriptions","organizations_url":"https://api.github.com/users/jodytest1511/orgs","repos_url":"https://api.github.com/users/jodytest1511/repos","events_url":"https://api.github.com/users/jodytest1511/events{/privacy}","received_events_url":"https://api.github.com/users/jodytest1511/received_events","type":"User","site_admin":false},"created_at":"2020-02-25T21:03:35Z","updated_at":"2020-03-06T17:16:45Z"} - -https -GET -api.github.com -None -/projects/4015343/columns -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Fri, 06 Mar 2020 17:16:46 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4935'), ('X-RateLimit-Reset', '1583518122'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"e37a6d5dc4f5e1482a017eba0d558ddc"'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D0B1:1DD9:14FD6F:33AAA9:5E62857E')] -[{"url":"https://api.github.com/projects/columns/8125057","project_url":"https://api.github.com/projects/4015343","cards_url":"https://api.github.com/projects/columns/8125057/cards","id":8125057,"node_id":"MDEzOlByb2plY3RDb2x1bW44MTI1MDU3","name":"Project Column created by PyGithub","created_at":"2020-02-25T21:03:36Z","updated_at":"2020-03-06T17:16:45Z"}] - https POST api.github.com diff --git a/tests/ReplayData/Project.testEditCardNote.txt b/tests/ReplayData/ProjectCard.testEditNote.txt similarity index 54% rename from tests/ReplayData/Project.testEditCardNote.txt rename to tests/ReplayData/ProjectCard.testEditNote.txt index 3fe8d29653..7234385c16 100644 --- a/tests/ReplayData/Project.testEditCardNote.txt +++ b/tests/ReplayData/ProjectCard.testEditNote.txt @@ -1,25 +1,3 @@ -https -GET -api.github.com -None -/projects/4015343 -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Fri, 06 Mar 2020 17:16:44 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4942'), ('X-RateLimit-Reset', '1583518122'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"7fb19c8d8c7f42354001b9841118f32a"'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D0AA:55E9:8DB5CC:15AA889:5E62857C')] -{"owner_url":"https://api.github.com/repos/jodytest1511/PyGithub","url":"https://api.github.com/projects/4015343","html_url":"https://github.com/jodytest1511/PyGithub/projects/15","columns_url":"https://api.github.com/projects/4015343/columns","id":4015343,"node_id":"MDc6UHJvamVjdDQwMTUzNDM=","name":"Project created by PyGithub","body":"Project Body","number":15,"state":"open","creator":{"login":"jodytest1511","id":61476392,"node_id":"MDQ6VXNlcjYxNDc2Mzky","avatar_url":"https://avatars1.githubusercontent.com/u/61476392?v=4","gravatar_id":"","url":"https://api.github.com/users/jodytest1511","html_url":"https://github.com/jodytest1511","followers_url":"https://api.github.com/users/jodytest1511/followers","following_url":"https://api.github.com/users/jodytest1511/following{/other_user}","gists_url":"https://api.github.com/users/jodytest1511/gists{/gist_id}","starred_url":"https://api.github.com/users/jodytest1511/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jodytest1511/subscriptions","organizations_url":"https://api.github.com/users/jodytest1511/orgs","repos_url":"https://api.github.com/users/jodytest1511/repos","events_url":"https://api.github.com/users/jodytest1511/events{/privacy}","received_events_url":"https://api.github.com/users/jodytest1511/received_events","type":"User","site_admin":false},"created_at":"2020-02-25T21:03:35Z","updated_at":"2020-03-06T17:16:17Z"} - -https -GET -api.github.com -None -/projects/4015343/columns -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Fri, 06 Mar 2020 17:16:44 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4941'), ('X-RateLimit-Reset', '1583518122'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"971e983ebf82aba488ebf352c942ee55"'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D0AB:442F:10F905D:1FA33DB:5E62857C')] -[{"url":"https://api.github.com/projects/columns/8125057","project_url":"https://api.github.com/projects/4015343","cards_url":"https://api.github.com/projects/columns/8125057/cards","id":8125057,"node_id":"MDEzOlByb2plY3RDb2x1bW44MTI1MDU3","name":"Project Column created by PyGithub","created_at":"2020-02-25T21:03:36Z","updated_at":"2020-03-06T17:16:17Z"}] - https POST api.github.com diff --git a/tests/ReplayData/Project.testEditCardWithoutParameters.txt b/tests/ReplayData/ProjectCard.testEditWithoutParameters.txt similarity index 54% rename from tests/ReplayData/Project.testEditCardWithoutParameters.txt rename to tests/ReplayData/ProjectCard.testEditWithoutParameters.txt index 391045022d..ec1412a6ad 100644 --- a/tests/ReplayData/Project.testEditCardWithoutParameters.txt +++ b/tests/ReplayData/ProjectCard.testEditWithoutParameters.txt @@ -1,25 +1,3 @@ -https -GET -api.github.com -None -/projects/4015343 -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Fri, 06 Mar 2020 17:16:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4930'), ('X-RateLimit-Reset', '1583518122'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"859ccf140c23723c7919f2398b3871ba"'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D0B6:492C:F647F7:1DC6448:5E628580')] -{"owner_url":"https://api.github.com/repos/jodytest1511/PyGithub","url":"https://api.github.com/projects/4015343","html_url":"https://github.com/jodytest1511/PyGithub/projects/15","columns_url":"https://api.github.com/projects/4015343/columns","id":4015343,"node_id":"MDc6UHJvamVjdDQwMTUzNDM=","name":"Project created by PyGithub","body":"Project Body","number":15,"state":"open","creator":{"login":"jodytest1511","id":61476392,"node_id":"MDQ6VXNlcjYxNDc2Mzky","avatar_url":"https://avatars1.githubusercontent.com/u/61476392?v=4","gravatar_id":"","url":"https://api.github.com/users/jodytest1511","html_url":"https://github.com/jodytest1511","followers_url":"https://api.github.com/users/jodytest1511/followers","following_url":"https://api.github.com/users/jodytest1511/following{/other_user}","gists_url":"https://api.github.com/users/jodytest1511/gists{/gist_id}","starred_url":"https://api.github.com/users/jodytest1511/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jodytest1511/subscriptions","organizations_url":"https://api.github.com/users/jodytest1511/orgs","repos_url":"https://api.github.com/users/jodytest1511/repos","events_url":"https://api.github.com/users/jodytest1511/events{/privacy}","received_events_url":"https://api.github.com/users/jodytest1511/received_events","type":"User","site_admin":false},"created_at":"2020-02-25T21:03:35Z","updated_at":"2020-03-06T17:16:47Z"} - -https -GET -api.github.com -None -/projects/4015343/columns -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Fri, 06 Mar 2020 17:16:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4929'), ('X-RateLimit-Reset', '1583518122'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"303e639b16402fbdd06370a9ce962b8b"'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D0B7:71BE:FC8452:1E34B55:5E628580')] -[{"url":"https://api.github.com/projects/columns/8125057","project_url":"https://api.github.com/projects/4015343","cards_url":"https://api.github.com/projects/columns/8125057/cards","id":8125057,"node_id":"MDEzOlByb2plY3RDb2x1bW44MTI1MDU3","name":"Project Column created by PyGithub","created_at":"2020-02-25T21:03:36Z","updated_at":"2020-03-06T17:16:47Z"}] - https POST api.github.com diff --git a/tests/ReplayData/Project.testGetAllProjectCards.txt b/tests/ReplayData/ProjectCard.testGetAll.txt similarity index 100% rename from tests/ReplayData/Project.testGetAllProjectCards.txt rename to tests/ReplayData/ProjectCard.testGetAll.txt diff --git a/tests/ReplayData/Project.testGetProjectCardContent.txt b/tests/ReplayData/ProjectCard.testGetContent.txt similarity index 64% rename from tests/ReplayData/Project.testGetProjectCardContent.txt rename to tests/ReplayData/ProjectCard.testGetContent.txt index 6876d87ce7..604ae7a036 100644 --- a/tests/ReplayData/Project.testGetProjectCardContent.txt +++ b/tests/ReplayData/ProjectCard.testGetContent.txt @@ -1,36 +1,3 @@ -https -GET -api.github.com -None -/projects/1682941 -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Date', 'Mon, 13 Aug 2018 20:46:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4990'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"d41667487e81d823d4dfd11da0547f36"'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.074803'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'ED5E:528C:C8567:104287:5B71EE27')] -{"owner_url":"https://api.github.com/repos/bbi-yggy/PyGithub","url":"https://api.github.com/projects/1682941","html_url":"https://github.com/bbi-yggy/PyGithub/projects/1","columns_url":"https://api.github.com/projects/1682941/columns","id":1682941,"node_id":"MDc6UHJvamVjdDE2ODI5NDE=","name":"TestProject","body":"To be used for testing project access API for PyGithub.","number":1,"state":"open","creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:06:57Z","updated_at":"2018-08-13T05:36:20Z"} - -https -GET -api.github.com -None -/projects/1682941/columns -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Date', 'Mon, 13 Aug 2018 20:46:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4989'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"2651dd36184e34861070c99961911f72"'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.068263'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'EDAB:528C:C8574:104296:5B71EE27')] -[{"url":"https://api.github.com/projects/columns/3138830","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138830/cards","id":3138830,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMw","name":"To Do","created_at":"2018-08-01T04:07:35Z","updated_at":"2018-08-01T04:07:35Z"},{"url":"https://api.github.com/projects/columns/3138831","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138831/cards","id":3138831,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMx","name":"In Progress","created_at":"2018-08-01T04:07:43Z","updated_at":"2018-08-13T05:36:20Z"},{"url":"https://api.github.com/projects/columns/3138832","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138832/cards","id":3138832,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMy","name":"Done","created_at":"2018-08-01T04:07:47Z","updated_at":"2018-08-03T00:31:17Z"}] - -https -GET -api.github.com -None -/projects/columns/3138831/cards -{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Date', 'Mon, 13 Aug 2018 20:46:32 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4988'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"b34981c73fa8d0ac5117df1816b3548f"'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.133604'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'EDCD:528D:FD1E6:146E30:5B71EE27')] -[{"url":"https://api.github.com/projects/columns/cards/11780055","id":11780055,"node_id":"MDExOlByb2plY3RDYXJkMTE3ODAwNTU=","note":null,"archived":false,"creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:53:59Z","updated_at":"2018-08-01T04:54:16Z","column_url":"https://api.github.com/projects/columns/3138831","content_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/1"},{"url":"https://api.github.com/projects/columns/cards/12078706","id":12078706,"node_id":"MDExOlByb2plY3RDYXJkMTIwNzg3MDY=","note":null,"archived":false,"creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-13T04:46:29Z","updated_at":"2018-08-13T04:46:44Z","column_url":"https://api.github.com/projects/columns/3138831","content_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/2"},{"url":"https://api.github.com/projects/columns/cards/12079385","id":12079385,"node_id":"MDExOlByb2plY3RDYXJkMTIwNzkzODU=","note":"Test note","archived":false,"creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-13T05:36:13Z","updated_at":"2018-08-13T05:36:20Z","column_url":"https://api.github.com/projects/columns/3138831"}] - https GET api.github.com diff --git a/tests/ReplayData/ProjectCard.testMove.txt b/tests/ReplayData/ProjectCard.testMove.txt new file mode 100644 index 0000000000..0cb7e45245 --- /dev/null +++ b/tests/ReplayData/ProjectCard.testMove.txt @@ -0,0 +1,21 @@ +https +POST +api.github.com +None +/projects/columns/cards/11780055/moves +{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'Content-Type': 'application/json', 'User-Agent': 'PyGithub/Python'} +{"column_id": 3138832, "position": "top"} +201 +[('status', '201 Created'), ('x-ratelimit-remaining', '4982'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f79a53550c9b90814f0be2b54ab2cc8e"'), ('date', 'Fri, 17 Jan 2020 02:03:18 GMT'), ('content-type', 'application/json; charset=utf-8')] +{} + +https +POST +api.github.com +None +/projects/columns/cards/11780055/moves +{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'Content-Type': 'application/json', 'User-Agent': 'PyGithub/Python'} +{"column_id": 3138831, "position": "bottom"} +201 +[('status', '201 Created'), ('x-ratelimit-remaining', '4982'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e87658ab0c9b90814f0be2b54ab2cc8e"'), ('date', 'Fri, 17 Jan 2020 02:03:24 GMT'), ('content-type', 'application/json; charset=utf-8')] +{} diff --git a/tests/ReplayData/ProjectColumn.setUp.txt b/tests/ReplayData/ProjectColumn.setUp.txt index 780e2883b6..a3f8e998e2 100644 --- a/tests/ReplayData/ProjectColumn.setUp.txt +++ b/tests/ReplayData/ProjectColumn.setUp.txt @@ -19,3 +19,25 @@ None 200 [('Date', 'Thu, 16 Apr 2020 05:51:15 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4949'), ('X-RateLimit-Reset', '1587018429'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"300ff83801042bc987edec9dded63773"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, read:packages, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D59E:FA92:18965F9:1CB2924:5E97F252')] {"url":"https://api.github.com/projects/columns/8748065","project_url":"https://api.github.com/projects/4294766","cards_url":"https://api.github.com/projects/columns/8748065/cards","id":8748065,"node_id":"MDEzOlByb2plY3RDb2x1bW44NzQ4MDY1","name":"newTestColumn","created_at":"2020-04-16T05:42:37Z","updated_at":"2020-04-16T05:44:21Z"} + +https +GET +api.github.com +None +/projects/1682941 +{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 11 Aug 2018 05:11:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4977'), ('X-RateLimit-Reset', '1533965918'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"27943de4706a46a49435f50612ed14a7"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.073652'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DB5F:5AC5:10682C2:21382ED:5B6E701D')] +{"owner_url":"https://api.github.com/repos/bbi-yggy/PyGithub","url":"https://api.github.com/projects/1682941","html_url":"https://github.com/bbi-yggy/PyGithub/projects/1","columns_url":"https://api.github.com/projects/1682941/columns","id":1682941,"node_id":"MDc6UHJvamVjdDE2ODI5NDE=","name":"TestProject","body":"To be used for testing project access API for PyGithub.","number":1,"state":"open","creator":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-08-01T04:06:57Z","updated_at":"2018-08-03T00:31:17Z"} + +https +GET +api.github.com +None +/projects/1682941/columns +{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 13 Aug 2018 04:27:30 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4985'), ('X-RateLimit-Reset', '1534137668'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"3163aa25d9bf114a91b6ac971fec44f1"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.053606'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DE4F:5F76:13E71:35FB1:5B7108B1')] +[{"url":"https://api.github.com/projects/columns/3138830","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138830/cards","id":3138830,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMw","name":"To Do","created_at":"2018-08-01T04:07:35Z","updated_at":"2018-08-01T04:07:35Z"},{"url":"https://api.github.com/projects/columns/3138831","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138831/cards","id":3138831,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMx","name":"In Progress","created_at":"2018-08-01T04:07:43Z","updated_at":"2018-08-01T04:54:16Z"},{"url":"https://api.github.com/projects/columns/3138832","project_url":"https://api.github.com/projects/1682941","cards_url":"https://api.github.com/projects/columns/3138832/cards","id":3138832,"node_id":"MDEzOlByb2plY3RDb2x1bW4zMTM4ODMy","name":"Done","created_at":"2018-08-01T04:07:47Z","updated_at":"2018-08-03T00:31:17Z"}] diff --git a/tests/ReplayData/ProjectColumn.testCreate.txt b/tests/ReplayData/ProjectColumn.testCreate.txt new file mode 100644 index 0000000000..69b0ce0816 --- /dev/null +++ b/tests/ReplayData/ProjectColumn.testCreate.txt @@ -0,0 +1,43 @@ +https +GET +api.github.com +None +/user +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Mon, 13 Aug 2018 20:46:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4992'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"a7b881032dc3372f0757ab8399ffce75"'), ('Last-Modified', 'Fri, 27 Jul 2018 17:52:16 GMT'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.038446'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'ED45:528D:FD186:146DB5:5B71EE27')] +{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false,"name":"Yossarian King","company":"Blackbird Interactive","blog":"","location":"Vancouver, Canada","email":null,"hireable":null,"bio":null,"public_repos":3,"public_gists":2,"followers":3,"following":1,"created_at":"2014-01-13T18:03:47Z","updated_at":"2018-07-27T17:52:16Z","private_gists":3,"total_private_repos":0,"owned_private_repos":0,"disk_usage":0,"collaborators":0,"two_factor_authentication":true,"plan":{"name":"free","space":976562499,"collaborators":0,"private_repos":0}} + +https +GET +api.github.com +None +/repos/bbi-yggy/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Mon, 13 Aug 2018 20:46:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4991'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"1a4d58b0c31a5e69747b7ad48d7a91ee"'), ('Last-Modified', 'Wed, 01 Aug 2018 05:11:35 GMT'), ('X-OAuth-Scopes', 'read:org, read:user, repo, user:email'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-Runtime-rack', '0.077165'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'ED5B:528C:C8555:10426C:5B71EE27')] +{"id":143089995,"node_id":"MDEwOlJlcG9zaXRvcnkxNDMwODk5OTU=","name":"PyGithub","full_name":"bbi-yggy/PyGithub","owner":{"login":"bbi-yggy","id":6392037,"node_id":"MDQ6VXNlcjYzOTIwMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6392037?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bbi-yggy/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/bbi-yggy/PyGithub","forks_url":"https://api.github.com/repos/bbi-yggy/PyGithub/forks","keys_url":"https://api.github.com/repos/bbi-yggy/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bbi-yggy/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bbi-yggy/PyGithub/teams","hooks_url":"https://api.github.com/repos/bbi-yggy/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/bbi-yggy/PyGithub/events","assignees_url":"https://api.github.com/repos/bbi-yggy/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/bbi-yggy/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/bbi-yggy/PyGithub/tags","blobs_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bbi-yggy/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/bbi-yggy/PyGithub/languages","stargazers_url":"https://api.github.com/repos/bbi-yggy/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/bbi-yggy/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/bbi-yggy/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/bbi-yggy/PyGithub/subscription","commits_url":"https://api.github.com/repos/bbi-yggy/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/bbi-yggy/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/bbi-yggy/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/bbi-yggy/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/bbi-yggy/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bbi-yggy/PyGithub/merges","archive_url":"https://api.github.com/repos/bbi-yggy/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bbi-yggy/PyGithub/downloads","issues_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/bbi-yggy/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/bbi-yggy/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/bbi-yggy/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bbi-yggy/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/bbi-yggy/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/bbi-yggy/PyGithub/deployments","created_at":"2018-08-01T01:50:10Z","updated_at":"2018-08-01T05:11:35Z","pushed_at":"2018-08-13T19:19:24Z","git_url":"git://github.com/bbi-yggy/PyGithub.git","ssh_url":"git@github.com:bbi-yggy/PyGithub.git","clone_url":"https://github.com/bbi-yggy/PyGithub.git","svn_url":"https://github.com/bbi-yggy/PyGithub","homepage":"http://pygithub.readthedocs.io/","size":11292,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":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"},"forks":0,"open_issues":1,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"parent":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.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},"private":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":"2018-08-13T19:07:20Z","pushed_at":"2018-08-13T19:19:26Z","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":"http://pygithub.readthedocs.io/","size":11205,"stargazers_count":1976,"watchers_count":1976,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":691,"mirror_url":null,"archived":false,"open_issues_count":103,"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"},"forks":691,"open_issues":103,"watchers":1976,"default_branch":"master"},"source":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.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},"private":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":"2018-08-13T19:07:20Z","pushed_at":"2018-08-13T19:19:26Z","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":"http://pygithub.readthedocs.io/","size":11205,"stargazers_count":1976,"watchers_count":1976,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":691,"mirror_url":null,"archived":false,"open_issues_count":103,"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"},"forks":691,"open_issues":103,"watchers":1976,"default_branch":"master"},"network_count":691,"subscribers_count":0} + +https +POST +api.github.com +None +/repos/bbi-yggy/PyGithub/projects +{'Content-Type': 'application/json', 'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +{"body": "Project Body", "name": "Project created by PyGithub"} +201 +[('Server', 'GitHub.com'), ('Date', 'Sun, 16 Dec 2018 22:02:56 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1373'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4989'), ('X-RateLimit-Reset', '1544999455'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', '"bf99d7ce1a2fe172bd5715baa6a96669"'), ('Location', 'https://api.github.com/projects/2013874'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', '8FE4:0E37:25EFA8D:55896AD:5C16CB8F')] +{"owner_url":"https://api.github.com/repos/bbi-yggy/PyGithub","url":"https://api.github.com/projects/2013874","html_url":"https://github.com/bbi-yggy/PyGithub/projects/2","columns_url":"https://api.github.com/projects/2013874/columns","id":2013874,"node_id":"MDc6UHJvamVjdDIwMTM4NzQ=","name":"Project created by PyGithub","body":"Project Body","number":2,"state":"open","creator":{"login":"bbi-yggy","id":1086629,"node_id":"MDQ6VXNlcjEwODY2Mjk=","avatar_url":"https://avatars0.githubusercontent.com/u/1086629?v=4","gravatar_id":"","url":"https://api.github.com/users/bbi-yggy","html_url":"https://github.com/bbi-yggy","followers_url":"https://api.github.com/users/bbi-yggy/followers","following_url":"https://api.github.com/users/bbi-yggy/following{/other_user}","gists_url":"https://api.github.com/users/bbi-yggy/gists{/gist_id}","starred_url":"https://api.github.com/users/bbi-yggy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbi-yggy/subscriptions","organizations_url":"https://api.github.com/users/bbi-yggy/orgs","repos_url":"https://api.github.com/users/bbi-yggy/repos","events_url":"https://api.github.com/users/bbi-yggy/events{/privacy}","received_events_url":"https://api.github.com/users/bbi-yggy/received_events","type":"User","site_admin":false},"created_at":"2018-12-16T22:02:56Z","updated_at":"2018-12-16T22:02:56Z"} + +https +POST +api.github.com +None +/projects/2013874/columns +{'Content-Type': 'application/json', 'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +{"name": "Project Column created by PyGithub"} +201 +[('Server', 'GitHub.com'), ('Date', 'Sun, 16 Dec 2018 22:02:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '355'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4988'), ('X-RateLimit-Reset', '1544999455'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', '"e665df9df30f8cacff8d513a747defae"'), ('Location', 'https://api.github.com/projects/columns/3999333'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', 'A49A:0E36:145887E:33DDBB8:5C16CB90')] +{"url":"https://api.github.com/projects/columns/3999333","project_url":"https://api.github.com/projects/2013874","cards_url":"https://api.github.com/projects/columns/3999333/cards","id":3999333,"node_id":"MDEzOlByb2plY3RDb2x1bW4zOTk5MzMz","name":"Project Column created by PyGithub","created_at":"2018-12-16T22:02:57Z","updated_at":"2018-12-16T22:02:57Z"} diff --git a/tests/ReplayData/PullRequest.setUp.txt b/tests/ReplayData/PullRequest.setUp.txt index 197b7104fc..68a822dbab 100644 --- a/tests/ReplayData/PullRequest.setUp.txt +++ b/tests/ReplayData/PullRequest.setUp.txt @@ -18,7 +18,7 @@ None None 200 [('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jun 2023 08:27:46 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/"a41ee9edeaca5340c5132c726626daebfd3d9755ecc6f660b86b181dd45e202c"'), ('Last-Modified', 'Tue, 30 May 2023 15:23:13 GMT'), ('X-OAuth-Scopes', 'public_repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4958'), ('X-RateLimit-Reset', '1686126614'), ('X-RateLimit-Used', '42'), ('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', '83F0:276E:81B6DB:830DD7:64803F81')] -{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31","id":1436215,"node_id":"MDExOlB1bGxSZXF1ZXN0MTQzNjIxNQ==","html_url":"https://github.com/PyGithub/PyGithub/pull/31","diff_url":"https://github.com/PyGithub/PyGithub/pull/31.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/31.patch","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/31","number":31,"state":"closed","locked":false,"title":"Title edited by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"body":"Body edited by PyGithub\n","created_at":"2012-05-27T09:25:36Z","updated_at":"2018-06-25T12:54:43Z","closed_at":"2012-05-27T10:29:07Z","merged_at":"2012-05-27T10:29:07Z","merge_commit_sha":"28ae6dd10ebccd5eaf8db8dacb5b699ee7f4a663","assignee":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"assignees":[{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31/commits","review_comments_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31/comments","review_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/31/comments","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/8a4f306d4b223682dd19410d4a9150636ebe4206","head":{"label":null,"ref":"master","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","user":null,"repo":null},"base":{"label":"PyGithub:topic/RewriteWithGeneratedCode","ref":"topic/RewriteWithGeneratedCode","sha":"ed866fc43833802ab553e5ff8581c81bb00dd433","user":{"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},"repo":{"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":"2023-06-07T04:02:03Z","pushed_at":"2023-06-07T06:56:40Z","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":13881,"stargazers_count":6051,"watchers_count":6051,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1635,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":252,"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":1635,"open_issues":252,"watchers":6051,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/31"},"issue":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/31"},"comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/31/comments"},"review_comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31/comments"},"review_comment":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31/commits"},"statuses":{"href":"https://api.github.com/repos/PyGithub/PyGithub/statuses/8a4f306d4b223682dd19410d4a9150636ebe4206"}},"author_association":"MEMBER","auto_merge":null,"active_lock_reason":null,"merged":true,"mergeable":false,"rebaseable":false,"mergeable_state":"dirty","merged_by":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"comments":1,"review_comments":2,"maintainer_can_modify":false,"commits":3,"additions":511,"deletions":384,"changed_files":45} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31","id":1436215,"node_id":"MDExOlB1bGxSZXF1ZXN0MTQzNjIxNQ==","html_url":"https://github.com/PyGithub/PyGithub/pull/31","diff_url":"https://github.com/PyGithub/PyGithub/pull/31.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/31.patch","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/31","number":31,"state":"closed","locked":false,"title":"Title edited by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"body":"Body edited by PyGithub\n","created_at":"2012-05-27T09:25:36Z","updated_at":"2018-06-25T12:54:43Z","closed_at":"2012-05-27T10:29:07Z","merged_at":"2012-05-27T10:29:07Z","merge_commit_sha":"28ae6dd10ebccd5eaf8db8dacb5b699ee7f4a663","assignee":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"assignees":[{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"sfdye"}],"requested_teams":[{"id":123}],"labels":[],"milestone":{"number":1},"draft":false,"commits_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31/commits","review_comments_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31/comments","review_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/31/comments","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/8a4f306d4b223682dd19410d4a9150636ebe4206","head":{"label":null,"ref":"master","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","user":null,"repo":null},"base":{"label":"PyGithub:topic/RewriteWithGeneratedCode","ref":"topic/RewriteWithGeneratedCode","sha":"ed866fc43833802ab553e5ff8581c81bb00dd433","user":{"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},"repo":{"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":"2023-06-07T04:02:03Z","pushed_at":"2023-06-07T06:56:40Z","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":13881,"stargazers_count":6051,"watchers_count":6051,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1635,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":252,"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":1635,"open_issues":252,"watchers":6051,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/31"},"issue":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/31"},"comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/31/comments"},"review_comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31/comments"},"review_comment":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31/commits"},"statuses":{"href":"https://api.github.com/repos/PyGithub/PyGithub/statuses/8a4f306d4b223682dd19410d4a9150636ebe4206"}},"author_association":"MEMBER","auto_merge":null,"active_lock_reason":null,"merged":true,"mergeable":false,"rebaseable":false,"mergeable_state":"dirty","merged_by":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"comments":1,"review_comments":2,"maintainer_can_modify":false,"commits":3,"additions":511,"deletions":384,"changed_files":45} https GET diff --git a/tests/ReplayData/PullRequest.testConvertToDraft.txt b/tests/ReplayData/PullRequest.testConvertToDraft.txt new file mode 100644 index 0000000000..8d36a3d647 --- /dev/null +++ b/tests/ReplayData/PullRequest.testConvertToDraft.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/repos/didot/PyGithub/pulls/1 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Mon, 06 Jan 2025 09:34:25 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"23b20103c700a7567659371a9c12fdce3822bf16609cbf8a278ce3507c6ad979"'), ('Last-Modified', 'Mon, 06 Jan 2025 09:34:25 GMT'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-05 08:39:31 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4943'), ('X-RateLimit-Reset', '1736156899'), ('X-RateLimit-Used', '57'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'AD66:4E297:2BFFBE92:2D1F40CE:677BA3A1')] +{"url":"https://api.github.com/repos/didot/PyGithub/pulls/1","id":2261445415,"node_id":"PR_kwDONmaxWc6Gyusn","html_url":"https://github.com/didot/PyGithub/pull/1","diff_url":"https://github.com/didot/PyGithub/pull/1.diff","patch_url":"https://github.com/didot/PyGithub/pull/1.patch","issue_url":"https://api.github.com/repos/didot/PyGithub/issues/1","number":1,"state":"open","locked":false,"title":"From 'ready' to 'draft'","user":{"login":"didot","id":1644708,"node_id":"MDQ6VXNlcjE2NDQ3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1644708?v=4","gravatar_id":"","url":"https://api.github.com/users/didot","html_url":"https://github.com/didot","followers_url":"https://api.github.com/users/didot/followers","following_url":"https://api.github.com/users/didot/following{/other_user}","gists_url":"https://api.github.com/users/didot/gists{/gist_id}","starred_url":"https://api.github.com/users/didot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/didot/subscriptions","organizations_url":"https://api.github.com/users/didot/orgs","repos_url":"https://api.github.com/users/didot/repos","events_url":"https://api.github.com/users/didot/events{/privacy}","received_events_url":"https://api.github.com/users/didot/received_events","type":"User","user_view_type":"public","site_admin":false},"body":null,"created_at":"2025-01-06T08:04:51Z","updated_at":"2025-01-06T09:34:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c7049b7bec767ea0188ee839b68b25b6d3f9df94","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/didot/PyGithub/pulls/1/commits","review_comments_url":"https://api.github.com/repos/didot/PyGithub/pulls/1/comments","review_comment_url":"https://api.github.com/repos/didot/PyGithub/pulls/comments{/number}","comments_url":"https://api.github.com/repos/didot/PyGithub/issues/1/comments","statuses_url":"https://api.github.com/repos/didot/PyGithub/statuses/fc649fcb08085ec609caf01d7d3404b2b7397f59","head":{"label":"didot:test","ref":"test","sha":"fc649fcb08085ec609caf01d7d3404b2b7397f59","user":{"login":"didot","id":1644708,"node_id":"MDQ6VXNlcjE2NDQ3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1644708?v=4","gravatar_id":"","url":"https://api.github.com/users/didot","html_url":"https://github.com/didot","followers_url":"https://api.github.com/users/didot/followers","following_url":"https://api.github.com/users/didot/following{/other_user}","gists_url":"https://api.github.com/users/didot/gists{/gist_id}","starred_url":"https://api.github.com/users/didot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/didot/subscriptions","organizations_url":"https://api.github.com/users/didot/orgs","repos_url":"https://api.github.com/users/didot/repos","events_url":"https://api.github.com/users/didot/events{/privacy}","received_events_url":"https://api.github.com/users/didot/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":912699737,"node_id":"R_kgDONmaxWQ","name":"PyGithub","full_name":"didot/PyGithub","private":false,"owner":{"login":"didot","id":1644708,"node_id":"MDQ6VXNlcjE2NDQ3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1644708?v=4","gravatar_id":"","url":"https://api.github.com/users/didot","html_url":"https://github.com/didot","followers_url":"https://api.github.com/users/didot/followers","following_url":"https://api.github.com/users/didot/following{/other_user}","gists_url":"https://api.github.com/users/didot/gists{/gist_id}","starred_url":"https://api.github.com/users/didot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/didot/subscriptions","organizations_url":"https://api.github.com/users/didot/orgs","repos_url":"https://api.github.com/users/didot/repos","events_url":"https://api.github.com/users/didot/events{/privacy}","received_events_url":"https://api.github.com/users/didot/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/didot/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/didot/PyGithub","forks_url":"https://api.github.com/repos/didot/PyGithub/forks","keys_url":"https://api.github.com/repos/didot/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/didot/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/didot/PyGithub/teams","hooks_url":"https://api.github.com/repos/didot/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/didot/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/didot/PyGithub/events","assignees_url":"https://api.github.com/repos/didot/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/didot/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/didot/PyGithub/tags","blobs_url":"https://api.github.com/repos/didot/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/didot/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/didot/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/didot/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/didot/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/didot/PyGithub/languages","stargazers_url":"https://api.github.com/repos/didot/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/didot/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/didot/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/didot/PyGithub/subscription","commits_url":"https://api.github.com/repos/didot/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/didot/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/didot/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/didot/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/didot/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/didot/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/didot/PyGithub/merges","archive_url":"https://api.github.com/repos/didot/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/didot/PyGithub/downloads","issues_url":"https://api.github.com/repos/didot/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/didot/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/didot/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/didot/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/didot/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/didot/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/didot/PyGithub/deployments","created_at":"2025-01-06T08:03:32Z","updated_at":"2025-01-06T08:03:32Z","pushed_at":"2025-01-06T09:16:28Z","git_url":"git://github.com/didot/PyGithub.git","ssh_url":"git@github.com:didot/PyGithub.git","clone_url":"https://github.com/didot/PyGithub.git","svn_url":"https://github.com/didot/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":14406,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":2,"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":2,"watchers":0,"default_branch":"main"}},"base":{"label":"didot:main","ref":"main","sha":"3d84a47a88f6757514cb3ee91b829f53ba09e7e0","user":{"login":"didot","id":1644708,"node_id":"MDQ6VXNlcjE2NDQ3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1644708?v=4","gravatar_id":"","url":"https://api.github.com/users/didot","html_url":"https://github.com/didot","followers_url":"https://api.github.com/users/didot/followers","following_url":"https://api.github.com/users/didot/following{/other_user}","gists_url":"https://api.github.com/users/didot/gists{/gist_id}","starred_url":"https://api.github.com/users/didot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/didot/subscriptions","organizations_url":"https://api.github.com/users/didot/orgs","repos_url":"https://api.github.com/users/didot/repos","events_url":"https://api.github.com/users/didot/events{/privacy}","received_events_url":"https://api.github.com/users/didot/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":912699737,"node_id":"R_kgDONmaxWQ","name":"PyGithub","full_name":"didot/PyGithub","private":false,"owner":{"login":"didot","id":1644708,"node_id":"MDQ6VXNlcjE2NDQ3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1644708?v=4","gravatar_id":"","url":"https://api.github.com/users/didot","html_url":"https://github.com/didot","followers_url":"https://api.github.com/users/didot/followers","following_url":"https://api.github.com/users/didot/following{/other_user}","gists_url":"https://api.github.com/users/didot/gists{/gist_id}","starred_url":"https://api.github.com/users/didot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/didot/subscriptions","organizations_url":"https://api.github.com/users/didot/orgs","repos_url":"https://api.github.com/users/didot/repos","events_url":"https://api.github.com/users/didot/events{/privacy}","received_events_url":"https://api.github.com/users/didot/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/didot/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/didot/PyGithub","forks_url":"https://api.github.com/repos/didot/PyGithub/forks","keys_url":"https://api.github.com/repos/didot/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/didot/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/didot/PyGithub/teams","hooks_url":"https://api.github.com/repos/didot/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/didot/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/didot/PyGithub/events","assignees_url":"https://api.github.com/repos/didot/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/didot/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/didot/PyGithub/tags","blobs_url":"https://api.github.com/repos/didot/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/didot/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/didot/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/didot/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/didot/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/didot/PyGithub/languages","stargazers_url":"https://api.github.com/repos/didot/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/didot/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/didot/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/didot/PyGithub/subscription","commits_url":"https://api.github.com/repos/didot/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/didot/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/didot/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/didot/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/didot/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/didot/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/didot/PyGithub/merges","archive_url":"https://api.github.com/repos/didot/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/didot/PyGithub/downloads","issues_url":"https://api.github.com/repos/didot/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/didot/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/didot/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/didot/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/didot/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/didot/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/didot/PyGithub/deployments","created_at":"2025-01-06T08:03:32Z","updated_at":"2025-01-06T08:03:32Z","pushed_at":"2025-01-06T09:16:28Z","git_url":"git://github.com/didot/PyGithub.git","ssh_url":"git@github.com:didot/PyGithub.git","clone_url":"https://github.com/didot/PyGithub.git","svn_url":"https://github.com/didot/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":14406,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":2,"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":2,"watchers":0,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/didot/PyGithub/pulls/1"},"html":{"href":"https://github.com/didot/PyGithub/pull/1"},"issue":{"href":"https://api.github.com/repos/didot/PyGithub/issues/1"},"comments":{"href":"https://api.github.com/repos/didot/PyGithub/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/didot/PyGithub/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/didot/PyGithub/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/didot/PyGithub/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/didot/PyGithub/statuses/fc649fcb08085ec609caf01d7d3404b2b7397f59"}},"author_association":"OWNER","auto_merge":null,"active_lock_reason":null,"merged":false,"mergeable":true,"rebaseable":true,"mergeable_state":"clean","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":1,"deletions":0,"changed_files":1} + +https +POST +api.github.com +None +/graphql +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"query": "mutation Mutation($input: ConvertPullRequestToDraftInput!) { convertPullRequestToDraft(input: $input) { clientMutationId pullRequest { isDraft } } }", "variables": {"input": {"pullRequestId": "PR_kwDONmaxWc6Gyusn"}}} +200 +[('Date', 'Mon, 06 Jan 2025 09:34:25 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-05 08:39:31 UTC'), ('X-GitHub-Media-Type', 'github.v4; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4990'), ('X-RateLimit-Reset', '1736156959'), ('X-RateLimit-Used', '10'), ('X-RateLimit-Resource', 'graphql'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '9D73:7BB2F:2B0CB609:2C2C364D:677BA3A0')] +{"data":{"convertPullRequestToDraft":{"clientMutationId":null,"pullRequest":{"isDraft":true}}}} diff --git a/tests/ReplayData/PullRequest.testMarkReadyForReview.txt b/tests/ReplayData/PullRequest.testMarkReadyForReview.txt new file mode 100644 index 0000000000..d2b30ad7a3 --- /dev/null +++ b/tests/ReplayData/PullRequest.testMarkReadyForReview.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/repos/didot/PyGithub/pulls/2 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Mon, 06 Jan 2025 09:34:26 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"901d3f64b84da31f953948e0441a3506640f0febdd2658e5f9203e158635960f"'), ('Last-Modified', 'Mon, 06 Jan 2025 09:33:53 GMT'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-05 08:39:31 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4942'), ('X-RateLimit-Reset', '1736156899'), ('X-RateLimit-Used', '58'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '8919:5A83E:29F979F9:2B18FCD7:677BA3A2')] +{"url":"https://api.github.com/repos/didot/PyGithub/pulls/2","id":2261552074,"node_id":"PR_kwDONmaxWc6GzIvK","html_url":"https://github.com/didot/PyGithub/pull/2","diff_url":"https://github.com/didot/PyGithub/pull/2.diff","patch_url":"https://github.com/didot/PyGithub/pull/2.patch","issue_url":"https://api.github.com/repos/didot/PyGithub/issues/2","number":2,"state":"open","locked":false,"title":"From 'draft' to 'ready'","user":{"login":"didot","id":1644708,"node_id":"MDQ6VXNlcjE2NDQ3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1644708?v=4","gravatar_id":"","url":"https://api.github.com/users/didot","html_url":"https://github.com/didot","followers_url":"https://api.github.com/users/didot/followers","following_url":"https://api.github.com/users/didot/following{/other_user}","gists_url":"https://api.github.com/users/didot/gists{/gist_id}","starred_url":"https://api.github.com/users/didot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/didot/subscriptions","organizations_url":"https://api.github.com/users/didot/orgs","repos_url":"https://api.github.com/users/didot/repos","events_url":"https://api.github.com/users/didot/events{/privacy}","received_events_url":"https://api.github.com/users/didot/received_events","type":"User","user_view_type":"public","site_admin":false},"body":null,"created_at":"2025-01-06T09:16:39Z","updated_at":"2025-01-06T09:33:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f2bb7739e5f56e6bad4ccba2b37c3803e226f4a7","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":true,"commits_url":"https://api.github.com/repos/didot/PyGithub/pulls/2/commits","review_comments_url":"https://api.github.com/repos/didot/PyGithub/pulls/2/comments","review_comment_url":"https://api.github.com/repos/didot/PyGithub/pulls/comments{/number}","comments_url":"https://api.github.com/repos/didot/PyGithub/issues/2/comments","statuses_url":"https://api.github.com/repos/didot/PyGithub/statuses/38f873d46813974566ee39412f702ffbee8d152b","head":{"label":"didot:test-mark-ready","ref":"test-mark-ready","sha":"38f873d46813974566ee39412f702ffbee8d152b","user":{"login":"didot","id":1644708,"node_id":"MDQ6VXNlcjE2NDQ3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1644708?v=4","gravatar_id":"","url":"https://api.github.com/users/didot","html_url":"https://github.com/didot","followers_url":"https://api.github.com/users/didot/followers","following_url":"https://api.github.com/users/didot/following{/other_user}","gists_url":"https://api.github.com/users/didot/gists{/gist_id}","starred_url":"https://api.github.com/users/didot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/didot/subscriptions","organizations_url":"https://api.github.com/users/didot/orgs","repos_url":"https://api.github.com/users/didot/repos","events_url":"https://api.github.com/users/didot/events{/privacy}","received_events_url":"https://api.github.com/users/didot/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":912699737,"node_id":"R_kgDONmaxWQ","name":"PyGithub","full_name":"didot/PyGithub","private":false,"owner":{"login":"didot","id":1644708,"node_id":"MDQ6VXNlcjE2NDQ3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1644708?v=4","gravatar_id":"","url":"https://api.github.com/users/didot","html_url":"https://github.com/didot","followers_url":"https://api.github.com/users/didot/followers","following_url":"https://api.github.com/users/didot/following{/other_user}","gists_url":"https://api.github.com/users/didot/gists{/gist_id}","starred_url":"https://api.github.com/users/didot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/didot/subscriptions","organizations_url":"https://api.github.com/users/didot/orgs","repos_url":"https://api.github.com/users/didot/repos","events_url":"https://api.github.com/users/didot/events{/privacy}","received_events_url":"https://api.github.com/users/didot/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/didot/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/didot/PyGithub","forks_url":"https://api.github.com/repos/didot/PyGithub/forks","keys_url":"https://api.github.com/repos/didot/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/didot/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/didot/PyGithub/teams","hooks_url":"https://api.github.com/repos/didot/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/didot/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/didot/PyGithub/events","assignees_url":"https://api.github.com/repos/didot/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/didot/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/didot/PyGithub/tags","blobs_url":"https://api.github.com/repos/didot/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/didot/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/didot/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/didot/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/didot/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/didot/PyGithub/languages","stargazers_url":"https://api.github.com/repos/didot/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/didot/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/didot/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/didot/PyGithub/subscription","commits_url":"https://api.github.com/repos/didot/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/didot/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/didot/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/didot/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/didot/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/didot/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/didot/PyGithub/merges","archive_url":"https://api.github.com/repos/didot/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/didot/PyGithub/downloads","issues_url":"https://api.github.com/repos/didot/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/didot/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/didot/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/didot/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/didot/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/didot/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/didot/PyGithub/deployments","created_at":"2025-01-06T08:03:32Z","updated_at":"2025-01-06T08:03:32Z","pushed_at":"2025-01-06T09:16:28Z","git_url":"git://github.com/didot/PyGithub.git","ssh_url":"git@github.com:didot/PyGithub.git","clone_url":"https://github.com/didot/PyGithub.git","svn_url":"https://github.com/didot/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":14406,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":2,"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":2,"watchers":0,"default_branch":"main"}},"base":{"label":"didot:main","ref":"main","sha":"3d84a47a88f6757514cb3ee91b829f53ba09e7e0","user":{"login":"didot","id":1644708,"node_id":"MDQ6VXNlcjE2NDQ3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1644708?v=4","gravatar_id":"","url":"https://api.github.com/users/didot","html_url":"https://github.com/didot","followers_url":"https://api.github.com/users/didot/followers","following_url":"https://api.github.com/users/didot/following{/other_user}","gists_url":"https://api.github.com/users/didot/gists{/gist_id}","starred_url":"https://api.github.com/users/didot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/didot/subscriptions","organizations_url":"https://api.github.com/users/didot/orgs","repos_url":"https://api.github.com/users/didot/repos","events_url":"https://api.github.com/users/didot/events{/privacy}","received_events_url":"https://api.github.com/users/didot/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":912699737,"node_id":"R_kgDONmaxWQ","name":"PyGithub","full_name":"didot/PyGithub","private":false,"owner":{"login":"didot","id":1644708,"node_id":"MDQ6VXNlcjE2NDQ3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1644708?v=4","gravatar_id":"","url":"https://api.github.com/users/didot","html_url":"https://github.com/didot","followers_url":"https://api.github.com/users/didot/followers","following_url":"https://api.github.com/users/didot/following{/other_user}","gists_url":"https://api.github.com/users/didot/gists{/gist_id}","starred_url":"https://api.github.com/users/didot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/didot/subscriptions","organizations_url":"https://api.github.com/users/didot/orgs","repos_url":"https://api.github.com/users/didot/repos","events_url":"https://api.github.com/users/didot/events{/privacy}","received_events_url":"https://api.github.com/users/didot/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/didot/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/didot/PyGithub","forks_url":"https://api.github.com/repos/didot/PyGithub/forks","keys_url":"https://api.github.com/repos/didot/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/didot/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/didot/PyGithub/teams","hooks_url":"https://api.github.com/repos/didot/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/didot/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/didot/PyGithub/events","assignees_url":"https://api.github.com/repos/didot/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/didot/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/didot/PyGithub/tags","blobs_url":"https://api.github.com/repos/didot/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/didot/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/didot/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/didot/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/didot/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/didot/PyGithub/languages","stargazers_url":"https://api.github.com/repos/didot/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/didot/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/didot/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/didot/PyGithub/subscription","commits_url":"https://api.github.com/repos/didot/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/didot/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/didot/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/didot/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/didot/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/didot/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/didot/PyGithub/merges","archive_url":"https://api.github.com/repos/didot/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/didot/PyGithub/downloads","issues_url":"https://api.github.com/repos/didot/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/didot/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/didot/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/didot/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/didot/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/didot/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/didot/PyGithub/deployments","created_at":"2025-01-06T08:03:32Z","updated_at":"2025-01-06T08:03:32Z","pushed_at":"2025-01-06T09:16:28Z","git_url":"git://github.com/didot/PyGithub.git","ssh_url":"git@github.com:didot/PyGithub.git","clone_url":"https://github.com/didot/PyGithub.git","svn_url":"https://github.com/didot/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":14406,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":2,"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":2,"watchers":0,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/didot/PyGithub/pulls/2"},"html":{"href":"https://github.com/didot/PyGithub/pull/2"},"issue":{"href":"https://api.github.com/repos/didot/PyGithub/issues/2"},"comments":{"href":"https://api.github.com/repos/didot/PyGithub/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/didot/PyGithub/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/didot/PyGithub/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/didot/PyGithub/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/didot/PyGithub/statuses/38f873d46813974566ee39412f702ffbee8d152b"}},"author_association":"OWNER","auto_merge":null,"active_lock_reason":null,"merged":false,"mergeable":true,"rebaseable":true,"mergeable_state":"clean","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":1,"deletions":0,"changed_files":1} + +https +POST +api.github.com +None +/graphql +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"query": "mutation Mutation($input: MarkPullRequestReadyForReviewInput!) { markPullRequestReadyForReview(input: $input) { clientMutationId pullRequest { isDraft } } }", "variables": {"input": {"pullRequestId": "PR_kwDONmaxWc6GzIvK"}}} +200 +[('Date', 'Mon, 06 Jan 2025 09:34:27 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-05 08:39:31 UTC'), ('X-GitHub-Media-Type', 'github.v4; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4989'), ('X-RateLimit-Reset', '1736156959'), ('X-RateLimit-Used', '11'), ('X-RateLimit-Resource', 'graphql'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'C7CF:654DF:2BEC7D2F:2D0BFE0D:677BA3A2')] +{"data":{"markPullRequestReadyForReview":{"clientMutationId":null,"pullRequest":{"isDraft":false}}}} diff --git a/tests/ReplayData/PullRequest.testReviewRequests.txt b/tests/ReplayData/PullRequest.testReviewRequests.txt index a06ae26b26..ad349170f4 100644 --- a/tests/ReplayData/PullRequest.testReviewRequests.txt +++ b/tests/ReplayData/PullRequest.testReviewRequests.txt @@ -4,7 +4,7 @@ api.github.com None /repos/PyGithub/PyGithub/pulls/31/requested_reviewers {'Authorization': 'Basic login_and_password_removed', 'Content-Type': 'application/json', 'User-Agent': 'PyGithub/Python'} -{"reviewers":"sfdye","team_reviewers":"pygithub-owners"} +{"reviewers":["sfdye"],"team_reviewers":["pygithub-owners"]} 201 '' @@ -37,7 +37,7 @@ api.github.com None /repos/PyGithub/PyGithub/pulls/31/requested_reviewers {'Authorization': 'Basic login_and_password_removed', 'Content-Type': 'application/json', 'User-Agent': 'PyGithub/Python'} -{"reviewers":"sfdye"} +{"reviewers":["sfdye"]} 204 '' diff --git a/tests/ReplayData/PullRequestComment.setUp.txt b/tests/ReplayData/PullRequestComment.setUp.txt index 5749179904..167a786292 100644 --- a/tests/ReplayData/PullRequestComment.setUp.txt +++ b/tests/ReplayData/PullRequestComment.setUp.txt @@ -2,42 +2,31 @@ https GET api.github.com None -/user +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4999'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"a0b159629429109dd7505d8e6cbac5a6"'), ('date', 'Sun, 27 May 2012 10:04:35 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"type":"User","disk_usage":16976,"public_gists":3,"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","public_repos":11,"hireable":false,"private_gists":5,"plan":{"private_repos":5,"collaborators":1,"name":"micro","space":614400},"bio":"","company":"Criteo","blog":"http://vincent-jacques.net","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","total_private_repos":5,"email":"vincent@vincent-jacques.net","collaborators":0,"followers":13,"name":"Vincent Jacques","owned_private_repos":5,"created_at":"2010-07-09T06:10:06Z","location":"Paris, France","id":327146,"following":24,"html_url":"https://github.com/jacquev6"} +[('Date', 'Sun, 05 Jan 2025 13:27:04 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"3bf10b9796066ca1db611f585219958fa4f86b0bea06d7191786e099f3d7603d"'), ('Last-Modified', 'Sun, 05 Jan 2025 09:59:57 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4965'), ('X-RateLimit-Reset', '1736085196'), ('X-RateLimit-Used', '35'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '90A4:88FDE:28198BF9:29258F15:677A88A8')] +{"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","user_view_type":"public","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":"2025-01-05T09:59:57Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7122,"watchers_count":7122,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1792,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":356,"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":1792,"open_issues":356,"watchers":7122,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"PR_BODY","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"enabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1792,"subscribers_count":111} https GET api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub/pulls/31 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4998'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"fdaf0d1e1356717e4a78f377e7b39115"'), ('date', 'Sun, 27 May 2012 10:04:35 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":15,"updated_at":"2012-05-27T08:50:04Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","has_wiki":false,"has_issues":true,"fork":false,"forks":3,"size":308,"git_url":"git://github.com/jacquev6/PyGithub.git","private":false,"open_issues":17,"mirror_url":null,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-27T07:29:24Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"} +[('Date', 'Sun, 05 Jan 2025 13:27:04 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"db2297841dc3d1b5c9240ab22f8961deb3d9c9b6cc235e28313b4866e8f536e1"'), ('Last-Modified', 'Sun, 20 Oct 2024 07:14:52 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4964'), ('X-RateLimit-Reset', '1736085196'), ('X-RateLimit-Used', '36'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '90B0:1146F1:234D69BB:243E14A1:677A88A8')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31","id":1436215,"node_id":"MDExOlB1bGxSZXF1ZXN0MTQzNjIxNQ==","html_url":"https://github.com/PyGithub/PyGithub/pull/31","diff_url":"https://github.com/PyGithub/PyGithub/pull/31.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/31.patch","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/31","number":31,"state":"closed","locked":false,"title":"Title edited by PyGithub","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Body edited by PyGithub\n","created_at":"2012-05-27T09:25:36Z","updated_at":"2018-06-25T12:54:43Z","closed_at":"2012-05-27T10:29:07Z","merged_at":"2012-05-27T10:29:07Z","merge_commit_sha":"28ae6dd10ebccd5eaf8db8dacb5b699ee7f4a663","assignee":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"assignees":[{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31/commits","review_comments_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31/comments","review_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/31/comments","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/8a4f306d4b223682dd19410d4a9150636ebe4206","head":{"label":null,"ref":"master","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","user":null,"repo":null},"base":{"label":"PyGithub:topic/RewriteWithGeneratedCode","ref":"topic/RewriteWithGeneratedCode","sha":"ed866fc43833802ab553e5ff8581c81bb00dd433","user":{"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","user_view_type":"public","site_admin":false},"repo":{"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","user_view_type":"public","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":"2025-01-05T09:59:57Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7122,"watchers_count":7122,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1792,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":356,"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":1792,"open_issues":356,"watchers":7122,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/31"},"issue":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/31"},"comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/31/comments"},"review_comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31/comments"},"review_comment":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31/commits"},"statuses":{"href":"https://api.github.com/repos/PyGithub/PyGithub/statuses/8a4f306d4b223682dd19410d4a9150636ebe4206"}},"author_association":"MEMBER","auto_merge":null,"active_lock_reason":null,"merged":true,"mergeable":false,"rebaseable":false,"mergeable_state":"dirty","merged_by":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"comments":1,"review_comments":2,"maintainer_can_modify":false,"commits":3,"additions":511,"deletions":384,"changed_files":45} https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/31 +/repos/PyGithub/PyGithub/pulls/comments/1580134 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4997'), ('content-length', '4486'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"8f57bc1a8842877715f836c1bfd943e5"'), ('date', 'Sun, 27 May 2012 10:04:36 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"merged":false,"changed_files":45,"mergeable":true,"head":{"ref":"master","label":"BeaverSoftware:master","repo":{"clone_url":"https://github.com/BeaverSoftware/PyGithub.git","git_url":"git://github.com/BeaverSoftware/PyGithub.git","has_downloads":true,"watchers":1,"updated_at":"2012-05-27T09:09:17Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":176,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/PyGithub","owner":{"url":"https://api.github.com/users/BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","login":"BeaverSoftware","id":1424031},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:BeaverSoftware/PyGithub.git","pushed_at":"2012-05-27T09:09:17Z","created_at":"2012-05-27T08:50:04Z","id":4460787,"html_url":"https://github.com/BeaverSoftware/PyGithub","full_name":"BeaverSoftware/PyGithub"},"user":{"url":"https://api.github.com/users/BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","login":"BeaverSoftware","id":1424031},"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},"updated_at":"2012-05-27T09:40:12Z","issue_url":"https://github.com/jacquev6/PyGithub/issues/31","patch_url":"https://github.com/jacquev6/PyGithub/pull/31.patch","body":"Body of the pull request","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31","comments":0,"base":{"ref":"topic/RewriteWithGeneratedCode","label":"jacquev6:topic/RewriteWithGeneratedCode","repo":{"clone_url":"https://github.com/jacquev6/PyGithub.git","git_url":"git://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":15,"updated_at":"2012-05-27T08:50:04Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":3,"size":308,"private":false,"open_issues":17,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-27T07:29:24Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"},"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"sha":"ed866fc43833802ab553e5ff8581c81bb00dd433"},"number":31,"merged_by":null,"closed_at":null,"title":"Pull request created by PyGithub","deletions":384,"merged_at":null,"diff_url":"https://github.com/jacquev6/PyGithub/pull/31.diff","additions":511,"created_at":"2012-05-27T09:25:36Z","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"state":"open","id":1436215,"review_comments":1,"commits":3,"_links":{"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31"},"comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/31/comments"},"issue":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/31"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/31"},"review_comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31/comments"}},"html_url":"https://github.com/jacquev6/PyGithub/pull/31"} - -https -GET -api.github.com -None -/repos/jacquev6/PyGithub/pulls/comments/886298 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('content-length', '937'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c05c16826ff8762adedb7757f916d5de"'), ('date', 'Sun, 27 May 2012 10:04:37 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"updated_at":"2012-05-27T09:40:12Z","position":5,"original_position":5,"body":"Comment created by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/886298","commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","_links":{"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/886298"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/31#r886298"},"pull_request":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31"}},"created_at":"2012-05-27T09:40:12Z","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"original_commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","path":"src/github/Issue.py","id":886298,"html_url":"https://github.com/jacquev6/PyGithub/pull/170#issuecomment-18637907"} +[('Date', 'Sun, 05 Jan 2025 13:27:05 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"dd351a5549627fb7c2afab2352b1d7d086837823097578e6e25f5593aac62764"'), ('Last-Modified', 'Sun, 20 Oct 2024 07:14:52 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4963'), ('X-RateLimit-Reset', '1736085196'), ('X-RateLimit-Used', '37'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '90B2:16833C:21D74E3E:22C02AC5:677A88A9')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/1580134","pull_request_review_id":null,"id":1580134,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE1ODAxMzQ=","diff_hunk":"@@ -70,7 +70,7 @@ def __useAttributes( self, attributes ):\n \n # @todo No need to check if attribute is in attributes when attribute is mandatory\n {% for attribute in class.attributes|dictsort:\"name\" %}\n- if \"{{ attribute.name }}\" in attributes and attributes[ \"{{ attribute.name }}\" ] is not None:\n+ if \"{{ attribute.name }}\" in attributes and attributes[ \"{{ attribute.name }}\" ] is not None: # pragma no branch","path":"codegen/templates/GithubObject.py","commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","original_commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","user":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/327146?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Review comment created for PyGithub\n","created_at":"2012-09-11T20:06:32Z","updated_at":"2012-09-11T20:06:32Z","html_url":"https://github.com/PyGithub/PyGithub/pull/31#discussion_r1580134","pull_request_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/1580134"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/31#discussion_r1580134"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"}},"reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/1580134/reactions","total_count":2,"+1":1,"-1":0,"laugh":0,"hooray":1,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":73,"original_line":null,"side":"RIGHT","original_position":5,"position":5,"subject_type":"line"} diff --git a/tests/ReplayData/PullRequestComment.testCreateReaction.txt b/tests/ReplayData/PullRequestComment.testCreateReaction.txt index 39c98fb791..c30f94dca9 100644 --- a/tests/ReplayData/PullRequestComment.testCreateReaction.txt +++ b/tests/ReplayData/PullRequestComment.testCreateReaction.txt @@ -2,7 +2,7 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/pulls/comments/886298/reactions +/repos/PyGithub/PyGithub/pulls/comments/1580134/reactions {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'Accept': 'application/vnd.github.squirrel-girl-preview', 'User-Agent': 'PyGithub/Python'} {"content": "hooray"} 201 diff --git a/tests/ReplayData/PullRequestComment.testDelete.txt b/tests/ReplayData/PullRequestComment.testDelete.txt index e00d6e85a6..e71c2549c4 100644 --- a/tests/ReplayData/PullRequestComment.testDelete.txt +++ b/tests/ReplayData/PullRequestComment.testDelete.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/pulls/comments/886298 +/repos/PyGithub/PyGithub/pulls/comments/1580134 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/PullRequestComment.testDeleteReaction.txt b/tests/ReplayData/PullRequestComment.testDeleteReaction.txt index 15f1ca5786..a5b571a1ac 100644 --- a/tests/ReplayData/PullRequestComment.testDeleteReaction.txt +++ b/tests/ReplayData/PullRequestComment.testDeleteReaction.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/pulls/comments/886298/reactions/85750463 +/repos/PyGithub/PyGithub/pulls/comments/1580134/reactions/85750463 {'Accept': 'application/vnd.github.squirrel-girl-preview', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/PullRequestComment.testEdit.txt b/tests/ReplayData/PullRequestComment.testEdit.txt index 857c2c1b95..9e3cb7033f 100644 --- a/tests/ReplayData/PullRequestComment.testEdit.txt +++ b/tests/ReplayData/PullRequestComment.testEdit.txt @@ -2,9 +2,9 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub/pulls/comments/886298 +/repos/PyGithub/PyGithub/pulls/comments/1580134 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"body": "Comment edited by PyGithub"} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4991'), ('content-length', '936'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e8c290c08cd5ed76a92529759e9148bc"'), ('date', 'Sun, 27 May 2012 10:09:07 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"updated_at":"2012-05-27T10:09:07Z","position":5,"_links":{"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/886298"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/31#r886298"},"pull_request":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31"}},"original_position":5,"body":"Comment edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/886298","commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","created_at":"2012-05-27T09:40:12Z","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"original_commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","path":"src/github/Issue.py","id":886298} +{"updated_at":"2012-05-27T10:09:07Z","position":5,"_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/1580134"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/31#r1580134"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"}},"original_position":5,"body":"Comment edited by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/1580134","commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","created_at":"2012-05-27T09:40:12Z","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"original_commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","path":"src/github/Issue.py","id":1580134} diff --git a/tests/ReplayData/PullRequestComment.testGetReactions.txt b/tests/ReplayData/PullRequestComment.testGetReactions.txt index ae339c3ebe..a6d3e49258 100644 --- a/tests/ReplayData/PullRequestComment.testGetReactions.txt +++ b/tests/ReplayData/PullRequestComment.testGetReactions.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/comments/886298/reactions +/repos/PyGithub/PyGithub/pulls/comments/1580134/reactions {'Authorization': 'Basic login_and_password_removed', 'Accept': 'application/vnd.github.squirrel-girl-preview', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/RateLimiting.testGetRateLimit.txt b/tests/ReplayData/RateLimiting.testGetRateLimit.txt index b902005eb7..72f3365890 100644 --- a/tests/ReplayData/RateLimiting.testGetRateLimit.txt +++ b/tests/ReplayData/RateLimiting.testGetRateLimit.txt @@ -7,4 +7,4 @@ None None 200 [('Server', 'GitHub.com'), ('Date', 'Mon, 15 May 2023 22:59:21 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'no-cache'), ('github-authentication-token-expiration', '2023-06-14 15:09:46 -0700'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4904'), ('X-RateLimit-Reset', '1684195041'), ('X-RateLimit-Used', '96'), ('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', 'CA6A:617C:4252CD4:44D5F2B:6462B949')] -{"resources":{"core":{"limit":5000,"used":96,"remaining":4904,"reset":1684195041},"search":{"limit":30,"used":0,"remaining":30,"reset":1684191621},"graphql":{"limit":5000,"used":0,"remaining":5000,"reset":1684195161},"integration_manifest":{"limit":5000,"used":0,"remaining":5000,"reset":1684195161},"source_import":{"limit":100,"used":0,"remaining":100,"reset":1684191621},"code_scanning_upload":{"limit":1000,"used":0,"remaining":1000,"reset":1684195161},"actions_runner_registration":{"limit":10000,"used":0,"remaining":10000,"reset":1684195161},"scim":{"limit":15000,"used":0,"remaining":15000,"reset":1684195161},"dependency_snapshots":{"limit":100,"used":0,"remaining":100,"reset":1684191621}},"rate":{"limit":5000,"used":96,"remaining":4904,"reset":1684195041}} +{"resources":{"core":{"limit":5000,"used":12,"remaining":4988,"reset":1734072198},"search":{"limit":30,"used":0,"remaining":30,"reset":1734071358},"graphql":{"limit":5000,"used":192,"remaining":4808,"reset":1734072222},"integration_manifest":{"limit":5000,"used":0,"remaining":5000,"reset":1734074898},"source_import":{"limit":100,"used":0,"remaining":100,"reset":1734071358},"code_scanning_upload":{"limit":1000,"used":0,"remaining":1000,"reset":1734074898},"code_scanning_autofix":{"limit":10,"used":0,"remaining":10,"reset":1734071358},"actions_runner_registration":{"limit":10000,"used":0,"remaining":10000,"reset":1734074898},"scim":{"limit":15000,"used":0,"remaining":15000,"reset":1734074898},"dependency_snapshots":{"limit":100,"used":0,"remaining":100,"reset":1734071358},"audit_log":{"limit":1750,"used":0,"remaining":1750,"reset":1734074898},"audit_log_streaming":{"limit":15,"used":0,"remaining":15,"reset":1734074898},"code_search":{"limit":10,"used":0,"remaining":10,"reset":1734071358}},"rate":{"limit":5000,"used":12,"remaining":4988,"reset":1734072198}} diff --git a/tests/ReplayData/Repository.setUp.txt b/tests/ReplayData/Repository.setUp.txt index c719ad7c0f..5ef9d35800 100644 --- a/tests/ReplayData/Repository.setUp.txt +++ b/tests/ReplayData/Repository.setUp.txt @@ -2,20 +2,9 @@ https GET api.github.com None -/user +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4912'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"8d4bf64381cca7c6ba5753129f5fc552"'), ('date', 'Sun, 27 May 2012 07:17:08 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"type":"User","disk_usage":16976,"public_gists":3,"bio":"","blog":"http://vincent-jacques.net","url":"https://api.github.com/users/jacquev6","private_gists":5,"collaborators":0,"plan":{"private_repos":5,"collaborators":1,"name":"micro","space":614400},"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","company":"Criteo","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","email":"vincent@vincent-jacques.net","total_private_repos":5,"followers":13,"name":"Vincent Jacques","public_repos":11,"created_at":"2010-07-09T06:10:06Z","location":"Paris, France","id":327146,"owned_private_repos":5,"following":24,"html_url":"https://github.com/jacquev6","hireable":false, "use_squash_pr_title_as_default": true, "squash_merge_commit_title": "PR_TITLE", "squash_merge_commit_message": "COMMIT_MESSAGES", "merge_commit_title": "PR_TITLE", "merge_commit_message": "PR_BODY", "web_commit_signoff_required": true} - -https -GET -api.github.com -None -/repos/jacquev6/PyGithub -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4911'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1a93ec821b0bd7094340a9fc34017aa0"'), ('date', 'Sun, 27 May 2012 07:17:09 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":15,"git_url":"git://github.com/jacquev6/PyGithub.git","deployments_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments","releases_url":"https://api.github.com/repos/jacquev6/PyGithub/releases{/id}","updated_at":"2012-05-27T06:55:28Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","mirror_url":null,"has_pages":false,"has_wiki":false,"has_issues":true,"fork":false,"forks":3,"size":308,"private":false,"open_issues":16,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-27T06:00:28Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub", "use_squash_pr_title_as_default": true, "squash_merge_commit_title": "PR_TITLE", "squash_merge_commit_message": "COMMIT_MESSAGES", "merge_commit_title": "PR_TITLE", "merge_commit_message": "PR_BODY", "web_commit_signoff_required": true, "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"},"custom_properties": {"foo": "bar"}, "has_discussions": false} +[('Date', 'Tue, 07 Jan 2025 07:32:15 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"37ea58577585c38f93634ef43114c657de2581286eb6976ec18c274de296eff0"'), ('Last-Modified', 'Mon, 06 Jan 2025 21:35:40 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4999'), ('X-RateLimit-Reset', '1736238735'), ('X-RateLimit-Used', '1'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'B6D4:4D93:FECF60:106E791:677CD87F')] +{"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","user_view_type":"public","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":"2025-01-06T21:35:40Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7122,"watchers_count":7122,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":357,"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":1793,"open_issues":357,"watchers":7122,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"PR_BODY","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"enabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":111} diff --git a/tests/ReplayData/Repository.testAddToCollaboratorsCustomRole.txt b/tests/ReplayData/Repository.testAddToCollaboratorsCustomRole.txt index 004b46a576..dae741cf1d 100644 --- a/tests/ReplayData/Repository.testAddToCollaboratorsCustomRole.txt +++ b/tests/ReplayData/Repository.testAddToCollaboratorsCustomRole.txt @@ -13,7 +13,7 @@ https PUT api.github.com None -/repos/jacquev6/PyGithub/collaborators/Lyloa +/repos/PyGithub/PyGithub/collaborators/Lyloa {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"permission": "custom_role"} 204 diff --git a/tests/ReplayData/Repository.testAssignees.txt b/tests/ReplayData/Repository.testAssignees.txt index 2f192be4cd..6bb0d0173c 100644 --- a/tests/ReplayData/Repository.testAssignees.txt +++ b/tests/ReplayData/Repository.testAssignees.txt @@ -24,7 +24,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/assignees/jacquev6 +/repos/PyGithub/PyGithub/assignees/jacquev6 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -35,7 +35,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/assignees/Lyloa +/repos/PyGithub/PyGithub/assignees/Lyloa {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 404 @@ -46,7 +46,7 @@ https PUT api.github.com None -/repos/jacquev6/PyGithub/collaborators/Lyloa +/repos/PyGithub/PyGithub/collaborators/Lyloa {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -57,7 +57,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/assignees/Lyloa +/repos/PyGithub/PyGithub/assignees/Lyloa {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -68,7 +68,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/assignees +/repos/PyGithub/PyGithub/assignees {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -79,7 +79,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/collaborators/Lyloa +/repos/PyGithub/PyGithub/collaborators/Lyloa {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -90,7 +90,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/assignees/Lyloa +/repos/PyGithub/PyGithub/assignees/Lyloa {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 404 diff --git a/tests/ReplayData/Repository.testBadSubscribePubSubHubbub.txt b/tests/ReplayData/Repository.testBadSubscribePubSubHubbub.txt index f2c769fae2..91c840a3e6 100644 --- a/tests/ReplayData/Repository.testBadSubscribePubSubHubbub.txt +++ b/tests/ReplayData/Repository.testBadSubscribePubSubHubbub.txt @@ -4,7 +4,7 @@ api.github.com None /hub {'Content-Type': 'multipart/form-data; boundary=----------------------------3c3ba8b523b2', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.callback"http://requestb.in/1bc1sc61------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.topic"https://github.com/jacquev6/PyGithub/events/non-existing-event------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.mode"subscribe------------------------------3c3ba8b523b2-- +------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.callback"http://requestb.in/1bc1sc61------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.topic"https://github.com/PyGithub/PyGithub/events/non-existing-event------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.mode"subscribe------------------------------3c3ba8b523b2-- 422 [('status', '422 Unprocessable Entity'), ('content-length', '51'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-remaining', '4994'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('cache-control', ''), ('date', 'Tue, 05 Feb 2013 18:58:01 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"Invalid event: \"non-existing-event\""} diff --git a/tests/ReplayData/Repository.testCodeScanAlerts.txt b/tests/ReplayData/Repository.testCodeScanAlerts.txt index d11a0b6288..74b4fe1e33 100644 --- a/tests/ReplayData/Repository.testCodeScanAlerts.txt +++ b/tests/ReplayData/Repository.testCodeScanAlerts.txt @@ -2,18 +2,18 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/code-scanning/alerts +/repos/PyGithub/PyGithub/code-scanning/alerts {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4963'), ('content-length', '318'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"3ce61bc2417a6a4f7b47976a7969c711"'), ('date', 'Sun, 20 May 2012 12:10:52 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"number": 6, "created_at": "2021-06-29T12:28:30Z", "dismissed_at": "2021-06-30T05:05:05Z", "dismissed_by": {"url": "dismissed_by.url", "avatar_url": "dismissed_by.avatar_url", "gravatar_id": "dismissed_by.gravatar_id", "login": "dismisser.login", "id": 42}, "dismissed_reason": "Won't tell", "state": "open", "url": "https://api.github.com/repos/jacquev6/PyGithub/code-scanning/alerts/6", "html_url": "https://github.com/jacquev6/PyGithub/security/code-scanning/6", "instances_url": "https://api.github.com/repos/jacquev6/PyGithub/code-scanning/alerts/6/instances", "most_recent_instance": {"analysis_key": ".github/workflows/codeql-analysis.yml:analyze", "ref": "refs/heads/master", "state": "open", "classifications": ["stupid typo"], "commit_sha": "deadbeef", "environment": "{language:python}", "message": {"text": "Awful stuff might happen."}, "location": {"path": "tests/ReplayData/Repository.testCodeScanAlerts.txt", "start_line": 10, "start_column": 2, "end_line": 10, "end_column": 48}}, "rule": {"id": "py/rule-id", "name": "py/rule-name", "security_severity_level": "high", "severity": "warning", "description": "Bad practice"}, "tool": {"guid": null, "name": "CodeQL", "version": "2.5.7"}}] +[{"number": 6, "created_at": "2021-06-29T12:28:30Z", "dismissed_at": "2021-06-30T05:05:05Z", "dismissed_by": {"url": "dismissed_by.url", "avatar_url": "dismissed_by.avatar_url", "gravatar_id": "dismissed_by.gravatar_id", "login": "dismisser.login", "id": 42}, "dismissed_reason": "Won't tell", "state": "open", "url": "https://api.github.com/repos/PyGithub/PyGithub/code-scanning/alerts/6", "html_url": "https://github.com/PyGithub/PyGithub/security/code-scanning/6", "instances_url": "https://api.github.com/repos/PyGithub/PyGithub/code-scanning/alerts/6/instances", "most_recent_instance": {"analysis_key": ".github/workflows/codeql-analysis.yml:analyze", "ref": "refs/heads/master", "state": "open", "classifications": ["stupid typo"], "commit_sha": "deadbeef", "environment": "{language:python}", "message": {"text": "Awful stuff might happen."}, "location": {"path": "tests/ReplayData/Repository.testCodeScanAlerts.txt", "start_line": 10, "start_column": 2, "end_line": 10, "end_column": 48}}, "rule": {"id": "py/rule-id", "name": "py/rule-name", "security_severity_level": "high", "severity": "warning", "description": "Bad practice"}, "tool": {"guid": null, "name": "CodeQL", "version": "2.5.7"}}] https GET api.github.com None -/repos/jacquev6/PyGithub/code-scanning/alerts/6/instances +/repos/PyGithub/PyGithub/code-scanning/alerts/6/instances {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testCollaboratorPermission.txt b/tests/ReplayData/Repository.testCollaboratorPermission.txt index 58cd023b0c..8ed87bb919 100644 --- a/tests/ReplayData/Repository.testCollaboratorPermission.txt +++ b/tests/ReplayData/Repository.testCollaboratorPermission.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/collaborators/jacquev6/permission +/repos/PyGithub/PyGithub/collaborators/jacquev6/permission {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testCollaboratorPermissionNoPushAccess.txt b/tests/ReplayData/Repository.testCollaboratorPermissionNoPushAccess.txt index 7f2f1add23..b0bb87b526 100644 --- a/tests/ReplayData/Repository.testCollaboratorPermissionNoPushAccess.txt +++ b/tests/ReplayData/Repository.testCollaboratorPermissionNoPushAccess.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/collaborators/lyloa/permission +/repos/PyGithub/PyGithub/collaborators/lyloa/permission {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 403 diff --git a/tests/ReplayData/Repository.testCollaborators.txt b/tests/ReplayData/Repository.testCollaborators.txt index 89ff69011d..4dacabae94 100644 --- a/tests/ReplayData/Repository.testCollaborators.txt +++ b/tests/ReplayData/Repository.testCollaborators.txt @@ -13,7 +13,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/collaborators/Lyloa +/repos/PyGithub/PyGithub/collaborators/Lyloa {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 404 @@ -24,7 +24,7 @@ https PUT api.github.com None -/repos/jacquev6/PyGithub/collaborators/Lyloa +/repos/PyGithub/PyGithub/collaborators/Lyloa {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -35,7 +35,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/collaborators/Lyloa +/repos/PyGithub/PyGithub/collaborators/Lyloa {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -46,7 +46,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/collaborators +/repos/PyGithub/PyGithub/collaborators {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -57,7 +57,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/collaborators/Lyloa +/repos/PyGithub/PyGithub/collaborators/Lyloa {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -68,7 +68,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/collaborators/Lyloa +/repos/PyGithub/PyGithub/collaborators/Lyloa {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 404 diff --git a/tests/ReplayData/Repository.testCompare.txt b/tests/ReplayData/Repository.testCompare.txt index 90a685c260..b09191f187 100644 --- a/tests/ReplayData/Repository.testCompare.txt +++ b/tests/ReplayData/Repository.testCompare.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/compare/v0.6...v0.7?page=1&per_page=250 +/repos/PyGithub/PyGithub/compare/v0.6...v0.7?page=1&per_page=250 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4997'), ('content-length', '14488'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"42eb6d36008b20550ae6d1991e0423d5"'), ('date', 'Sun, 27 May 2012 06:30:33 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"status":"ahead","behind_by":0,"total_commits":4,"merge_base_commit":{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","committer":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"sha":"4303c5b90e2216d927155e9609436ccb8984c495","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","sha":"936f4a97f1a86392637ec002bbf89ff036a5062d"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","sha":"2a7e80e6421c5d4d201d60619068dea6bae612cb"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad","sha":"f492784d8ca837779650d1fb406a1a3587a764ad"}}},"patch_url":"https://github.com/jacquev6/PyGithub/compare/v0.6...v0.7.patch","diff_url":"https://github.com/jacquev6/PyGithub/compare/v0.6...v0.7.diff","url":"https://api.github.com/repos/jacquev6/PyGithub/compare/v0.6...v0.7","ahead_by":4,"base_commit":{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","committer":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"sha":"4303c5b90e2216d927155e9609436ccb8984c495","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","sha":"936f4a97f1a86392637ec002bbf89ff036a5062d"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","sha":"2a7e80e6421c5d4d201d60619068dea6bae612cb"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad","sha":"f492784d8ca837779650d1fb406a1a3587a764ad"}}},"permalink_url":"https://github.com/jacquev6/PyGithub/compare/jacquev6:4303c5b...jacquev6:ecda065","files":[{"status":"modified","changes":2,"deletions":1,"raw_url":"https://github.com/jacquev6/PyGithub/raw/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/ReferenceOfClasses.md","blob_url":"https://github.com/jacquev6/PyGithub/blob/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/ReferenceOfClasses.md","filename":"ReferenceOfClasses.md","patch":"@@ -3,7 +3,7 @@ You obtain instances through calls to `get_` and `create_` methods.\n \n Class `Github`\n ==============\n-* Constructed from user's login and password\n+* Constructed from user's login and password or OAuth token\n * `get_user()`: `AuthenticatedUser`\n * `get_user( login )`: `NamedUser`\n * `get_organization( login )`: `Organization`","additions":1,"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"},{"status":"modified","changes":4,"deletions":2,"raw_url":"https://github.com/jacquev6/PyGithub/raw/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/github/Github.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/github/Github.py","filename":"github/Github.py","patch":"@@ -2,8 +2,8 @@\n from GithubObjects import *\n \n class Github:\n- def __init__( self, login, password, debugFile = None ):\n- self.__requester = Requester( login, password )\n+ def __init__( self, login_or_token = None, password = None, debugFile = None ):\n+ self.__requester = Requester( login_or_token, password )\n self.__debugFile = debugFile\n \n def _dataRequest( self, verb, url, parameters, data ):","additions":2,"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"},{"status":"modified","changes":17,"deletions":3,"raw_url":"https://github.com/jacquev6/PyGithub/raw/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/github/Requester.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/github/Requester.py","filename":"github/Requester.py","patch":"@@ -7,8 +7,15 @@ class UnknownGithubObject( Exception ):\n pass\n \n class Requester:\n- def __init__( self, login, password ):\n- self.__authorizationHeader = \"Basic \" + base64.b64encode( login + \":\" + password ).replace( '\\n', '' )\n+ def __init__( self, login_or_token, password ):\n+ if password is not None:\n+ login = login_or_token\n+ self.__authorizationHeader = \"Basic \" + base64.b64encode( login + \":\" + password ).replace( '\\n', '' )\n+ elif login_or_token is not None:\n+ token = login_or_token\n+ self.__authorizationHeader = \"token \" + token\n+ else:\n+ self.__authorizationHeader = None\n \n def dataRequest( self, verb, url, parameters, input ):\n if parameters is None:\n@@ -46,12 +53,16 @@ def statusRequest( self, verb, url, parameters, input ):\n def __rawRequest( self, verb, url, parameters, input ):\n assert verb in [ \"HEAD\", \"GET\", \"POST\", \"PATCH\", \"PUT\", \"DELETE\" ]\n \n+ headers = dict()\n+ if self.__authorizationHeader is not None:\n+ headers[ \"Authorization\" ] = self.__authorizationHeader\n+\n cnx = httplib.HTTPSConnection( \"api.github.com\", strict = True )\n cnx.request(\n verb,\n self.__completeUrl( url, parameters ),\n json.dumps( input ),\n- { \"Authorization\" : self.__authorizationHeader }\n+ headers\n )\n response = cnx.getresponse()\n ","additions":14,"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"},{"status":"modified","changes":10,"deletions":1,"raw_url":"https://github.com/jacquev6/PyGithub/raw/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/setup.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/setup.py","filename":"setup.py","patch":"@@ -5,7 +5,7 @@\n \n setup(\n name = 'PyGithub',\n- version = '0.6',\n+ version = '0.7',\n description = 'Use the full Github API v3',\n author = 'Vincent Jacques',\n author_email = 'vincent@vincent-jacques.net',\n@@ -26,6 +26,14 @@\n print repo.name\n repo.edit( has_wiki = False )\n \n+ You can also create a Github instance without authentication::\n+\n+ g = Github( \"user\", \"password\" )\n+\n+ Or with an OAuth token::\n+\n+ g = Github( token )\n+\n Reference documentation\n =======================\n ","additions":9,"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"}],"commits":[{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","committer":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T05:10:54-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","message":"Implement the three authentication schemes","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T05:10:54-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/59d755d95bc2e2de4dcef70a7c73e81e677f610b","sha":"59d755d95bc2e2de4dcef70a7c73e81e677f610b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","committer":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"sha":"cb0313157bf904f2d364377d35d9397b269547a5","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:04:22-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/cb0313157bf904f2d364377d35d9397b269547a5","message":"Merge branch 'topic/Authentication' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:04:22-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/59d755d95bc2e2de4dcef70a7c73e81e677f610b","sha":"59d755d95bc2e2de4dcef70a7c73e81e677f610b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","committer":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","sha":"cb0313157bf904f2d364377d35d9397b269547a5"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:13:33-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","message":"Publish version 0.7","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:13:33-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/78735573611521bb3ade95921c668097e2a4dc5e","sha":"78735573611521bb3ade95921c668097e2a4dc5e"}}},{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","committer":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:14:34-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:14:34-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/78735573611521bb3ade95921c668097e2a4dc5e","sha":"78735573611521bb3ade95921c668097e2a4dc5e"}}}],"html_url":"https://github.com/jacquev6/PyGithub/compare/v0.6...v0.7"} +{"status":"ahead","behind_by":0,"total_commits":4,"merge_base_commit":{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","committer":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"sha":"4303c5b90e2216d927155e9609436ccb8984c495","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","sha":"936f4a97f1a86392637ec002bbf89ff036a5062d"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","sha":"2a7e80e6421c5d4d201d60619068dea6bae612cb"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad","sha":"f492784d8ca837779650d1fb406a1a3587a764ad"}}},"patch_url":"https://github.com/PyGithub/PyGithub/compare/v0.6...v0.7.patch","diff_url":"https://github.com/PyGithub/PyGithub/compare/v0.6...v0.7.diff","url":"https://api.github.com/repos/PyGithub/PyGithub/compare/v0.6...v0.7","ahead_by":4,"base_commit":{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","committer":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"sha":"4303c5b90e2216d927155e9609436ccb8984c495","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","sha":"936f4a97f1a86392637ec002bbf89ff036a5062d"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","sha":"2a7e80e6421c5d4d201d60619068dea6bae612cb"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad","sha":"f492784d8ca837779650d1fb406a1a3587a764ad"}}},"permalink_url":"https://github.com/PyGithub/PyGithub/compare/jacquev6:4303c5b...jacquev6:ecda065","files":[{"status":"modified","changes":2,"deletions":1,"raw_url":"https://github.com/PyGithub/PyGithub/raw/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/ReferenceOfClasses.md","blob_url":"https://github.com/PyGithub/PyGithub/blob/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/ReferenceOfClasses.md","filename":"ReferenceOfClasses.md","patch":"@@ -3,7 +3,7 @@ You obtain instances through calls to `get_` and `create_` methods.\n \n Class `Github`\n ==============\n-* Constructed from user's login and password\n+* Constructed from user's login and password or OAuth token\n * `get_user()`: `AuthenticatedUser`\n * `get_user( login )`: `NamedUser`\n * `get_organization( login )`: `Organization`","additions":1,"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"},{"status":"modified","changes":4,"deletions":2,"raw_url":"https://github.com/PyGithub/PyGithub/raw/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/github/Github.py","blob_url":"https://github.com/PyGithub/PyGithub/blob/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/github/Github.py","filename":"github/Github.py","patch":"@@ -2,8 +2,8 @@\n from GithubObjects import *\n \n class Github:\n- def __init__( self, login, password, debugFile = None ):\n- self.__requester = Requester( login, password )\n+ def __init__( self, login_or_token = None, password = None, debugFile = None ):\n+ self.__requester = Requester( login_or_token, password )\n self.__debugFile = debugFile\n \n def _dataRequest( self, verb, url, parameters, data ):","additions":2,"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"},{"status":"modified","changes":17,"deletions":3,"raw_url":"https://github.com/PyGithub/PyGithub/raw/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/github/Requester.py","blob_url":"https://github.com/PyGithub/PyGithub/blob/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/github/Requester.py","filename":"github/Requester.py","patch":"@@ -7,8 +7,15 @@ class UnknownGithubObject( Exception ):\n pass\n \n class Requester:\n- def __init__( self, login, password ):\n- self.__authorizationHeader = \"Basic \" + base64.b64encode( login + \":\" + password ).replace( '\\n', '' )\n+ def __init__( self, login_or_token, password ):\n+ if password is not None:\n+ login = login_or_token\n+ self.__authorizationHeader = \"Basic \" + base64.b64encode( login + \":\" + password ).replace( '\\n', '' )\n+ elif login_or_token is not None:\n+ token = login_or_token\n+ self.__authorizationHeader = \"token \" + token\n+ else:\n+ self.__authorizationHeader = None\n \n def dataRequest( self, verb, url, parameters, input ):\n if parameters is None:\n@@ -46,12 +53,16 @@ def statusRequest( self, verb, url, parameters, input ):\n def __rawRequest( self, verb, url, parameters, input ):\n assert verb in [ \"HEAD\", \"GET\", \"POST\", \"PATCH\", \"PUT\", \"DELETE\" ]\n \n+ headers = dict()\n+ if self.__authorizationHeader is not None:\n+ headers[ \"Authorization\" ] = self.__authorizationHeader\n+\n cnx = httplib.HTTPSConnection( \"api.github.com\", strict = True )\n cnx.request(\n verb,\n self.__completeUrl( url, parameters ),\n json.dumps( input ),\n- { \"Authorization\" : self.__authorizationHeader }\n+ headers\n )\n response = cnx.getresponse()\n ","additions":14,"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"},{"status":"modified","changes":10,"deletions":1,"raw_url":"https://github.com/PyGithub/PyGithub/raw/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/setup.py","blob_url":"https://github.com/PyGithub/PyGithub/blob/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/setup.py","filename":"setup.py","patch":"@@ -5,7 +5,7 @@\n \n setup(\n name = 'PyGithub',\n- version = '0.6',\n+ version = '0.7',\n description = 'Use the full Github API v3',\n author = 'Vincent Jacques',\n author_email = 'vincent@vincent-jacques.net',\n@@ -26,6 +26,14 @@\n print repo.name\n repo.edit( has_wiki = False )\n \n+ You can also create a Github instance without authentication::\n+\n+ g = Github( \"user\", \"password\" )\n+\n+ Or with an OAuth token::\n+\n+ g = Github( token )\n+\n Reference documentation\n =======================\n ","additions":9,"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"}],"commits":[{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","committer":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T05:10:54-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","message":"Implement the three authentication schemes","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T05:10:54-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/59d755d95bc2e2de4dcef70a7c73e81e677f610b","sha":"59d755d95bc2e2de4dcef70a7c73e81e677f610b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","committer":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"sha":"cb0313157bf904f2d364377d35d9397b269547a5","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:04:22-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/cb0313157bf904f2d364377d35d9397b269547a5","message":"Merge branch 'topic/Authentication' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:04:22-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/59d755d95bc2e2de4dcef70a7c73e81e677f610b","sha":"59d755d95bc2e2de4dcef70a7c73e81e677f610b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","committer":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","sha":"cb0313157bf904f2d364377d35d9397b269547a5"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:13:33-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","message":"Publish version 0.7","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:13:33-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/78735573611521bb3ade95921c668097e2a4dc5e","sha":"78735573611521bb3ade95921c668097e2a4dc5e"}}},{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","committer":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:14:34-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:14:34-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/78735573611521bb3ade95921c668097e2a4dc5e","sha":"78735573611521bb3ade95921c668097e2a4dc5e"}}}],"html_url":"https://github.com/PyGithub/PyGithub/compare/v0.6...v0.7"} diff --git a/tests/ReplayData/Repository.testCompareCommitPagination.txt b/tests/ReplayData/Repository.testCompareCommitPagination.txt index 181e216104..8957f69934 100644 --- a/tests/ReplayData/Repository.testCompareCommitPagination.txt +++ b/tests/ReplayData/Repository.testCompareCommitPagination.txt @@ -18,7 +18,7 @@ None None 200 [('Server', 'GitHub.com'), ('Date', 'Wed, 24 Jan 2024 06:45:30 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/"b22a1a1b4fe01543dfca61320cdf0ef99ae3b6ef93399b829e93b855dddc86c0"'), ('Last-Modified', 'Thu, 24 Dec 2020 04:11:01 GMT'), ('github-authentication-token-expiration', '2024-02-19 10:58:06 +0100'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="last", ; rel="next", ; rel="first"'), ('x-accepted-github-permissions', 'contents=read'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4963'), ('X-RateLimit-Reset', '1706081414'), ('X-RateLimit-Used', '37'), ('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', 'B648:2146CD:1F05D5A:1F79C09:65B0B209')] -{"url":"https://api.github.com/repos/PyGithub/PyGithub/compare/v1.54...v1.54.1","html_url":"https://github.com/PyGithub/PyGithub/compare/v1.54...v1.54.1","permalink_url":"https://github.com/PyGithub/PyGithub/compare/PyGithub:951fcdf...PyGithub:34d097c","diff_url":"https://github.com/PyGithub/PyGithub/compare/v1.54...v1.54.1.diff","patch_url":"https://github.com/PyGithub/PyGithub/compare/v1.54...v1.54.1.patch","base_commit":{"sha":"951fcdf23f8c657b525dee78086bc4dfd42ef810","node_id":"MDY6Q29tbWl0MzU0NDQ5MDo5NTFmY2RmMjNmOGM2NTdiNTI1ZGVlNzgwODZiYzRkZmQ0MmVmODEw","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2020-11-30T05:43:49Z"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2020-11-30T05:43:49Z"},"message":"Publish version 1.54","tree":{"sha":"1a5bc94ff3672ddcd68c27ccbe4c12b44343bb3c","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/1a5bc94ff3672ddcd68c27ccbe4c12b44343bb3c"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810","html_url":"https://github.com/PyGithub/PyGithub/commit/951fcdf23f8c657b525dee78086bc4dfd42ef810","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810/comments","author":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","site_admin":false},"committer":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","site_admin":false},"parents":[{"sha":"6d501b286e04f324bc87532003f0564624981ecb","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6d501b286e04f324bc87532003f0564624981ecb","html_url":"https://github.com/PyGithub/PyGithub/commit/6d501b286e04f324bc87532003f0564624981ecb"}]},"merge_base_commit":{"sha":"951fcdf23f8c657b525dee78086bc4dfd42ef810","node_id":"MDY6Q29tbWl0MzU0NDQ5MDo5NTFmY2RmMjNmOGM2NTdiNTI1ZGVlNzgwODZiYzRkZmQ0MmVmODEw","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2020-11-30T05:43:49Z"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2020-11-30T05:43:49Z"},"message":"Publish version 1.54","tree":{"sha":"1a5bc94ff3672ddcd68c27ccbe4c12b44343bb3c","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/1a5bc94ff3672ddcd68c27ccbe4c12b44343bb3c"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810","html_url":"https://github.com/PyGithub/PyGithub/commit/951fcdf23f8c657b525dee78086bc4dfd42ef810","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810/comments","author":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","site_admin":false},"committer":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","site_admin":false},"parents":[{"sha":"6d501b286e04f324bc87532003f0564624981ecb","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6d501b286e04f324bc87532003f0564624981ecb","html_url":"https://github.com/PyGithub/PyGithub/commit/6d501b286e04f324bc87532003f0564624981ecb"}]},"status":"ahead","ahead_by":10,"behind_by":0,"total_commits":10,"commits":[{"sha":"fab682a5ccfc275c31ec37f1f541254c7bd780f3","node_id":"MDY6Q29tbWl0MzU0NDQ5MDpmYWI2ODJhNWNjZmMyNzVjMzFlYzM3ZjFmNTQxMjU0YzdiZDc4MGYz","commit":{"author":{"name":"Pascal Hofmann","email":"mail@pascalhofmann.de","date":"2020-11-30T07:53:59Z"},"committer":{"name":"Pascal Hofmann","email":"mail@pascalhofmann.de","date":"2020-11-30T07:53:59Z"},"message":"Fix stubs file for Repository","tree":{"sha":"33a9a785fd98dc79d1033ef2e49f30e2282246f0","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/33a9a785fd98dc79d1033ef2e49f30e2282246f0"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/fab682a5ccfc275c31ec37f1f541254c7bd780f3","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/fab682a5ccfc275c31ec37f1f541254c7bd780f3","html_url":"https://github.com/PyGithub/PyGithub/commit/fab682a5ccfc275c31ec37f1f541254c7bd780f3","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/fab682a5ccfc275c31ec37f1f541254c7bd780f3/comments","author":{"login":"pascal-hofmann","id":2102878,"node_id":"MDQ6VXNlcjIxMDI4Nzg=","avatar_url":"https://avatars.githubusercontent.com/u/2102878?v=4","gravatar_id":"","url":"https://api.github.com/users/pascal-hofmann","html_url":"https://github.com/pascal-hofmann","followers_url":"https://api.github.com/users/pascal-hofmann/followers","following_url":"https://api.github.com/users/pascal-hofmann/following{/other_user}","gists_url":"https://api.github.com/users/pascal-hofmann/gists{/gist_id}","starred_url":"https://api.github.com/users/pascal-hofmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pascal-hofmann/subscriptions","organizations_url":"https://api.github.com/users/pascal-hofmann/orgs","repos_url":"https://api.github.com/users/pascal-hofmann/repos","events_url":"https://api.github.com/users/pascal-hofmann/events{/privacy}","received_events_url":"https://api.github.com/users/pascal-hofmann/received_events","type":"User","site_admin":false},"committer":{"login":"pascal-hofmann","id":2102878,"node_id":"MDQ6VXNlcjIxMDI4Nzg=","avatar_url":"https://avatars.githubusercontent.com/u/2102878?v=4","gravatar_id":"","url":"https://api.github.com/users/pascal-hofmann","html_url":"https://github.com/pascal-hofmann","followers_url":"https://api.github.com/users/pascal-hofmann/followers","following_url":"https://api.github.com/users/pascal-hofmann/following{/other_user}","gists_url":"https://api.github.com/users/pascal-hofmann/gists{/gist_id}","starred_url":"https://api.github.com/users/pascal-hofmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pascal-hofmann/subscriptions","organizations_url":"https://api.github.com/users/pascal-hofmann/orgs","repos_url":"https://api.github.com/users/pascal-hofmann/repos","events_url":"https://api.github.com/users/pascal-hofmann/events{/privacy}","received_events_url":"https://api.github.com/users/pascal-hofmann/received_events","type":"User","site_admin":false},"parents":[{"sha":"951fcdf23f8c657b525dee78086bc4dfd42ef810","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810","html_url":"https://github.com/PyGithub/PyGithub/commit/951fcdf23f8c657b525dee78086bc4dfd42ef810"}]},{"sha":"9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8","node_id":"MDY6Q29tbWl0MzU0NDQ5MDo5ZWUzYWZiMTcxNmM1NTlhMGIzYjQ0ZTA5N2MwNWY0YjE0YWUyYWI4","commit":{"author":{"name":"Pascal Hofmann","email":"mail@pascalhofmann.de","date":"2020-11-30T11:27:48Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2020-11-30T11:27:48Z"},"message":"Merge pull request #1767 from pascal-hofmann/fix-repository-stubs\n\nFix stubs file for Repository","tree":{"sha":"33a9a785fd98dc79d1033ef2e49f30e2282246f0","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/33a9a785fd98dc79d1033ef2e49f30e2282246f0"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJfxNc0CRBK7hj4Ov3rIwAAdHIIAJb9YeSv3LLlSy7Nr4nILkyn\nMqrW9cvtvnqAH81QtuHlEKShsh33hbKmx9On1lxj7VcRBiB/6cLpAEUJowq0A4zt\n341cVH9+0mbmq+eG1c5vE/vTzq5Uu2mUpvjQ89ssyEvkQ/lIvOEBNAWwJSNwQOc0\n1LcGW1OEh+xmK7SxwvPXxE6aXjBgG8wv0WtFxmhlLoDzvwPymf9qM4/eq2UF6TmU\nzMop0xhv7Kkls626P0HN7wklupth8zaOAJO9vtn8m25sZoZ8XRr2KIX9gAV6jCLW\nuV0GFogjfpya9BVCa7Lh5o6m29ruyTgqIok4rPbZA8aDhQImq243PgP1reVinok=\n=Fepr\n-----END PGP SIGNATURE-----\n","payload":"tree 33a9a785fd98dc79d1033ef2e49f30e2282246f0\nparent 951fcdf23f8c657b525dee78086bc4dfd42ef810\nparent fab682a5ccfc275c31ec37f1f541254c7bd780f3\nauthor Pascal Hofmann 1606735668 +0100\ncommitter GitHub 1606735668 +0100\n\nMerge pull request #1767 from pascal-hofmann/fix-repository-stubs\n\nFix stubs file for Repository"}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8","html_url":"https://github.com/PyGithub/PyGithub/commit/9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8/comments","author":{"login":"pascal-hofmann","id":2102878,"node_id":"MDQ6VXNlcjIxMDI4Nzg=","avatar_url":"https://avatars.githubusercontent.com/u/2102878?v=4","gravatar_id":"","url":"https://api.github.com/users/pascal-hofmann","html_url":"https://github.com/pascal-hofmann","followers_url":"https://api.github.com/users/pascal-hofmann/followers","following_url":"https://api.github.com/users/pascal-hofmann/following{/other_user}","gists_url":"https://api.github.com/users/pascal-hofmann/gists{/gist_id}","starred_url":"https://api.github.com/users/pascal-hofmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pascal-hofmann/subscriptions","organizations_url":"https://api.github.com/users/pascal-hofmann/orgs","repos_url":"https://api.github.com/users/pascal-hofmann/repos","events_url":"https://api.github.com/users/pascal-hofmann/events{/privacy}","received_events_url":"https://api.github.com/users/pascal-hofmann/received_events","type":"User","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","site_admin":false},"parents":[{"sha":"951fcdf23f8c657b525dee78086bc4dfd42ef810","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810","html_url":"https://github.com/PyGithub/PyGithub/commit/951fcdf23f8c657b525dee78086bc4dfd42ef810"},{"sha":"fab682a5ccfc275c31ec37f1f541254c7bd780f3","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/fab682a5ccfc275c31ec37f1f541254c7bd780f3","html_url":"https://github.com/PyGithub/PyGithub/commit/fab682a5ccfc275c31ec37f1f541254c7bd780f3"}]},{"sha":"a806b5233f6423e0f8dacc4d04b6d81a72689bed","node_id":"MDY6Q29tbWl0MzU0NDQ5MDphODA2YjUyMzNmNjQyM2UwZjhkYWNjNGQwNGI2ZDgxYTcyNjg5YmVk","commit":{"author":{"name":"Sébastien Besson","email":"seb.besson@gmail.com","date":"2020-11-30T23:17:18Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2020-11-30T23:17:18Z"},"message":"Revert \"Pin requests to <2.25 as well (#1757)\" (#1763)\n\n* Revert \"Pin requests to <2.25 as well (#1757)\"\r\n* Ensure httpretty is more recent than 1.0.3\r\n\r\nThis reverts commit d159425f36dc7f68766cc980e262e9287e5f111c.","tree":{"sha":"b33c2872fb923bf90b2a594aa3cd5b1898d1fc65","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b33c2872fb923bf90b2a594aa3cd5b1898d1fc65"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/a806b5233f6423e0f8dacc4d04b6d81a72689bed","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJfxX1+CRBK7hj4Ov3rIwAAdHIIAAqZsjeHvnQx2UVmlIqZaucp\naHuoyFp/5P+fgz/oKRnsINmmUcBdcjyLv0qXmgda3g87X9sx7fJh7DDK7MTlw5Ka\n07T/pY8+spaZfm7mVCVp7bh7741AE0tx/Gi2MhI6LPtFMHyCmy9ljeWCrMBvtPDc\naggmA8iGbp8XJ6ln++w2EATwyY9bxelWNgy0cwM7R1Eas/5NtVInETcCf+i9cJ3u\n5ONRvnV9oWFnd3LLD2lxJb2A2STX/IZ4WmXrFj6cb8bWwXJPfvlyK9f97H65+2/k\nRefP5cIfgdRGbd7Le71A90q3PFOpvzTMS+YGrF+l4H1OZ+t3AnqL/H2GzXHFYWY=\n=Dqlm\n-----END PGP SIGNATURE-----\n","payload":"tree b33c2872fb923bf90b2a594aa3cd5b1898d1fc65\nparent 9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8\nauthor Sébastien Besson 1606778238 +0000\ncommitter GitHub 1606778238 +1100\n\nRevert \"Pin requests to <2.25 as well (#1757)\" (#1763)\n\n* Revert \"Pin requests to <2.25 as well (#1757)\"\r\n* Ensure httpretty is more recent than 1.0.3\r\n\r\nThis reverts commit d159425f36dc7f68766cc980e262e9287e5f111c."}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a806b5233f6423e0f8dacc4d04b6d81a72689bed","html_url":"https://github.com/PyGithub/PyGithub/commit/a806b5233f6423e0f8dacc4d04b6d81a72689bed","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a806b5233f6423e0f8dacc4d04b6d81a72689bed/comments","author":{"login":"sbesson","id":1355463,"node_id":"MDQ6VXNlcjEzNTU0NjM=","avatar_url":"https://avatars.githubusercontent.com/u/1355463?v=4","gravatar_id":"","url":"https://api.github.com/users/sbesson","html_url":"https://github.com/sbesson","followers_url":"https://api.github.com/users/sbesson/followers","following_url":"https://api.github.com/users/sbesson/following{/other_user}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","organizations_url":"https://api.github.com/users/sbesson/orgs","repos_url":"https://api.github.com/users/sbesson/repos","events_url":"https://api.github.com/users/sbesson/events{/privacy}","received_events_url":"https://api.github.com/users/sbesson/received_events","type":"User","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","site_admin":false},"parents":[{"sha":"9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8","html_url":"https://github.com/PyGithub/PyGithub/commit/9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8"}]},{"sha":"63e4fae997a9a5dc8c2b56907c87c565537bb28f","node_id":"MDY6Q29tbWl0MzU0NDQ5MDo2M2U0ZmFlOTk3YTlhNWRjOGMyYjU2OTA3Yzg3YzU2NTUzN2JiMjhm","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2020-12-02T03:47:45Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2020-12-02T03:47:45Z"},"message":"Drop support for Python 3.5 (#1770)\n\nIn preperation for starting to use 3.6+ only features, stop testing\r\nPython 3.5 in our CI, and bump our minimum required version.","tree":{"sha":"fde51c1aa322cbdd646e1677d1e69fb9d0457ae7","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/fde51c1aa322cbdd646e1677d1e69fb9d0457ae7"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/63e4fae997a9a5dc8c2b56907c87c565537bb28f","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJfxw5hCRBK7hj4Ov3rIwAAdHIIADWSUehbe2GbpLdhBVQY2SZ2\nAm1ACkzu6AMNG2AfrSVrd2e8mnOUt/BEIIGT+MHxKLTbApDuEo5m7DnIs/zJJUDw\n67eDlQySTP72UHMnZNukELGffNdhQDuZh9K6SeAn/C+qS/UwrTpUo/Zk6u9joVkm\nxbgMGutpg/gi+NYDaPxwHvqlXrFyB2zLrnF/jsRIYNqvJ1XPmgPSHZ2s54ivGLep\npKqGvyA92knGAnL8PZpy6d7pbyx8DWAgGokpP3Bgm3W8YuFNPX/25d81V5RTwUHs\n4pGREUyooUHz2yjARTTwvGWXH+1KwwmRCfGkSPmNMzJYoJkeGkgNAPRLHEbgdhk=\n=n01c\n-----END PGP SIGNATURE-----\n","payload":"tree fde51c1aa322cbdd646e1677d1e69fb9d0457ae7\nparent a806b5233f6423e0f8dacc4d04b6d81a72689bed\nauthor Steve Kowalik 1606880865 +1100\ncommitter GitHub 1606880865 +1100\n\nDrop support for Python 3.5 (#1770)\n\nIn preperation for starting to use 3.6+ only features, stop testing\r\nPython 3.5 in our CI, and bump our minimum required version."}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/63e4fae997a9a5dc8c2b56907c87c565537bb28f","html_url":"https://github.com/PyGithub/PyGithub/commit/63e4fae997a9a5dc8c2b56907c87c565537bb28f","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/63e4fae997a9a5dc8c2b56907c87c565537bb28f/comments","author":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","site_admin":false},"parents":[{"sha":"a806b5233f6423e0f8dacc4d04b6d81a72689bed","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a806b5233f6423e0f8dacc4d04b6d81a72689bed","html_url":"https://github.com/PyGithub/PyGithub/commit/a806b5233f6423e0f8dacc4d04b6d81a72689bed"}]}],"files":[{"sha":"9abd22d1d5f4695912c1853cc8fb19eb15aacddc","filename":".git-blame-ignore-revs","status":"modified","additions":3,"deletions":0,"changes":3,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/.git-blame-ignore-revs","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/.git-blame-ignore-revs","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/.git-blame-ignore-revs?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -6,3 +6,6 @@\n \n # Format with new black\n 07e29fe014b7e214e72b51129fbef55468a7309d\n+\n+# Add pyupgrade to pre-commit\n+e113e37de1ec687c68337d777f3629251b35ab28"},{"sha":"38fe00ef7c4345da1fcd6da1d98cb19be523a7cd","filename":".github/workflows/ci.yml","status":"modified","additions":1,"deletions":1,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/.github%2Fworkflows%2Fci.yml","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/.github%2Fworkflows%2Fci.yml","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/.github%2Fworkflows%2Fci.yml?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -9,7 +9,7 @@ jobs:\n name: test (Python ${{ matrix.python-version }})\n strategy:\n matrix:\n- python-version: [3.5, 3.6, 3.7, 3.8, 3.9]\n+ python-version: [3.6, 3.7, 3.8, 3.9]\n steps:\n - uses: actions/checkout@v2\n - name: Set up Python"},{"sha":"e18dd1f992e60b0460831fdf3d64fe9511cd45dc","filename":".pre-commit-config.yaml","status":"modified","additions":6,"deletions":0,"changes":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/.pre-commit-config.yaml","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/.pre-commit-config.yaml","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/.pre-commit-config.yaml?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -24,3 +24,9 @@ repos:\n args:\n - --ignore-words-list=\"bloaded,nto,pullrequest,pullrequests,thi,tim,wan,Wan,chang,Chang\"\n - --quiet-level=2\n+ - repo: https://github.com/asottile/pyupgrade\n+ rev: v2.7.4\n+ hooks:\n+ - id: pyupgrade\n+ args:\n+ - --py36-plus"},{"sha":"43d33319fa66a12c3ecf956884e5a606b0430d6c","filename":"doc/changes.rst","status":"modified","additions":10,"deletions":0,"changes":10,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/doc%2Fchanges.rst","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/doc%2Fchanges.rst","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/doc%2Fchanges.rst?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -4,6 +4,16 @@ Change log\n Stable versions\n ~~~~~~~~~~~~~~~\n \n+Version 1.54.1 (December 24, 2020)\n+-----------------------------------\n+\n+* Pin pyjwt version (#1797) (31a1c007)\n+* Add pyupgrade to pre-commit configuration (#1783) (e113e37d)\n+* Fix #1731: Incorrect annotation (82c349ce)\n+* Drop support for Python 3.5 (#1770) (63e4fae9)\n+* Revert \"Pin requests to <2.25 as well (#1757)\" (#1763) (a806b523)\n+* Fix stubs file for Repository (fab682a5)\n+\n Version 1.54 (November 30, 2020)\n -----------------------------------\n **Important**"},{"sha":"b8187945593d83a2e6003075064f3e7f3f6cdebd","filename":"doc/conf.py","status":"modified","additions":6,"deletions":8,"changes":14,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/doc%2Fconf.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/doc%2Fconf.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/doc%2Fconf.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -61,8 +59,8 @@\n master_doc = \"index\"\n \n # General information about the project.\n-project = u\"PyGithub\"\n-copyright = u\"%d, Vincent Jacques\" % datetime.date.today().year\n+project = \"PyGithub\"\n+copyright = \"%d, Vincent Jacques\" % datetime.date.today().year\n \n # The version info for the project you're documenting, acts as replacement for\n # |version| and |release|, also used in various other places throughout the\n@@ -204,7 +202,7 @@\n # Grouping the document tree into LaTeX files. List of tuples\n # (source start file, target name, title, author, documentclass [howto/manual]).\n latex_documents = [\n- (\"index\", \"PyGithub.tex\", u\"PyGithub Documentation\", u\"Vincent Jacques\", \"manual\"),\n+ (\"index\", \"PyGithub.tex\", \"PyGithub Documentation\", \"Vincent Jacques\", \"manual\"),\n ]\n \n # The name of an image file (relative to this directory) to place at the top of\n@@ -232,7 +230,7 @@\n \n # One entry per manual page. List of tuples\n # (source start file, name, description, authors, manual section).\n-man_pages = [(\"index\", \"pygithub\", u\"PyGithub Documentation\", [u\"Vincent Jacques\"], 1)]\n+man_pages = [(\"index\", \"pygithub\", \"PyGithub Documentation\", [\"Vincent Jacques\"], 1)]\n \n # If true, show URL addresses after external links.\n # man_show_urls = False\n@@ -247,8 +245,8 @@\n (\n \"index\",\n \"PyGithub\",\n- u\"PyGithub Documentation\",\n- u\"Vincent Jacques\",\n+ \"PyGithub Documentation\",\n+ \"Vincent Jacques\",\n \"PyGithub\",\n \"One line description of project.\",\n \"Miscellaneous\","},{"sha":"f2fb64f468b5abcb93635bc849d69092f48a78e3","filename":"github/AccessToken.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAccessToken.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAccessToken.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FAccessToken.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Rigas Papathanasopoulos #"},{"sha":"2d1f81d920743a0ba33c078ba430283d5d8b6bc6","filename":"github/ApplicationOAuth.py","status":"modified","additions":1,"deletions":3,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FApplicationOAuth.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FApplicationOAuth.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FApplicationOAuth.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ###########################\n # #\n # Copyright 2019 Rigas Papathanasopoulos #\n@@ -75,7 +73,7 @@ def get_login_url(self, redirect_uri=None, state=None, login=None):\n parameters = urllib.parse.urlencode(parameters)\n \n base_url = \"https://github.com/login/oauth/authorize\"\n- return u\"{}?{}\".format(base_url, parameters)\n+ return f\"{base_url}?{parameters}\"\n \n def get_access_token(self, code, state=None):\n \"\"\""},{"sha":"58a5c5d6e933a4451a4a3f3babb204abb580d0b8","filename":"github/AuthenticatedUser.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAuthenticatedUser.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAuthenticatedUser.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FAuthenticatedUser.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Steve English #"},{"sha":"bbddd170d0663ac6a1151b2eb87924f6d531c488","filename":"github/Authorization.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAuthorization.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAuthorization.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FAuthorization.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"38dd650943433ed86b42c0674f50b0c0173988d6","filename":"github/AuthorizationApplication.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAuthorizationApplication.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAuthorizationApplication.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FAuthorizationApplication.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"f723301c992529f6902bb52d24c8d1d5b8a2c80b","filename":"github/Branch.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FBranch.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FBranch.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FBranch.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"ffc364c8dfa5bc0627194187690e5c48eb4ac65a","filename":"github/BranchProtection.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FBranchProtection.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FBranchProtection.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FBranchProtection.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Steve Kowalik #"},{"sha":"9a895980289ad23c20ee682182d4af108d0ae82a","filename":"github/CheckRun.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckRun.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckRun.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCheckRun.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Dhruv Manilawala #"},{"sha":"5c7033cda9894b83e696d8e880cde3166c73265a","filename":"github/CheckRunAnnotation.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckRunAnnotation.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckRunAnnotation.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCheckRunAnnotation.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Dhruv Manilawala #"},{"sha":"3dfc02382ac738303501d2e9806ad2c980b6d0dd","filename":"github/CheckRunOutput.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckRunOutput.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckRunOutput.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCheckRunOutput.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Dhruv Manilawala #"},{"sha":"d6d67c32f6426c2c786cc5c240a245c65403d246","filename":"github/CheckSuite.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckSuite.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckSuite.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCheckSuite.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Raju Subramanian #"},{"sha":"bf07b60b83c9fe2a07befe1ba921f6cc58a1cb9c","filename":"github/Clones.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FClones.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FClones.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FClones.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Justin Kufro #"},{"sha":"f951589d35e368580c9e6ca419aafb63dc8c72c6","filename":"github/Commit.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommit.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommit.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCommit.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"fb420d868a30436f0953530673e709ba70828325","filename":"github/CommitCombinedStatus.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitCombinedStatus.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitCombinedStatus.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCommitCombinedStatus.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2016 Jannis Gebauer #"},{"sha":"f5eca565eede61e0d528f4ffbc1693af5eddd67e","filename":"github/CommitComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCommitComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"2a511c8a74a7d664037036ef15d55c0f2a8dd2f4","filename":"github/CommitStats.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitStats.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitStats.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCommitStats.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"b95b49e461a267862bc3892edc0f53e731d8a5be","filename":"github/CommitStatus.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitStatus.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitStatus.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCommitStatus.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"f058b7e3892f40a38fe9a38a18bdfa2463ea2f18","filename":"github/Comparison.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FComparison.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FComparison.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FComparison.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"d5cbcb7e21893bd46c1901678a5aa687c51da628","filename":"github/Consts.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FConsts.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FConsts.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FConsts.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 AKFish #"},{"sha":"8d3289aeccde1b2eb91e0559539abd1f2bf45b8c","filename":"github/ContentFile.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FContentFile.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FContentFile.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FContentFile.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"9e959d097de554c0923d68216bf7b47a9fa24ac2","filename":"github/Deployment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FDeployment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FDeployment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FDeployment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Steve Kowalik #"},{"sha":"518f0b4a8ed3bcd779eaa06ad07c8777aebd71d5","filename":"github/DeploymentStatus.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FDeploymentStatus.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FDeploymentStatus.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FDeploymentStatus.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Colby Gallup #"},{"sha":"5c7932eacbd61d53f395f48c8191aa46318a8238","filename":"github/Download.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FDownload.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FDownload.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FDownload.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"f690d802290538cc39ae9d4e14db807e1ba47a57","filename":"github/Event.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FEvent.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FEvent.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FEvent.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"cc07442cae8a3add1bbd667f527be8ddf810a4fc","filename":"github/File.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FFile.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FFile.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FFile.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"88b799a3eea219e600841d4cfff7f01bdd518371","filename":"github/Gist.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGist.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGist.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGist.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Steve English #"},{"sha":"7bf85ec504d271f6db8524b06cdc2b21e7ed7d56","filename":"github/GistComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGistComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGistComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGistComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"f540e154a56e255f5e3489206ae4ca088b477bec","filename":"github/GistFile.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGistFile.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGistFile.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGistFile.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"5cb9690895e5563ceac5d14fb794c299e9187f20","filename":"github/GistHistoryState.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGistHistoryState.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGistHistoryState.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGistHistoryState.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"56f7a32283fc9e9df31e46db11fa347626cbfaa8","filename":"github/GitAuthor.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitAuthor.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitAuthor.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitAuthor.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"c93e8c633c7f3d3a4324364425d6c27ac2fc6db9","filename":"github/GitBlob.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitBlob.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitBlob.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitBlob.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"0a7aa6d81521874afa17ca6376ce125251293196","filename":"github/GitCommit.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitCommit.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitCommit.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitCommit.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"02eb49af4126829280947ae4c6b9ebbc66e46a33","filename":"github/GitObject.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitObject.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitObject.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitObject.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"69222b7d264a36e592eb033487c028e4f1afcfd3","filename":"github/GitRef.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitRef.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitRef.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitRef.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"31a45edc0d17f80ccc1be8a26e7ba213e1182c54","filename":"github/GitRelease.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitRelease.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitRelease.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitRelease.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2015 Ed Holland #"},{"sha":"7271b55252042ba4d3337da31bedcd35a08671cd","filename":"github/GitReleaseAsset.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitReleaseAsset.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitReleaseAsset.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitReleaseAsset.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Chris McBride #"},{"sha":"eb0bf65d627933bd6131722c2b22b465b8f0c630","filename":"github/GitTag.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitTag.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitTag.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitTag.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"6afc1303a7bfe10f1487dbe39d4e1ae82bd2fdcd","filename":"github/GitTree.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitTree.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitTree.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitTree.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"9da5e0331434adea65ac8761702c547097e03430","filename":"github/GitTreeElement.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitTreeElement.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitTreeElement.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitTreeElement.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"cac31f245ebf4f7ba994cfd46122245b193e4e29","filename":"github/GithubApp.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGithubApp.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGithubApp.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGithubApp.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Raju Subramanian #"},{"sha":"4708047f708151cb6b4fa19681190925db0614ed","filename":"github/GithubException.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGithubException.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGithubException.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGithubException.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"3916153e806c51c6f2105897df8b2aabb66a9b25","filename":"github/GithubObject.py","status":"modified","additions":6,"deletions":11,"changes":17,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGithubObject.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGithubObject.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGithubObject.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -66,7 +64,7 @@ def value(self):\n )\n \n \n-class GithubObject(object):\n+class GithubObject:\n \"\"\"\n Base class for all classes representing objects returned by the API.\n \"\"\"\n@@ -233,13 +231,10 @@ def _makeDictOfStringsToClassesAttribute(self, klass, value):\n for key, element in value.items()\n ):\n return _ValuedAttribute(\n- dict(\n- (\n- key,\n- klass(self._requester, self._headers, element, completed=False),\n- )\n+ {\n+ key: klass(self._requester, self._headers, element, completed=False)\n for key, element in value.items()\n- )\n+ }\n )\n else:\n return _BadAttribute(value, {str: dict})\n@@ -269,8 +264,8 @@ def format_params(params):\n if isinstance(v, bytes):\n v = v.decode(\"utf-8\")\n if isinstance(v, str):\n- v = '\"{v}\"'.format(v=v)\n- yield u\"{k}={v}\".format(k=k, v=v)\n+ v = f'\"{v}\"'\n+ yield f\"{k}={v}\"\n \n return \"{class_name}({params})\".format(\n class_name=self.__class__.__name__,"},{"sha":"147276a997516ac17b5ec84becefb430774f5b2b","filename":"github/GitignoreTemplate.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitignoreTemplate.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitignoreTemplate.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitignoreTemplate.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"346dc04c82009bf0125a86f003c45815da7fab4a","filename":"github/Hook.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FHook.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FHook.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FHook.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"44ec8af423c65966669e387b3b04ccb9dd854963","filename":"github/HookDescription.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FHookDescription.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FHookDescription.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FHookDescription.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"a491ef30bfa0219c44e16f934a2dd440e7166549","filename":"github/HookResponse.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FHookResponse.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FHookResponse.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FHookResponse.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"3289d18716b0b3a46c7dc08b6b497213672b14a3","filename":"github/InputFileContent.py","status":"modified","additions":1,"deletions":3,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInputFileContent.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInputFileContent.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FInputFileContent.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -31,7 +29,7 @@\n import github.GithubObject\n \n \n-class InputFileContent(object):\n+class InputFileContent:\n \"\"\"\n This class represents InputFileContents\n \"\"\""},{"sha":"b53fd46d9d55dfdc8d8a53b79fad1e1a153ceb71","filename":"github/InputGitAuthor.py","status":"modified","additions":2,"deletions":4,"changes":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInputGitAuthor.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInputGitAuthor.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FInputGitAuthor.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -33,7 +31,7 @@\n import github.GithubObject\n \n \n-class InputGitAuthor(object):\n+class InputGitAuthor:\n \"\"\"\n This class represents InputGitAuthors\n \"\"\"\n@@ -56,7 +54,7 @@ def __init__(self, name, email, date=github.GithubObject.NotSet):\n self.__date = date\n \n def __repr__(self):\n- return 'InputGitAuthor(name=\"{}\")'.format(self.__name)\n+ return f'InputGitAuthor(name=\"{self.__name}\")'\n \n @property\n def _identity(self):"},{"sha":"909250c56c746918b4b5daf2060bfcb2697663f7","filename":"github/InputGitTreeElement.py","status":"modified","additions":1,"deletions":3,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInputGitTreeElement.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInputGitTreeElement.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FInputGitTreeElement.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -31,7 +29,7 @@\n import github.GithubObject\n \n \n-class InputGitTreeElement(object):\n+class InputGitTreeElement:\n \"\"\"\n This class represents InputGitTreeElements\n \"\"\""},{"sha":"5ec7550304c2ef20c84d0256c892691ea006a206","filename":"github/Installation.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInstallation.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInstallation.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FInstallation.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Jannis Gebauer #"},{"sha":"06c695f9aedb24a5429bf58a88e37ff1a71c68fe","filename":"github/InstallationAuthorization.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInstallationAuthorization.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInstallationAuthorization.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FInstallationAuthorization.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2016 Jannis Gebauer #"},{"sha":"d246dcfb8e1d5aec8c96a9a69afdce430e3f3f6f","filename":"github/Invitation.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInvitation.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInvitation.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FInvitation.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Jannis Gebauer #"},{"sha":"078f21828c650ca54a5ef12abb4496bfdf66700d","filename":"github/Issue.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssue.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssue.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FIssue.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Andrew Bettison #"},{"sha":"85162b0dfebd0e1ae6768374817f06ed79462779","filename":"github/IssueComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssueComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssueComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FIssueComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"35456e868651fc0a11115e15978cd6f928d3e020","filename":"github/IssueEvent.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssueEvent.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssueEvent.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FIssueEvent.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"b7d73da6f918ecfb6ed7e2b1193c2267962f4e4c","filename":"github/IssuePullRequest.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssuePullRequest.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssuePullRequest.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FIssuePullRequest.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"881ce014d0704727ffecb8975ee8fdd22c2f40a6","filename":"github/Label.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FLabel.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FLabel.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FLabel.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"c604037985b92b5d8515c878b4abc9a5ab50b38a","filename":"github/License.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FLicense.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FLicense.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FLicense.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Wan Liuyang #"},{"sha":"ceac54e0f02acd44eac56f1b468c67c8532898d2","filename":"github/MainClass.py","status":"modified","additions":18,"deletions":20,"changes":38,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMainClass.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMainClass.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FMainClass.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 AKFish #\n@@ -90,7 +88,7 @@\n DEFAULT_PER_PAGE = 30\n \n \n-class Github(object):\n+class Github:\n \"\"\"\n This is the main class you instantiate to access the Github API v3. Optional parameters allow different authentication methods.\n \"\"\"\n@@ -339,13 +337,13 @@ def get_repo(self, full_name_or_id, lazy=False):\n \"\"\"\n assert isinstance(full_name_or_id, (str, int)), full_name_or_id\n url_base = \"/repositories/\" if isinstance(full_name_or_id, int) else \"/repos/\"\n- url = \"%s%s\" % (url_base, full_name_or_id)\n+ url = f\"{url_base}{full_name_or_id}\"\n if lazy:\n return Repository.Repository(\n self.__requester, {}, {\"url\": url}, completed=False\n )\n headers, data = self.__requester.requestJsonAndCheck(\n- \"GET\", \"%s%s\" % (url_base, full_name_or_id)\n+ \"GET\", f\"{url_base}{full_name_or_id}\"\n )\n return Repository.Repository(self.__requester, headers, data, completed=True)\n \n@@ -431,7 +429,7 @@ def search_repositories(\n query,\n sort=github.GithubObject.NotSet,\n order=github.GithubObject.NotSet,\n- **qualifiers\n+ **qualifiers,\n ):\n \"\"\"\n :calls: `GET /search/repositories `_\n@@ -459,7 +457,7 @@ def search_repositories(\n query_chunks.append(query)\n \n for qualifier, value in qualifiers.items():\n- query_chunks.append(\"%s:%s\" % (qualifier, value))\n+ query_chunks.append(f\"{qualifier}:{value}\")\n \n url_parameters[\"q\"] = \" \".join(query_chunks)\n assert url_parameters[\"q\"], \"need at least one qualifier\"\n@@ -476,7 +474,7 @@ def search_users(\n query,\n sort=github.GithubObject.NotSet,\n order=github.GithubObject.NotSet,\n- **qualifiers\n+ **qualifiers,\n ):\n \"\"\"\n :calls: `GET /search/users `_\n@@ -500,7 +498,7 @@ def search_users(\n query_chunks.append(query)\n \n for qualifier, value in qualifiers.items():\n- query_chunks.append(\"%s:%s\" % (qualifier, value))\n+ query_chunks.append(f\"{qualifier}:{value}\")\n \n url_parameters[\"q\"] = \" \".join(query_chunks)\n assert url_parameters[\"q\"], \"need at least one qualifier\"\n@@ -517,7 +515,7 @@ def search_issues(\n query,\n sort=github.GithubObject.NotSet,\n order=github.GithubObject.NotSet,\n- **qualifiers\n+ **qualifiers,\n ):\n \"\"\"\n :calls: `GET /search/issues `_\n@@ -541,7 +539,7 @@ def search_issues(\n query_chunks.append(query)\n \n for qualifier, value in qualifiers.items():\n- query_chunks.append(\"%s:%s\" % (qualifier, value))\n+ query_chunks.append(f\"{qualifier}:{value}\")\n \n url_parameters[\"q\"] = \" \".join(query_chunks)\n assert url_parameters[\"q\"], \"need at least one qualifier\"\n@@ -556,7 +554,7 @@ def search_code(\n sort=github.GithubObject.NotSet,\n order=github.GithubObject.NotSet,\n highlight=False,\n- **qualifiers\n+ **qualifiers,\n ):\n \"\"\"\n :calls: `GET /search/code `_\n@@ -585,7 +583,7 @@ def search_code(\n query_chunks.append(query)\n \n for qualifier, value in qualifiers.items():\n- query_chunks.append(\"%s:%s\" % (qualifier, value))\n+ query_chunks.append(f\"{qualifier}:{value}\")\n \n url_parameters[\"q\"] = \" \".join(query_chunks)\n assert url_parameters[\"q\"], \"need at least one qualifier\"\n@@ -605,7 +603,7 @@ def search_commits(\n query,\n sort=github.GithubObject.NotSet,\n order=github.GithubObject.NotSet,\n- **qualifiers\n+ **qualifiers,\n ):\n \"\"\"\n :calls: `GET /search/commits `_\n@@ -633,7 +631,7 @@ def search_commits(\n query_chunks.append(query)\n \n for qualifier, value in qualifiers.items():\n- query_chunks.append(\"%s:%s\" % (qualifier, value))\n+ query_chunks.append(f\"{qualifier}:{value}\")\n \n url_parameters[\"q\"] = \" \".join(query_chunks)\n assert url_parameters[\"q\"], \"need at least one qualifier\"\n@@ -661,7 +659,7 @@ def search_topics(self, query, **qualifiers):\n query_chunks.append(query)\n \n for qualifier, value in qualifiers.items():\n- query_chunks.append(\"%s:%s\" % (qualifier, value))\n+ query_chunks.append(f\"{qualifier}:{value}\")\n \n url_parameters[\"q\"] = \" \".join(query_chunks)\n assert url_parameters[\"q\"], \"need at least one qualifier\"\n@@ -809,7 +807,7 @@ def get_app(self, slug=github.GithubObject.NotSet):\n return GithubApp.GithubApp(self.__requester, headers, data, completed=True)\n \n \n-class GithubIntegration(object):\n+class GithubIntegration:\n \"\"\"\n Main class to obtain tokens for a GitHub integration.\n \"\"\"\n@@ -858,7 +856,7 @@ def get_access_token(self, installation_id, user_id=None):\n self.base_url, installation_id\n ),\n headers={\n- \"Authorization\": \"Bearer {}\".format(self.create_jwt()),\n+ \"Authorization\": f\"Bearer {self.create_jwt()}\",\n \"Accept\": Consts.mediaTypeIntegrationPreview,\n \"User-Agent\": \"PyGithub/Python\",\n },\n@@ -892,13 +890,13 @@ def get_installation(self, owner, repo):\n :rtype: :class:`github.Installation.Installation`\n \"\"\"\n headers = {\n- \"Authorization\": \"Bearer {}\".format(self.create_jwt()),\n+ \"Authorization\": f\"Bearer {self.create_jwt()}\",\n \"Accept\": Consts.mediaTypeIntegrationPreview,\n \"User-Agent\": \"PyGithub/Python\",\n }\n \n response = requests.get(\n- \"{}/repos/{}/{}/installation\".format(self.base_url, owner, repo),\n+ f\"{self.base_url}/repos/{owner}/{repo}/installation\",\n headers=headers,\n )\n response_dict = response.json()"},{"sha":"6eccb3431a1ab4664388f8dca734499a8a8eb5eb","filename":"github/Membership.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMembership.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMembership.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FMembership.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Steve English #"},{"sha":"642de5f7ddbcb9086907042da89b70eee5b186e2","filename":"github/Migration.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMigration.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMigration.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FMigration.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"3f3f9829216bbf3d6bf0b95366dddd1ec9ddc1bd","filename":"github/Milestone.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMilestone.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMilestone.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FMilestone.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"98e4e29d1b9497117e98ef9dcc0faa8c818d5214","filename":"github/NamedUser.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FNamedUser.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FNamedUser.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FNamedUser.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Steve English #"},{"sha":"7f427c8b384dc3389b4322d7d0f2d5431834be3c","filename":"github/Notification.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FNotification.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FNotification.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FNotification.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 AKFish #"},{"sha":"9be34885156bf63e7b71fb55962c1dd446443da8","filename":"github/NotificationSubject.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FNotificationSubject.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FNotificationSubject.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FNotificationSubject.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 AKFish #"},{"sha":"3354a636b82a5b8d7dc09ed9e4103328bc5180e5","filename":"github/Organization.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FOrganization.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FOrganization.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FOrganization.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Steve English #"},{"sha":"8542e31df48579be5dee928702d9eb96bfe89af6","filename":"github/PaginatedList.py","status":"modified","additions":2,"deletions":6,"changes":8,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPaginatedList.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPaginatedList.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPaginatedList.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -53,12 +51,10 @@ def __getitem__(self, index):\n return self._Slice(self, index)\n \n def __iter__(self):\n- for element in self.__elements:\n- yield element\n+ yield from self.__elements\n while self._couldGrow():\n newElements = self._grow()\n- for element in newElements:\n- yield element\n+ yield from newElements\n \n def _isBiggerThan(self, index):\n return len(self.__elements) > index or self._couldGrow()"},{"sha":"89b9564a85a289881f605ce716a455f5dd1d16e9","filename":"github/Path.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPath.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPath.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPath.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Justin Kufro #"},{"sha":"bd62f0dc92afc74c91ffe01b3769e430738a4000","filename":"github/Permissions.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPermissions.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPermissions.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPermissions.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"6bbbbfe3e8d240a88bc4b54b57a20523efb30ea7","filename":"github/Plan.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPlan.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPlan.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPlan.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"9757f74f742da0387241950a2ecc3f8dd1709a86","filename":"github/Project.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FProject.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FProject.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FProject.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 bbi-yggy #"},{"sha":"97b8561c66dd07b832a865747da464ac6347b100","filename":"github/ProjectCard.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FProjectCard.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FProjectCard.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FProjectCard.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 bbi-yggy #"},{"sha":"21e312e2cc9728e934effd7ec1376fb91009c22f","filename":"github/ProjectColumn.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FProjectColumn.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FProjectColumn.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FProjectColumn.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 bbi-yggy #"},{"sha":"1306f304e12e212ac26ff0827821613fadde74df","filename":"github/PullRequest.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequest.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequest.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPullRequest.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Michael Stead #"},{"sha":"597a85ad4af0180bdf8c8408028225c1c93b1026","filename":"github/PullRequest.pyi","status":"modified","additions":4,"deletions":4,"changes":8,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequest.pyi","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequest.pyi","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPullRequest.pyi?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -61,16 +61,16 @@ class PullRequest(CompletableGithubObject):\n ) -> PullRequestComment: ...\n def create_review_request(\n self,\n- reviewers: Union[_NotSetType, str] = ...,\n- team_reviewers: Union[_NotSetType, str] = ...,\n+ reviewers: Union[_NotSetType, List[str]] = ...,\n+ team_reviewers: Union[_NotSetType, List[str]] = ...,\n ) -> None: ...\n @property\n def created_at(self) -> datetime: ...\n def delete_labels(self) -> None: ...\n def delete_review_request(\n self,\n- reviewers: Union[_NotSetType, str] = ...,\n- team_reviewers: Union[_NotSetType, str] = ...,\n+ reviewers: Union[_NotSetType, List[str]] = ...,\n+ team_reviewers: Union[_NotSetType, List[str]] = ...,\n ) -> None: ...\n @property\n def deletions(self) -> int: ..."},{"sha":"ae2b4b0e3a55ede25f3b8ef430c72882ea224eb4","filename":"github/PullRequestComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPullRequestComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"3ec124e5875baf52a0e72e3c8ce9b42c3d218ecd","filename":"github/PullRequestMergeStatus.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestMergeStatus.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestMergeStatus.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPullRequestMergeStatus.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"94ab3f3770ee3b2a8784931ef8c6efd34c4ceb8e","filename":"github/PullRequestPart.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestPart.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestPart.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPullRequestPart.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"8b217c0df1e1d8840a355a546935e04aa0839ab0","filename":"github/PullRequestReview.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestReview.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestReview.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPullRequestReview.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Aaron Levine #"},{"sha":"70b46769f7949071ede8981f50565d39283a3fc0","filename":"github/Rate.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRate.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRate.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRate.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"b40c47808eeb18b7de463d7db59bed24ce0b8e3c","filename":"github/RateLimit.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRateLimit.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRateLimit.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRateLimit.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"59089a0a6e7948d8c21b5b2d2e6701d26a8c875b","filename":"github/Reaction.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FReaction.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FReaction.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FReaction.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Nicolas Agustín Torres #"},{"sha":"7a0d03c64017a06082bbf0719fe65c20fed2877f","filename":"github/Referrer.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FReferrer.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FReferrer.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FReferrer.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Justin Kufro #"},{"sha":"19f5e945b034bbb1f8162a8a8533f87d152b3505","filename":"github/Repository.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepository.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepository.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRepository.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Christopher Gilbert #"},{"sha":"6476147858965cc86e67753bf261f7ad504695b4","filename":"github/Repository.pyi","status":"modified","additions":4,"deletions":1,"changes":5,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepository.pyi","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepository.pyi","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRepository.pyi?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -259,6 +259,8 @@ class Repository(CompletableGithubObject):\n author: Union[InputGitAuthor, _NotSetType] = ...,\n ) -> Dict[str, Union[Commit, _NotSetType]]: ...\n @property\n+ def delete_branch_on_merge(self) -> bool: ...\n+ @property\n def deployments_url(self) -> str: ...\n @property\n def description(self) -> str: ...\n@@ -331,7 +333,7 @@ class Repository(CompletableGithubObject):\n def get_contributors(\n self, anon: Union[str, _NotSetType] = ...\n ) -> PaginatedList[NamedUser]: ...\n- def get_deployment(self, id_: int) -> Any: ...\n+ def get_deployment(self, id_: int) -> Deployment: ...\n def get_deployments(\n self,\n sha: Union[str, _NotSetType] = ...,\n@@ -351,6 +353,7 @@ class Repository(CompletableGithubObject):\n ) -> Repository: ...\n def get_git_blob(self, sha: str) -> GitBlob: ...\n def get_git_commit(self, sha: str) -> GitCommit: ...\n+ def get_git_matching_refs(self, ref: str) -> PaginatedList[GitRef]: ...\n def get_git_ref(self, ref: str) -> GitRef: ...\n def get_git_refs(self) -> PaginatedList[GitRef]: ...\n def get_git_tag(self, sha: str) -> GitTag: ..."},{"sha":"2ff72e14980bb890bc077df37317eccb28d467cd","filename":"github/RepositoryKey.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepositoryKey.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepositoryKey.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRepositoryKey.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"467264e0d19cca105b8e66d1508ba9dd30e501b6","filename":"github/RepositoryPreferences.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepositoryPreferences.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepositoryPreferences.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRepositoryPreferences.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Dhruv Manilawala #"},{"sha":"8842e3ed0c86cd3500572436b311fd2aa2230dfa","filename":"github/Requester.py","status":"modified","additions":5,"deletions":7,"changes":12,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRequester.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRequester.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRequester.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Andrew Bettison #\n@@ -81,7 +79,7 @@ def read(self):\n return self.text\n \n \n-class HTTPSRequestsConnectionClass(object):\n+class HTTPSRequestsConnectionClass:\n # mimic the httplib connection object\n def __init__(\n self, host, port=None, strict=False, timeout=None, retry=None, **kwargs\n@@ -106,7 +104,7 @@ def request(self, verb, url, input, headers):\n \n def getresponse(self):\n verb = getattr(self.session, self.verb.lower())\n- url = \"%s://%s:%s%s\" % (self.protocol, self.host, self.port, self.url)\n+ url = f\"{self.protocol}://{self.host}:{self.port}{self.url}\"\n r = verb(\n url,\n headers=self.headers,\n@@ -121,7 +119,7 @@ def close(self):\n return\n \n \n-class HTTPRequestsConnectionClass(object):\n+class HTTPRequestsConnectionClass:\n # mimic the httplib connection object\n def __init__(\n self, host, port=None, strict=False, timeout=None, retry=None, **kwargs\n@@ -146,7 +144,7 @@ def request(self, verb, url, input, headers):\n \n def getresponse(self):\n verb = getattr(self.session, self.verb.lower())\n- url = \"%s://%s:%s%s\" % (self.protocol, self.host, self.port, self.url)\n+ url = f\"{self.protocol}://{self.host}:{self.port}{self.url}\"\n r = verb(\n url,\n headers=self.headers,\n@@ -513,7 +511,7 @@ def __requestRaw(self, cnx, verb, url, requestHeaders, input):\n response = cnx.getresponse()\n \n status = response.status\n- responseHeaders = dict((k.lower(), v) for k, v in response.getheaders())\n+ responseHeaders = {k.lower(): v for k, v in response.getheaders()}\n output = response.read()\n \n cnx.close()"},{"sha":"70ef469a02c74e29ad6d708ed98ed69a51016922","filename":"github/RequiredPullRequestReviews.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRequiredPullRequestReviews.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRequiredPullRequestReviews.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRequiredPullRequestReviews.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Steve Kowalik #"},{"sha":"5dc0a4603cacb0b4f7b8ce18e02caea3ed95a62a","filename":"github/RequiredStatusChecks.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRequiredStatusChecks.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRequiredStatusChecks.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRequiredStatusChecks.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Steve Kowalik #"},{"sha":"1d3a434dd27943d5b7ef664778e682ae9bc8c8b3","filename":"github/SelfHostedActionsRunner.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FSelfHostedActionsRunner.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FSelfHostedActionsRunner.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FSelfHostedActionsRunner.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\r\n-\r\n ############################ Copyrights and license ############################\r\n # #\r\n # Copyright 2020 Victor Zeng #\r"},{"sha":"88c32af21e43b486f6d09d8687f58601fda03314","filename":"github/SourceImport.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FSourceImport.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FSourceImport.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FSourceImport.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Hayden Fuss #"},{"sha":"fa50b803f4525cc97c40f67f69608eca9e2d2837","filename":"github/Stargazer.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStargazer.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStargazer.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FStargazer.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2015 Dan Vanderkam #"},{"sha":"eb950b3cd3d427b0517bc9ff2763f0320966a3c5","filename":"github/StatsCodeFrequency.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsCodeFrequency.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsCodeFrequency.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FStatsCodeFrequency.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"712232a5cba436a950390f1a332f135bd391dfaf","filename":"github/StatsCommitActivity.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsCommitActivity.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsCommitActivity.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FStatsCommitActivity.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"e8d16028eb3e9a8a4d76a612f5c4956ecee5ad63","filename":"github/StatsContributor.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsContributor.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsContributor.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FStatsContributor.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"fc41c0f510a95a7fb81c0df16f80186f7e7a4b84","filename":"github/StatsParticipation.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsParticipation.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsParticipation.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FStatsParticipation.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"5aa30163735d1d5ad03233c0f5961e011466f07d","filename":"github/StatsPunchCard.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsPunchCard.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsPunchCard.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FStatsPunchCard.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"591bab2b7420542942c670c038fbbf79cbb955c5","filename":"github/Tag.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTag.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTag.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FTag.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"d2bac9d0c1ec2da86ce9c1414627a3427226db32","filename":"github/Team.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTeam.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTeam.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FTeam.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"62f8c4f4a46f5ebee5b43d5d6f7b73265786a22d","filename":"github/TeamDiscussion.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTeamDiscussion.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTeamDiscussion.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FTeamDiscussion.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Adam Baratz #"},{"sha":"2607da9835b5ed04ffcb1f71f36e26e8ce03fba4","filename":"github/TimelineEvent.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTimelineEvent.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTimelineEvent.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FTimelineEvent.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Nick Campbell #"},{"sha":"cecaa09d7fd984ebd3596530c8229ba47e7b1703","filename":"github/TimelineEventSource.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTimelineEventSource.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTimelineEventSource.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FTimelineEventSource.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Nick Campbell #"},{"sha":"d58837ab741237dc112d8a6bd6c9bf85f3f236ee","filename":"github/Topic.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTopic.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTopic.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FTopic.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Steve Kowalik #"},{"sha":"3ac1dde575737fce45a0e2fc8ff2da87d720b20f","filename":"github/UserKey.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FUserKey.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FUserKey.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FUserKey.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"5f643bcc3dd97e718505e270387a950ce216009e","filename":"github/View.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FView.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FView.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FView.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Justin Kufro #"},{"sha":"d5b7d448ff016bec167d740385f59bcedcba5bce","filename":"github/Workflow.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FWorkflow.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FWorkflow.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FWorkflow.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Steve Kowalik #"},{"sha":"3631f6e2dab7a6b8cbf761209817719b16ba86fa","filename":"github/WorkflowRun.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FWorkflowRun.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FWorkflowRun.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FWorkflowRun.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Steve Kowalik #"},{"sha":"c978fbe999cb9b0073ffebe701d1821e3b608bc1","filename":"github/__init__.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2F__init__.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2F__init__.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2F__init__.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"cac1930fe56305c0913b6f17e1841a0be1d39174","filename":"requirements.txt","status":"modified","additions":2,"deletions":2,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/requirements.txt","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/requirements.txt","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/requirements.txt?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,5 @@\n-requests>=2.14.0,<2.25\n-pyjwt\n+requests>=2.14.0\n+pyjwt<2.0\n sphinx<3\n sphinx-rtd-theme<0.6\n Deprecated"},{"sha":"d8b29be2e07d3e44646e442ea1d60ff161658d0c","filename":"scripts/add_attribute.py","status":"modified","additions":0,"deletions":1,"changes":1,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/scripts%2Fadd_attribute.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/scripts%2Fadd_attribute.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/scripts%2Fadd_attribute.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,4 @@\n #!/usr/bin/env python\n-# -*- coding: utf-8 -*-\n \n ############################ Copyrights and license ############################\n # #"},{"sha":"f7c0fccd1fac061578872af6523b61b7d89d0de0","filename":"scripts/fix_headers.py","status":"modified","additions":0,"deletions":1,"changes":1,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/scripts%2Ffix_headers.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/scripts%2Ffix_headers.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/scripts%2Ffix_headers.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,4 @@\n #!/usr/bin/env python\n-# -*- coding: utf-8 -*-\n \n ############################ Copyrights and license ############################\n # #"},{"sha":"e67d154b15af7bbf362310adc39814e39ff06bc1","filename":"setup.py","status":"modified","additions":4,"deletions":6,"changes":10,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/setup.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/setup.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/setup.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,4 @@\n #!/usr/bin/env python\n-# -*- coding: utf-8 -*-\n \n ############################ Copyrights and license ############################\n # #\n@@ -45,7 +44,7 @@\n \n import setuptools\n \n-version = \"1.54\"\n+version = \"1.54.1\"\n \n \n if __name__ == \"__main__\":\n@@ -92,15 +91,14 @@\n \"Operating System :: OS Independent\",\n \"Programming Language :: Python\",\n \"Programming Language :: Python :: 3\",\n- \"Programming Language :: Python :: 3.5\",\n \"Programming Language :: Python :: 3.6\",\n \"Programming Language :: Python :: 3.7\",\n \"Programming Language :: Python :: 3.8\",\n \"Programming Language :: Python :: 3.9\",\n \"Topic :: Software Development\",\n ],\n- python_requires=\">=3.5\",\n- install_requires=[\"deprecated\", \"pyjwt\", \"requests>=2.14.0,<2.25\"],\n+ python_requires=\">=3.6\",\n+ install_requires=[\"deprecated\", \"pyjwt<2.0\", \"requests>=2.14.0\"],\n extras_require={\"integrations\": [\"cryptography\"]},\n- tests_require=[\"cryptography\", \"httpretty>=0.9.6\"],\n+ tests_require=[\"cryptography\", \"httpretty>=1.0.3\"],\n )"},{"sha":"f87e113a4fa19cb48bc60bc6b56416e5fb72a52e","filename":"test-requirements.txt","status":"modified","additions":1,"deletions":1,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/test-requirements.txt","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/test-requirements.txt","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/test-requirements.txt?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,4 +1,4 @@\n cryptography\n-httpretty>=0.9.6\n+httpretty>=1.0.3\n pytest>=5.3\n pytest-cov>=2.8"},{"sha":"ce374d54ae35693ae76215a7bb98e9274ea18f6f","filename":"tests/ApplicationOAuth.py","status":"modified","additions":4,"deletions":6,"changes":10,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FApplicationOAuth.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FApplicationOAuth.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FApplicationOAuth.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Rigas Papathanasopoulos #\n@@ -37,14 +35,14 @@ def testLoginURL(self):\n sample_uri = \"https://myapp.com/some/path\"\n sample_uri_encoded = \"https%3A%2F%2Fmyapp.com%2Fsome%2Fpath\"\n self.assertEqual(\n- self.app.get_login_url(), \"{}?client_id={}\".format(BASE_URL, self.CLIENT_ID)\n+ self.app.get_login_url(), f\"{BASE_URL}?client_id={self.CLIENT_ID}\"\n )\n self.assertTrue(\n- \"redirect_uri={}\".format(sample_uri_encoded)\n+ f\"redirect_uri={sample_uri_encoded}\"\n in self.app.get_login_url(redirect_uri=sample_uri)\n )\n self.assertTrue(\n- \"client_id={}\".format(self.CLIENT_ID)\n+ f\"client_id={self.CLIENT_ID}\"\n in self.app.get_login_url(redirect_uri=sample_uri)\n )\n self.assertTrue(\n@@ -54,7 +52,7 @@ def testLoginURL(self):\n \"login=user\" in self.app.get_login_url(state=\"123abc\", login=\"user\")\n )\n self.assertTrue(\n- \"client_id={}\".format(self.CLIENT_ID)\n+ f\"client_id={self.CLIENT_ID}\"\n in self.app.get_login_url(state=\"123abc\", login=\"user\")\n )\n "},{"sha":"79e1052807622521ef84537a8eeebc61bb0af30f","filename":"tests/AuthenticatedUser.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FAuthenticatedUser.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FAuthenticatedUser.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FAuthenticatedUser.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"dec6b9f39054471ac51d8ff52887efc294cad575","filename":"tests/Authentication.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FAuthentication.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FAuthentication.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FAuthentication.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"2e05cb7d36c8d2b17f22012b90684c9f2d4e4cff","filename":"tests/Authorization.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FAuthorization.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FAuthorization.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FAuthorization.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"4aba0284765ccf698f217ff24b67a05f34fc3f30","filename":"tests/BadAttributes.py","status":"modified","additions":143,"deletions":145,"changes":288,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FBadAttributes.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FBadAttributes.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FBadAttributes.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #\n@@ -117,149 +115,149 @@ def testIssue195(self):\n hooks,\n lambda h: h.name,\n [\n- u\"activecollab\",\n- u\"acunote\",\n- u\"agilebench\",\n- u\"agilezen\",\n- u\"amazonsns\",\n- u\"apiary\",\n- u\"apoio\",\n- u\"appharbor\",\n- u\"apropos\",\n- u\"asana\",\n- u\"backlog\",\n- u\"bamboo\",\n- u\"basecamp\",\n- u\"bcx\",\n- u\"blimp\",\n- u\"boxcar\",\n- u\"buddycloud\",\n- u\"bugherd\",\n- u\"bugly\",\n- u\"bugzilla\",\n- u\"campfire\",\n- u\"cia\",\n- u\"circleci\",\n- u\"codeclimate\",\n- u\"codeportingcsharp2java\",\n- u\"codeship\",\n- u\"coffeedocinfo\",\n- u\"conductor\",\n- u\"coop\",\n- u\"copperegg\",\n- u\"cube\",\n- u\"depending\",\n- u\"deployhq\",\n- u\"devaria\",\n- u\"docker\",\n- u\"ducksboard\",\n- u\"email\",\n- u\"firebase\",\n- u\"fisheye\",\n- u\"flowdock\",\n- u\"fogbugz\",\n- u\"freckle\",\n- u\"friendfeed\",\n- u\"gemini\",\n- u\"gemnasium\",\n- u\"geocommit\",\n- u\"getlocalization\",\n- u\"gitlive\",\n- u\"grmble\",\n- u\"grouptalent\",\n- u\"grove\",\n- u\"habitualist\",\n- u\"hakiri\",\n- u\"hall\",\n- u\"harvest\",\n- u\"hipchat\",\n- u\"hostedgraphite\",\n- u\"hubcap\",\n- u\"hubci\",\n- u\"humbug\",\n- u\"icescrum\",\n- u\"irc\",\n- u\"irker\",\n- u\"ironmq\",\n- u\"ironworker\",\n- u\"jabber\",\n- u\"jaconda\",\n- u\"jeapie\",\n- u\"jenkins\",\n- u\"jenkinsgit\",\n- u\"jira\",\n- u\"jqueryplugins\",\n- u\"kanbanery\",\n- u\"kickoff\",\n- u\"leanto\",\n- u\"lechat\",\n- u\"lighthouse\",\n- u\"lingohub\",\n- u\"loggly\",\n- u\"mantisbt\",\n- u\"masterbranch\",\n- u\"mqttpub\",\n- u\"nma\",\n- u\"nodejitsu\",\n- u\"notifo\",\n- u\"ontime\",\n- u\"pachube\",\n- u\"packagist\",\n- u\"phraseapp\",\n- u\"pivotaltracker\",\n- u\"planbox\",\n- u\"planio\",\n- u\"prowl\",\n- u\"puppetlinter\",\n- u\"pushalot\",\n- u\"pushover\",\n- u\"pythonpackages\",\n- u\"railsbp\",\n- u\"railsbrakeman\",\n- u\"rally\",\n- u\"rapidpush\",\n- u\"rationaljazzhub\",\n- u\"rationalteamconcert\",\n- u\"rdocinfo\",\n- u\"readthedocs\",\n- u\"redmine\",\n- u\"rubyforge\",\n- u\"scrumdo\",\n- u\"shiningpanda\",\n- u\"sifter\",\n- u\"simperium\",\n- u\"slatebox\",\n- u\"snowyevening\",\n- u\"socialcast\",\n- u\"softlayermessaging\",\n- u\"sourcemint\",\n- u\"splendidbacon\",\n- u\"sprintly\",\n- u\"sqsqueue\",\n- u\"stackmob\",\n- u\"statusnet\",\n- u\"talker\",\n- u\"targetprocess\",\n- u\"tddium\",\n- u\"teamcity\",\n- u\"tender\",\n- u\"tenxer\",\n- u\"testpilot\",\n- u\"toggl\",\n- u\"trac\",\n- u\"trajectory\",\n- u\"travis\",\n- u\"trello\",\n- u\"twilio\",\n- u\"twitter\",\n- u\"unfuddle\",\n- u\"web\",\n- u\"weblate\",\n- u\"webtranslateit\",\n- u\"yammer\",\n- u\"youtrack\",\n- u\"zendesk\",\n- u\"zohoprojects\",\n+ \"activecollab\",\n+ \"acunote\",\n+ \"agilebench\",\n+ \"agilezen\",\n+ \"amazonsns\",\n+ \"apiary\",\n+ \"apoio\",\n+ \"appharbor\",\n+ \"apropos\",\n+ \"asana\",\n+ \"backlog\",\n+ \"bamboo\",\n+ \"basecamp\",\n+ \"bcx\",\n+ \"blimp\",\n+ \"boxcar\",\n+ \"buddycloud\",\n+ \"bugherd\",\n+ \"bugly\",\n+ \"bugzilla\",\n+ \"campfire\",\n+ \"cia\",\n+ \"circleci\",\n+ \"codeclimate\",\n+ \"codeportingcsharp2java\",\n+ \"codeship\",\n+ \"coffeedocinfo\",\n+ \"conductor\",\n+ \"coop\",\n+ \"copperegg\",\n+ \"cube\",\n+ \"depending\",\n+ \"deployhq\",\n+ \"devaria\",\n+ \"docker\",\n+ \"ducksboard\",\n+ \"email\",\n+ \"firebase\",\n+ \"fisheye\",\n+ \"flowdock\",\n+ \"fogbugz\",\n+ \"freckle\",\n+ \"friendfeed\",\n+ \"gemini\",\n+ \"gemnasium\",\n+ \"geocommit\",\n+ \"getlocalization\",\n+ \"gitlive\",\n+ \"grmble\",\n+ \"grouptalent\",\n+ \"grove\",\n+ \"habitualist\",\n+ \"hakiri\",\n+ \"hall\",\n+ \"harvest\",\n+ \"hipchat\",\n+ \"hostedgraphite\",\n+ \"hubcap\",\n+ \"hubci\",\n+ \"humbug\",\n+ \"icescrum\",\n+ \"irc\",\n+ \"irker\",\n+ \"ironmq\",\n+ \"ironworker\",\n+ \"jabber\",\n+ \"jaconda\",\n+ \"jeapie\",\n+ \"jenkins\",\n+ \"jenkinsgit\",\n+ \"jira\",\n+ \"jqueryplugins\",\n+ \"kanbanery\",\n+ \"kickoff\",\n+ \"leanto\",\n+ \"lechat\",\n+ \"lighthouse\",\n+ \"lingohub\",\n+ \"loggly\",\n+ \"mantisbt\",\n+ \"masterbranch\",\n+ \"mqttpub\",\n+ \"nma\",\n+ \"nodejitsu\",\n+ \"notifo\",\n+ \"ontime\",\n+ \"pachube\",\n+ \"packagist\",\n+ \"phraseapp\",\n+ \"pivotaltracker\",\n+ \"planbox\",\n+ \"planio\",\n+ \"prowl\",\n+ \"puppetlinter\",\n+ \"pushalot\",\n+ \"pushover\",\n+ \"pythonpackages\",\n+ \"railsbp\",\n+ \"railsbrakeman\",\n+ \"rally\",\n+ \"rapidpush\",\n+ \"rationaljazzhub\",\n+ \"rationalteamconcert\",\n+ \"rdocinfo\",\n+ \"readthedocs\",\n+ \"redmine\",\n+ \"rubyforge\",\n+ \"scrumdo\",\n+ \"shiningpanda\",\n+ \"sifter\",\n+ \"simperium\",\n+ \"slatebox\",\n+ \"snowyevening\",\n+ \"socialcast\",\n+ \"softlayermessaging\",\n+ \"sourcemint\",\n+ \"splendidbacon\",\n+ \"sprintly\",\n+ \"sqsqueue\",\n+ \"stackmob\",\n+ \"statusnet\",\n+ \"talker\",\n+ \"targetprocess\",\n+ \"tddium\",\n+ \"teamcity\",\n+ \"tender\",\n+ \"tenxer\",\n+ \"testpilot\",\n+ \"toggl\",\n+ \"trac\",\n+ \"trajectory\",\n+ \"travis\",\n+ \"trello\",\n+ \"twilio\",\n+ \"twitter\",\n+ \"unfuddle\",\n+ \"web\",\n+ \"weblate\",\n+ \"webtranslateit\",\n+ \"yammer\",\n+ \"youtrack\",\n+ \"zendesk\",\n+ \"zohoprojects\",\n ],\n )\n for hook in hooks:"},{"sha":"876d50fe8c3ea4749d8f547d06e055200fc5caff","filename":"tests/Branch.py","status":"modified","additions":18,"deletions":20,"changes":38,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FBranch.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FBranch.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FBranch.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -87,10 +85,10 @@ def testEditProtectionDismissalUsersWithUserOwnedBranch(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/branches/#update-branch-protection\",\n- u\"message\": u\"Validation Failed\",\n- u\"errors\": [\n- u\"Only organization repositories can have users and team restrictions\"\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/branches/#update-branch-protection\",\n+ \"message\": \"Validation Failed\",\n+ \"errors\": [\n+ \"Only organization repositories can have users and team restrictions\"\n ],\n },\n )\n@@ -104,10 +102,10 @@ def testEditProtectionPushRestrictionsWithUserOwnedBranch(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/branches/#update-branch-protection\",\n- u\"message\": u\"Validation Failed\",\n- u\"errors\": [\n- u\"Only organization repositories can have users and team restrictions\"\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/branches/#update-branch-protection\",\n+ \"message\": \"Validation Failed\",\n+ \"errors\": [\n+ \"Only organization repositories can have users and team restrictions\"\n ],\n },\n )\n@@ -147,8 +145,8 @@ def testRemoveProtection(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/branches/#get-branch-protection\",\n- u\"message\": u\"Branch not protected\",\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/branches/#get-branch-protection\",\n+ \"message\": \"Branch not protected\",\n },\n )\n \n@@ -166,8 +164,8 @@ def testRemoveRequiredStatusChecks(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/branches/#get-required-status-checks-of-protected-branch\",\n- u\"message\": u\"Required status checks not enabled\",\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/branches/#get-required-status-checks-of-protected-branch\",\n+ \"message\": \"Required status checks not enabled\",\n },\n )\n \n@@ -193,8 +191,8 @@ def testEditRequiredPullRequestReviewsWithTooLargeApprovingReviewCount(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/branches/#update-pull-request-review-enforcement-of-protected-branch\",\n- u\"message\": u\"Invalid request.\\n\\n9 must be less than or equal to 6.\",\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/branches/#update-pull-request-review-enforcement-of-protected-branch\",\n+ \"message\": \"Invalid request.\\n\\n9 must be less than or equal to 6.\",\n },\n )\n \n@@ -207,8 +205,8 @@ def testEditRequiredPullRequestReviewsWithUserBranchAndDismissalUsers(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/branches/#update-pull-request-review-enforcement-of-protected-branch\",\n- u\"message\": u\"Dismissal restrictions are supported only for repositories owned by an organization.\",\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/branches/#update-pull-request-review-enforcement-of-protected-branch\",\n+ \"message\": \"Dismissal restrictions are supported only for repositories owned by an organization.\",\n },\n )\n \n@@ -295,8 +293,8 @@ def testRemovePushRestrictions(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/branches/#list-team-restrictions-of-protected-branch\",\n- u\"message\": u\"Push restrictions not enabled\",\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/branches/#list-team-restrictions-of-protected-branch\",\n+ \"message\": \"Push restrictions not enabled\",\n },\n )\n "},{"sha":"65a75d21e85338d8a7d15688bbeed469eaf1756f","filename":"tests/BranchProtection.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FBranchProtection.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FBranchProtection.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FBranchProtection.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Steve Kowalik #"},{"sha":"818371b5ab3f8e3b287e09dda55480a4ad2c83c7","filename":"tests/CheckRun.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCheckRun.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCheckRun.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FCheckRun.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Dhruv Manilawala #"},{"sha":"9dafaeb69d5fbf06172bf06bcc81ff7461e62943","filename":"tests/CheckSuite.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCheckSuite.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCheckSuite.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FCheckSuite.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Raju Subramanian #"},{"sha":"beb3d4885b8abb39b0f533b638e67fb478fac71b","filename":"tests/Commit.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommit.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommit.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FCommit.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"c51588e94135f1015d55dd84828b091e42fa423a","filename":"tests/CommitCombinedStatus.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommitCombinedStatus.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommitCombinedStatus.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FCommitCombinedStatus.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2016 Jannis Gebauer #"},{"sha":"8f1a58fb4178c0de6ac540876cc0da5263168ef2","filename":"tests/CommitComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommitComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommitComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FCommitComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"b94cf424256de155ba8b44a7b5a81a4692cf61de","filename":"tests/CommitStatus.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommitStatus.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommitStatus.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FCommitStatus.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"a29eefdcf85e69f11fcd3166e72201316db0cf81","filename":"tests/ConditionalRequestUpdate.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FConditionalRequestUpdate.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FConditionalRequestUpdate.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FConditionalRequestUpdate.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 AKFish #"},{"sha":"a0869d3e4d6a43b07569fd9ff90a898f29e55eb9","filename":"tests/Connection.py","status":"modified","additions":4,"deletions":6,"changes":10,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FConnection.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FConnection.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FConnection.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Adam Baratz #\n@@ -43,16 +41,16 @@\n \"\\nGET\\napi.github.com\\nNone\\n/user\\n{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\\nNone\\n200\\n[]\\n{\\\"body\\\":\\\"BODY TEXT\\\"}\\n\\n\",\n ),\n (\n- u'{\"body\":\"BODY\\xa0TEXT\"}',\n- u\"\\nGET\\napi.github.com\\nNone\\n/user\\n{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\\nNone\\n200\\n[]\\n{\\\"body\\\":\\\"BODY\\xa0TEXT\\\"}\\n\\n\",\n+ '{\"body\":\"BODY\\xa0TEXT\"}',\n+ \"\\nGET\\napi.github.com\\nNone\\n/user\\n{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\\nNone\\n200\\n[]\\n{\\\"body\\\":\\\"BODY\\xa0TEXT\\\"}\\n\\n\",\n ),\n (\n \"BODY TEXT\",\n \"\\nGET\\napi.github.com\\nNone\\n/user\\n{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\\nNone\\n200\\n[]\\nBODY TEXT\\n\\n\",\n ),\n (\n- u\"BODY\\xa0TEXT\",\n- u\"\\nGET\\napi.github.com\\nNone\\n/user\\n{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\\nNone\\n200\\n[]\\nBODY\\xa0TEXT\\n\\n\",\n+ \"BODY\\xa0TEXT\",\n+ \"\\nGET\\napi.github.com\\nNone\\n/user\\n{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\\nNone\\n200\\n[]\\nBODY\\xa0TEXT\\n\\n\",\n ),\n ],\n )"},{"sha":"1b3c61fba810c9f0b791fb2e56bbce50d75052bd","filename":"tests/ContentFile.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FContentFile.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FContentFile.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FContentFile.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"b0c2fbcb4a800e2f5c4dda05415238e5ef7a04f5","filename":"tests/Deployment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FDeployment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FDeployment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FDeployment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Steve Kowalik #"},{"sha":"0b4a2266802318f92759749d99340dc208bf09d4","filename":"tests/DeploymentStatus.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FDeploymentStatus.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FDeploymentStatus.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FDeploymentStatus.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Colby Gallup #"},{"sha":"d1c3e752702a9c9441cd67426a28ea3a66b42b38","filename":"tests/Download.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FDownload.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FDownload.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FDownload.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"b0a5ee4d9d4a1cf89daa4b840b4efd2e8d16a7ee","filename":"tests/Enterprise.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FEnterprise.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FEnterprise.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FEnterprise.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"ed2d01b7f8886407ec701fe4485cb3fda4edbb83","filename":"tests/Equality.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FEquality.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FEquality.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FEquality.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"1be98f42d4b631855b3784e2933b529d14d76d49","filename":"tests/Event.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FEvent.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FEvent.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FEvent.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"6b9edc5ee482f23e00e5ef5533584356d942d410","filename":"tests/Exceptions.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FExceptions.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FExceptions.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FExceptions.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"6a8022b582c94f83eb0cd0caa6b8f3b5da630d9a","filename":"tests/ExposeAllAttributes.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FExposeAllAttributes.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FExposeAllAttributes.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FExposeAllAttributes.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"fce12927e86852ac0dc8a6289d5bfdd071d5ba39","filename":"tests/Framework.py","status":"modified","additions":2,"deletions":4,"changes":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FFramework.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FFramework.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FFramework.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -132,7 +130,7 @@ def close(self):\n return self.__cnx.close()\n \n def __writeLine(self, line):\n- self.__file.write(str(line) + u\"\\n\")\n+ self.__file.write(str(line) + \"\\n\")\n \n \n class RecordingHttpConnection(RecordingConnection):\n@@ -314,7 +312,7 @@ def __openFile(self, mode):\n if fileName != self.__fileName:\n self.__closeReplayFileIfNeeded()\n self.__fileName = fileName\n- self.__file = io.open(self.__fileName, mode, encoding=\"utf-8\")\n+ self.__file = open(self.__fileName, mode, encoding=\"utf-8\")\n return self.__file\n \n def __closeReplayFileIfNeeded(self):"},{"sha":"a2127d3a07292ce753dac73b27fdb6e9afebbe0e","filename":"tests/Gist.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGist.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGist.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGist.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"0853fc2f6ddcff50e5a9ad667bba9452f4b3b9eb","filename":"tests/GistComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGistComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGistComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGistComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"881378fa7df621a6a891c54291e4df752ee4b1b6","filename":"tests/GitBlob.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitBlob.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitBlob.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGitBlob.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"665645374fd9ddc528d2b104b2a26eca927eeb0c","filename":"tests/GitCommit.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitCommit.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitCommit.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGitCommit.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"acb8e7cd56054834792baef1809bdc96ce758c0e","filename":"tests/GitMembership.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitMembership.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitMembership.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGitMembership.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Steve English #"},{"sha":"726d9cab95a3177ee4c0e21a10817e524220c3cd","filename":"tests/GitRef.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitRef.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitRef.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGitRef.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"6e4cc5a8afdfb0d427afc31132c1926cdeb68d94","filename":"tests/GitRelease.py","status":"modified","additions":1,"deletions":3,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitRelease.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitRelease.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGitRelease.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2015 Ed Holland #\n@@ -141,7 +139,7 @@ def testAttributes(self):\n self.assertEqual(release.author.type, \"User\")\n self.assertEqual(\n release.html_url,\n- \"https://github.com/{}/{}/releases/tag/{}\".format(user, repo_name, tag),\n+ f\"https://github.com/{user}/{repo_name}/releases/tag/{tag}\",\n )\n self.assertEqual(release.created_at, create_date)\n self.assertEqual(release.published_at, publish_date)"},{"sha":"d827282fd3385b304b6fa6d9afa1f0659e81f3a8","filename":"tests/GitTag.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitTag.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitTag.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGitTag.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"69718f2ed77322800f9982f1572d9b89eab48d0f","filename":"tests/GitTree.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitTree.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitTree.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGitTree.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"63ea3209955486970f2e64ff248d7acfacc37f7f","filename":"tests/GithubApp.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGithubApp.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGithubApp.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGithubApp.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Raju Subramanian #"},{"sha":"272f50db45fc0011193b978b55cdda588485fdde","filename":"tests/GithubIntegration.py","status":"modified","additions":26,"deletions":26,"changes":52,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGithubIntegration.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGithubIntegration.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGithubIntegration.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -51,7 +51,7 @@ def setUp(self):\n self.origin_time = sys.modules[\"time\"].time\n sys.modules[\"time\"].time = lambda: 1550055331.7435968\n \n- class Mock(object):\n+ class Mock:\n def __init__(self):\n self.args = tuple()\n self.kwargs = dict()\n@@ -66,8 +66,8 @@ def json(self):\n @property\n def text(self):\n return (\n- u'{\"token\": \"v1.ce63424bc55028318325caac4f4c3a5378ca0038\",'\n- u'\"expires_at\": \"2019-02-13T11:10:38Z\"}'\n+ '{\"token\": \"v1.ce63424bc55028318325caac4f4c3a5378ca0038\",'\n+ '\"expires_at\": \"2019-02-13T11:10:38Z\"}'\n )\n \n def __call__(self, *args, **kwargs):\n@@ -79,7 +79,7 @@ def __call__(self, *args, **kwargs):\n self.mock = Mock()\n sys.modules[\"requests\"].post = self.mock\n \n- class GetMock(object):\n+ class GetMock:\n def __init__(self):\n self.args = tuple()\n self.kwargs = dict()\n@@ -95,28 +95,28 @@ def json(self):\n @property\n def text(self):\n return (\n- u'{\"id\":111111,\"account\":{\"login\":\"foo\",\"id\":11111111,'\n- u'\"node_id\":\"foobar\",'\n- u'\"avatar_url\":\"https://avatars3.githubusercontent.com/u/11111111?v=4\",'\n- u'\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/foo\",'\n- u'\"html_url\":\"https://github.com/foo\",'\n- u'\"followers_url\":\"https://api.github.com/users/foo/followers\",'\n- u'\"following_url\":\"https://api.github.com/users/foo/following{/other_user}\",'\n- u'\"gists_url\":\"https://api.github.com/users/foo/gists{/gist_id}\",'\n- u'\"starred_url\":\"https://api.github.com/users/foo/starred{/owner}{/repo}\",'\n- u'\"subscriptions_url\":\"https://api.github.com/users/foo/subscriptions\",'\n- u'\"organizations_url\":\"https://api.github.com/users/foo/orgs\",'\n- u'\"repos_url\":\"https://api.github.com/users/foo/repos\",'\n- u'\"events_url\":\"https://api.github.com/users/foo/events{/privacy}\",'\n- u'\"received_events_url\":\"https://api.github.com/users/foo/received_events\",'\n- u'\"type\":\"Organization\",\"site_admin\":false},\"repository_selection\":\"all\",'\n- u'\"access_tokens_url\":\"https://api.github.com/app/installations/111111/access_tokens\",'\n- u'\"repositories_url\":\"https://api.github.com/installation/repositories\",'\n- u'\"html_url\":\"https://github.com/organizations/foo/settings/installations/111111\",'\n- u'\"app_id\":11111,\"target_id\":11111111,\"target_type\":\"Organization\",'\n- u'\"permissions\":{\"issues\":\"write\",\"pull_requests\":\"write\",\"statuses\":\"write\",\"contents\":\"read\",'\n- u'\"metadata\":\"read\"},\"events\":[\"pull_request\",\"release\"],\"created_at\":\"2019-04-17T16:10:37.000Z\",'\n- u'\"updated_at\":\"2019-05-03T06:27:48.000Z\",\"single_file_name\":null}'\n+ '{\"id\":111111,\"account\":{\"login\":\"foo\",\"id\":11111111,'\n+ '\"node_id\":\"foobar\",'\n+ '\"avatar_url\":\"https://avatars3.githubusercontent.com/u/11111111?v=4\",'\n+ '\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/foo\",'\n+ '\"html_url\":\"https://github.com/foo\",'\n+ '\"followers_url\":\"https://api.github.com/users/foo/followers\",'\n+ '\"following_url\":\"https://api.github.com/users/foo/following{/other_user}\",'\n+ '\"gists_url\":\"https://api.github.com/users/foo/gists{/gist_id}\",'\n+ '\"starred_url\":\"https://api.github.com/users/foo/starred{/owner}{/repo}\",'\n+ '\"subscriptions_url\":\"https://api.github.com/users/foo/subscriptions\",'\n+ '\"organizations_url\":\"https://api.github.com/users/foo/orgs\",'\n+ '\"repos_url\":\"https://api.github.com/users/foo/repos\",'\n+ '\"events_url\":\"https://api.github.com/users/foo/events{/privacy}\",'\n+ '\"received_events_url\":\"https://api.github.com/users/foo/received_events\",'\n+ '\"type\":\"Organization\",\"site_admin\":false},\"repository_selection\":\"all\",'\n+ '\"access_tokens_url\":\"https://api.github.com/app/installations/111111/access_tokens\",'\n+ '\"repositories_url\":\"https://api.github.com/installation/repositories\",'\n+ '\"html_url\":\"https://github.com/organizations/foo/settings/installations/111111\",'\n+ '\"app_id\":11111,\"target_id\":11111111,\"target_type\":\"Organization\",'\n+ '\"permissions\":{\"issues\":\"write\",\"pull_requests\":\"write\",\"statuses\":\"write\",\"contents\":\"read\",'\n+ '\"metadata\":\"read\"},\"events\":[\"pull_request\",\"release\"],\"created_at\":\"2019-04-17T16:10:37.000Z\",'\n+ '\"updated_at\":\"2019-05-03T06:27:48.000Z\",\"single_file_name\":null}'\n )\n \n def __call__(self, *args, **kwargs):"},{"sha":"3e7027518c115761e9207dafa316ce1b2c7b68bc","filename":"tests/Github_.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGithub_.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGithub_.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGithub_.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"86c0257ae135e52ba4372f95077301f16d84a63d","filename":"tests/Hook.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FHook.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FHook.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FHook.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"bb2014b33325a5ff32889967f5811519ebcfa712","filename":"tests/Issue.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"6a4046aa4ffd6b51841f6a996ff45430c5a1fc5e","filename":"tests/Issue131.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue131.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue131.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue131.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"78a24452cf7eaee05881c14f4c499cdf7a29baed","filename":"tests/Issue133.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue133.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue133.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue133.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"13d971c26391346dc77bee50d471fcf8aea8d73b","filename":"tests/Issue134.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue134.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue134.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue134.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"bcc44da7bc3955ab5ead5974714787ecc504a613","filename":"tests/Issue139.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue139.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue139.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue139.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"e5433f4339514de4a25a1516b0e6da58ed6143e1","filename":"tests/Issue140.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue140.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue140.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue140.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"4f5f8fb244fa258f7c65a046c1812967fbf3e654","filename":"tests/Issue142.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue142.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue142.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue142.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"dfe55a44fa37ef82a051c70d71d9a6a37729e750","filename":"tests/Issue158.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue158.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue158.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue158.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"11b57c996ea1a46d149a9eca7b6eb9de5286f5fb","filename":"tests/Issue174.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue174.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue174.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue174.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"9aea863e1e68e1b683b1167f7af70d23be8a7698","filename":"tests/Issue214.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue214.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue214.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue214.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 David Farr #"},{"sha":"988467167f4739f70bb90f14bfc03d1c776ebf8b","filename":"tests/Issue216.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue216.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue216.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue216.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"6b46c2c71f328e160d535f513f415340f9c80c4f","filename":"tests/Issue278.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue278.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue278.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue278.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2014 Vincent Jacques #"},{"sha":"a260fe521bb1b80be5e4ee8877e3f1f67340e3dd","filename":"tests/Issue33.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue33.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue33.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue33.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"105351074187707d09ad4da0d7c6acdcad5bbe39","filename":"tests/Issue494.py","status":"modified","additions":2,"deletions":4,"changes":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue494.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue494.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue494.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2016 Sam Corbett #\n@@ -34,7 +32,7 @@ def setUp(self):\n \n def testRepr(self):\n expected = (\n- u'PullRequest(title=\"Change SetHostnameCustomizer to check if '\n- u'/etc/sysconfig/network exist…\", number=465)'\n+ 'PullRequest(title=\"Change SetHostnameCustomizer to check if '\n+ '/etc/sysconfig/network exist…\", number=465)'\n )\n self.assertEqual(self.pull.__repr__(), expected)"},{"sha":"81c7dd6f53b588772f4bd0b87a12d4cb49653c70","filename":"tests/Issue50.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue50.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue50.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue50.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"d93ca051a950887e12c2d0703174c2335e48dd1b","filename":"tests/Issue54.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue54.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue54.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue54.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"f30a738c014c204ca6fce1374a5552b66eb80c6e","filename":"tests/Issue572.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue572.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue572.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue572.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Shinichi TAMURA #"},{"sha":"11fcd49f034a24c83bfa7599dfcd15da679e725c","filename":"tests/Issue80.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue80.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue80.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue80.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"5f31412be0e1c36fa315755a3b9a8f3491e78376","filename":"tests/Issue823.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue823.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue823.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue823.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"d78e755dc9eb828ba1b8d118a23781804daa4964","filename":"tests/Issue87.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue87.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue87.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue87.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"a08e0c9dd2c5fcb4cc9c31d6540d88972095e2d5","filename":"tests/Issue937.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue937.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue937.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue937.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Vinay Hegde #"},{"sha":"59f812b656cc41437522df6ea411b06bd368746b","filename":"tests/Issue945.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue945.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue945.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue945.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Kelvin Wong (https://github.com/netsgnut) #"},{"sha":"f517a712edbb4da23fc2339586596e72eaf854ac","filename":"tests/IssueComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssueComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssueComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssueComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"837d7bb00cd21f352e43d0e7fc018e6fb6144d8a","filename":"tests/IssueEvent.py","status":"modified","additions":5,"deletions":7,"changes":12,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssueEvent.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssueEvent.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssueEvent.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -420,8 +418,8 @@ def testEvent_renamed_Attributes(self):\n self.assertEqual(\n self.event_renamed.rename,\n {\n- u\"to\": u\"Adding new attributes to IssueEvent\",\n- u\"from\": u\"Adding new attributes to IssueEvent Object (DO NOT MERGE - SEE NOTES)\",\n+ \"to\": \"Adding new attributes to IssueEvent\",\n+ \"from\": \"Adding new attributes to IssueEvent Object (DO NOT MERGE - SEE NOTES)\",\n },\n )\n self.assertEqual(self.event_renamed.dismissed_review, None)\n@@ -663,9 +661,9 @@ def testEvent_review_dismissed_Attributes(self):\n self.assertEqual(\n self.event_review_dismissed.dismissed_review,\n {\n- u\"dismissal_message\": u\"dismiss\",\n- u\"state\": u\"changes_requested\",\n- u\"review_id\": 145431295,\n+ \"dismissal_message\": \"dismiss\",\n+ \"state\": \"changes_requested\",\n+ \"review_id\": 145431295,\n },\n )\n self.assertEqual(self.event_review_dismissed.lock_reason, None)"},{"sha":"1006554425bd118f8fb263a950fa8e3f712c0d47","filename":"tests/Label.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FLabel.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FLabel.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FLabel.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"57a956c69cd305e83006f7bd92adcd592e87577a","filename":"tests/License.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FLicense.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FLicense.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FLicense.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Wan Liuyang #"},{"sha":"3f277f618e36eed68bebae6ae8154a75bbef1ee0","filename":"tests/Logging_.py","status":"modified","additions":1,"deletions":3,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FLogging_.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FLogging_.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FLogging_.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -62,7 +60,7 @@ def debug(\n output,\n ):\n self.verb = verb\n- self.url = \"%s://%s%s\" % (scheme, hostname, fragment)\n+ self.url = f\"{scheme}://{hostname}{fragment}\"\n self.requestHeaders = requestHeaders\n self.input = input_\n self.status = status"},{"sha":"bc19651f45f777ab44b63f9bcea1538ed8dbd367","filename":"tests/Markdown.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FMarkdown.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FMarkdown.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FMarkdown.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"f503a6d275c244fe81dab39c63d8e6d9ab970bd8","filename":"tests/Migration.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FMigration.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FMigration.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FMigration.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"82da26894cacdee6beaea46cf151c0fed1ea9a25","filename":"tests/Milestone.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FMilestone.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FMilestone.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FMilestone.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"42dba7bcc3a664666e86de3e9bef6022ad1db137","filename":"tests/NamedUser.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FNamedUser.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FNamedUser.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FNamedUser.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"bd7804dcfc555efb945760f0e236b2638423f986","filename":"tests/NamedUser1430.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FNamedUser1430.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FNamedUser1430.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FNamedUser1430.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Anuj Bansal #"},{"sha":"44f937f2335c0cfd2b8c8f99ff7544f9e099c9f5","filename":"tests/Notification.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FNotification.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FNotification.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FNotification.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"de59a52383750e66175c213e542a7aa8fbea711f","filename":"tests/Organization.py","status":"modified","additions":2,"deletions":4,"changes":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FOrganization.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FOrganization.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FOrganization.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -389,8 +387,8 @@ def testInviteUserAsNonOwner(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/orgs/members/#create-organization-invitation\",\n- u\"message\": u\"You must be an admin to create an invitation to an organization.\",\n+ \"documentation_url\": \"https://developer.github.com/v3/orgs/members/#create-organization-invitation\",\n+ \"message\": \"You must be an admin to create an invitation to an organization.\",\n },\n )\n "},{"sha":"55bea2436e4b3e2a53950c0ed7263ffe4e9c00b4","filename":"tests/Organization1437.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FOrganization1437.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FOrganization1437.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FOrganization1437.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Anuj Bansal #"},{"sha":"5977198f413ead1f4cba0c76cbf428702c16f67a","filename":"tests/OrganizationHasInMembers.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FOrganizationHasInMembers.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FOrganizationHasInMembers.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FOrganizationHasInMembers.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2016 Matthew Neal #"},{"sha":"ae06e90257846a448d228f98660a6a5f5e291b38","filename":"tests/PaginatedList.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPaginatedList.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPaginatedList.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPaginatedList.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"e5e45ae35d033ca0623c38f1062193cc214b20d8","filename":"tests/Persistence.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPersistence.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPersistence.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPersistence.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"489e0846fe7fe45a2e387d0886a20f53b309c1c6","filename":"tests/Project.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FProject.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FProject.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FProject.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n # ########################## Copyrights and license ############################\n # #\n # Copyright 2018 bbi-yggy #"},{"sha":"63ba64e1f02c2c0e6c2998b992841948be6a30d3","filename":"tests/Project1434.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FProject1434.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FProject1434.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FProject1434.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n # ########################## Copyrights and license ############################\n # #\n # Copyright 2020 Anuj Bansal #"},{"sha":"7df02fa58a5cad870c959a9244844ef128281d52","filename":"tests/ProjectColumn.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FProjectColumn.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FProjectColumn.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FProjectColumn.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n # ########################## Copyrights and license ############################\n # #\n # This file is part of PyGithub. #"},{"sha":"a52dd3ca526d18b606ce2853d73a4f29d54f18be","filename":"tests/PullRequest.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequest.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"3570500567dee9a96a819028731a33b63d12d7be","filename":"tests/PullRequest1168.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1168.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1168.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequest1168.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Olof-Joachim Frahm #"},{"sha":"dd7730d38cc7680148142c6126d2dabe2af2b5b0","filename":"tests/PullRequest1169.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1169.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1169.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequest1169.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Olof-Joachim Frahm #"},{"sha":"21a698368d0a49174e5e311da4b4a983bfcac5f0","filename":"tests/PullRequest1375.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1375.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1375.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequest1375.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Olof-Joachim Frahm #"},{"sha":"29006b8c4dbdca6ae7de5b53ed00de68eed2e9d7","filename":"tests/PullRequest1682.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1682.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1682.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequest1682.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\r\n-\r\n ############################ Copyrights and license ############################\r\n # #\r\n # Copyright 2020 Victor Zeng #\r"},{"sha":"2c9bb454061201e18d28a0f840533c17fa2f70d8","filename":"tests/PullRequestComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequestComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequestComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequestComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"025af8dbc5a88c682a4bfd5132cae6fc824dfa10","filename":"tests/PullRequestFile.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequestFile.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequestFile.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequestFile.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"a2e317cc462a0d3277607ffd0a8337fcf576fcc6","filename":"tests/PullRequestReview.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequestReview.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequestReview.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequestReview.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Aaron Levine #"},{"sha":"d8bd7a3b4ed1a87993cd6ff24ac36e1b3f4a9ab9","filename":"tests/RateLimiting.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRateLimiting.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRateLimiting.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FRateLimiting.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"963231b1fd0f37132fe7768db1ec47dad360b502","filename":"tests/RawData.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRawData.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRawData.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FRawData.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"a9aa619a04c960ac6fa9eaf0e906eeb9a1c6b790","filename":"tests/Reaction.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FReaction.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FReaction.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FReaction.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Nicolas Agustín Torres #"},{"sha":"d0b8af387482b241940e6fcfcf4b0b1089c6bc1a","filename":"tests/ReleaseAsset.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FReleaseAsset.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FReleaseAsset.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FReleaseAsset.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Chris McBride #"},{"sha":"88e6aa8d43fe4d51e18c48e809275933451cf9da","filename":"tests/Repository.py","status":"modified","additions":11,"deletions":13,"changes":24,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRepository.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRepository.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FRepository.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -473,8 +471,8 @@ def testCollaboratorPermissionNoPushAccess(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/collaborators/#review-a-users-permission-level\",\n- u\"message\": u\"Must have push access to view collaborator permission.\",\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/collaborators/#review-a-users-permission-level\",\n+ \"message\": \"Must have push access to view collaborator permission.\",\n },\n )\n \n@@ -1094,12 +1092,12 @@ def testGetStargazersWithDates(self):\n stargazers,\n lambda stargazer: (stargazer.starred_at, stargazer.user.login),\n [\n- (datetime.datetime(2014, 8, 13, 19, 22, 5), u\"sAlexander\"),\n- (datetime.datetime(2014, 10, 15, 5, 2, 30), u\"ThomasG77\"),\n- (datetime.datetime(2015, 4, 14, 15, 22, 40), u\"therusek\"),\n- (datetime.datetime(2015, 4, 29, 0, 9, 40), u\"athomann\"),\n- (datetime.datetime(2015, 4, 29, 14, 26, 46), u\"jcapron\"),\n- (datetime.datetime(2015, 5, 9, 19, 14, 45), u\"JoePython1\"),\n+ (datetime.datetime(2014, 8, 13, 19, 22, 5), \"sAlexander\"),\n+ (datetime.datetime(2014, 10, 15, 5, 2, 30), \"ThomasG77\"),\n+ (datetime.datetime(2015, 4, 14, 15, 22, 40), \"therusek\"),\n+ (datetime.datetime(2015, 4, 29, 0, 9, 40), \"athomann\"),\n+ (datetime.datetime(2015, 4, 29, 14, 26, 46), \"jcapron\"),\n+ (datetime.datetime(2015, 5, 9, 19, 14, 45), \"JoePython1\"),\n ],\n )\n self.assertEqual(repr(stargazers[0]), 'Stargazer(user=\"sAlexander\")')\n@@ -1248,7 +1246,7 @@ def testGetDeployments(self):\n \n def testCreateFile(self):\n newFile = \"doc/testCreateUpdateDeleteFile.md\"\n- content = \"Hello world\".encode()\n+ content = b\"Hello world\"\n author = github.InputGitAuthor(\n \"Enix Yu\", \"enix223@163.com\", \"2016-01-15T16:13:30+12:00\"\n )\n@@ -1666,7 +1664,7 @@ def testGetLicense(self):\n \n def testGetTopics(self):\n topic_list = self.repo.get_topics()\n- topic = u\"github\"\n+ topic = \"github\"\n self.assertIn(topic, topic_list)\n \n def testReplaceTopics(self):\n@@ -1691,7 +1689,7 @@ class LazyRepository(Framework.TestCase):\n def setUp(self):\n super().setUp()\n self.user = self.g.get_user()\n- self.repository_name = \"%s/%s\" % (self.user.login, \"PyGithub\")\n+ self.repository_name = \"{}/{}\".format(self.user.login, \"PyGithub\")\n \n def getLazyRepository(self):\n return self.g.get_repo(self.repository_name, lazy=True)"},{"sha":"4e290ab5d901a44e6dfead8253d02aeb871376ed","filename":"tests/RepositoryKey.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRepositoryKey.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRepositoryKey.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FRepositoryKey.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"f1c3d2d0af1f013b265408aed52ed8ecd1ec81dd","filename":"tests/RequiredPullRequestReviews.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRequiredPullRequestReviews.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRequiredPullRequestReviews.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FRequiredPullRequestReviews.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Steve Kowalik #"},{"sha":"882c57c55a0fb838921448798c49261b42d5c118","filename":"tests/RequiredStatusChecks.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRequiredStatusChecks.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRequiredStatusChecks.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FRequiredStatusChecks.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Steve Kowalik #"},{"sha":"940d405848b2609feee66e507956aa828120d423","filename":"tests/Retry.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRetry.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRetry.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FRetry.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Justin Kufro #"},{"sha":"f7e2ffe175a990f0d5b6c24981c10e6993c5bcbf","filename":"tests/Search.py","status":"modified","additions":115,"deletions":117,"changes":232,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FSearch.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FSearch.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FSearch.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2014 Vincent Jacques #\n@@ -43,41 +41,41 @@ def testPaginateSearchUsers(self):\n users,\n lambda u: u.login,\n [\n- u\"cloudhead\",\n- u\"felixge\",\n- u\"sferik\",\n- u\"rkh\",\n- u\"jezdez\",\n- u\"janl\",\n- u\"marijnh\",\n- u\"nikic\",\n- u\"igorw\",\n- u\"froschi\",\n- u\"svenfuchs\",\n- u\"omz\",\n- u\"chad\",\n- u\"bergie\",\n- u\"roidrage\",\n- u\"pcalcado\",\n- u\"durran\",\n- u\"hukl\",\n- u\"mttkay\",\n- u\"aFarkas\",\n- u\"ole\",\n- u\"hagenburger\",\n- u\"jberkel\",\n- u\"naderman\",\n- u\"joshk\",\n- u\"pudo\",\n- u\"robb\",\n- u\"josephwilk\",\n- u\"hanshuebner\",\n- u\"txus\",\n- u\"paulasmuth\",\n- u\"splitbrain\",\n- u\"langalex\",\n- u\"bendiken\",\n- u\"stefanw\",\n+ \"cloudhead\",\n+ \"felixge\",\n+ \"sferik\",\n+ \"rkh\",\n+ \"jezdez\",\n+ \"janl\",\n+ \"marijnh\",\n+ \"nikic\",\n+ \"igorw\",\n+ \"froschi\",\n+ \"svenfuchs\",\n+ \"omz\",\n+ \"chad\",\n+ \"bergie\",\n+ \"roidrage\",\n+ \"pcalcado\",\n+ \"durran\",\n+ \"hukl\",\n+ \"mttkay\",\n+ \"aFarkas\",\n+ \"ole\",\n+ \"hagenburger\",\n+ \"jberkel\",\n+ \"naderman\",\n+ \"joshk\",\n+ \"pudo\",\n+ \"robb\",\n+ \"josephwilk\",\n+ \"hanshuebner\",\n+ \"txus\",\n+ \"paulasmuth\",\n+ \"splitbrain\",\n+ \"langalex\",\n+ \"bendiken\",\n+ \"stefanw\",\n ],\n )\n self.assertEqual(users.totalCount, 6038)\n@@ -87,36 +85,36 @@ def testGetPageOnSearchUsers(self):\n self.assertEqual(\n [u.login for u in users.get_page(7)],\n [\n- u\"ursachec\",\n- u\"bitboxer\",\n- u\"fs111\",\n- u\"michenriksen\",\n- u\"witsch\",\n- u\"booo\",\n- u\"mortice\",\n- u\"r0man\",\n- u\"MikeBild\",\n- u\"mhagger\",\n- u\"bkw\",\n- u\"fwbrasil\",\n- u\"mschneider\",\n- u\"lydiapintscher\",\n- u\"asksven\",\n- u\"iamtimm\",\n- u\"sneak\",\n- u\"kr1sp1n\",\n- u\"Feh\",\n- u\"GordonLesti\",\n- u\"annismckenzie\",\n- u\"eskimoblood\",\n- u\"tsujigiri\",\n- u\"riethmayer\",\n- u\"lauritzthamsen\",\n- u\"scotchi\",\n- u\"peritor\",\n- u\"toto\",\n- u\"hwaxxer\",\n- u\"lukaszklis\",\n+ \"ursachec\",\n+ \"bitboxer\",\n+ \"fs111\",\n+ \"michenriksen\",\n+ \"witsch\",\n+ \"booo\",\n+ \"mortice\",\n+ \"r0man\",\n+ \"MikeBild\",\n+ \"mhagger\",\n+ \"bkw\",\n+ \"fwbrasil\",\n+ \"mschneider\",\n+ \"lydiapintscher\",\n+ \"asksven\",\n+ \"iamtimm\",\n+ \"sneak\",\n+ \"kr1sp1n\",\n+ \"Feh\",\n+ \"GordonLesti\",\n+ \"annismckenzie\",\n+ \"eskimoblood\",\n+ \"tsujigiri\",\n+ \"riethmayer\",\n+ \"lauritzthamsen\",\n+ \"scotchi\",\n+ \"peritor\",\n+ \"toto\",\n+ \"hwaxxer\",\n+ \"lukaszklis\",\n ],\n )\n \n@@ -128,41 +126,41 @@ def testSearchRepos(self):\n repos,\n lambda r: r.full_name,\n [\n- u\"kennethreitz/legit\",\n- u\"RuudBurger/CouchPotatoV1\",\n- u\"gelstudios/gitfiti\",\n- u\"gpjt/webgl-lessons\",\n- u\"jacquev6/PyGithub\",\n- u\"aaasen/github_globe\",\n- u\"hmason/gitmarks\",\n- u\"dnerdy/factory_boy\",\n- u\"binaryage/drydrop\",\n- u\"bgreenlee/sublime-github\",\n- u\"karan/HackerNewsAPI\",\n- u\"mfenniak/pyPdf\",\n- u\"skazhy/github-decorator\",\n- u\"llvmpy/llvmpy\",\n- u\"lexrupy/gmate\",\n- u\"ask/python-github2\",\n- u\"audreyr/cookiecutter-pypackage\",\n- u\"tabo/django-treebeard\",\n- u\"dbr/tvdb_api\",\n- u\"jchris/couchapp\",\n- u\"joeyespo/grip\",\n- u\"nigelsmall/py2neo\",\n- u\"ask/chishop\",\n- u\"sigmavirus24/github3.py\",\n- u\"jsmits/github-cli\",\n- u\"lincolnloop/django-layout\",\n- u\"amccloud/django-project-skel\",\n- u\"Stiivi/brewery\",\n- u\"webpy/webpy.github.com\",\n- u\"dustin/py-github\",\n- u\"logsol/Github-Auto-Deploy\",\n- u\"cloudkick/libcloud\",\n- u\"berkerpeksag/github-badge\",\n- u\"bitprophet/ssh\",\n- u\"azavea/OpenTreeMap\",\n+ \"kennethreitz/legit\",\n+ \"RuudBurger/CouchPotatoV1\",\n+ \"gelstudios/gitfiti\",\n+ \"gpjt/webgl-lessons\",\n+ \"jacquev6/PyGithub\",\n+ \"aaasen/github_globe\",\n+ \"hmason/gitmarks\",\n+ \"dnerdy/factory_boy\",\n+ \"binaryage/drydrop\",\n+ \"bgreenlee/sublime-github\",\n+ \"karan/HackerNewsAPI\",\n+ \"mfenniak/pyPdf\",\n+ \"skazhy/github-decorator\",\n+ \"llvmpy/llvmpy\",\n+ \"lexrupy/gmate\",\n+ \"ask/python-github2\",\n+ \"audreyr/cookiecutter-pypackage\",\n+ \"tabo/django-treebeard\",\n+ \"dbr/tvdb_api\",\n+ \"jchris/couchapp\",\n+ \"joeyespo/grip\",\n+ \"nigelsmall/py2neo\",\n+ \"ask/chishop\",\n+ \"sigmavirus24/github3.py\",\n+ \"jsmits/github-cli\",\n+ \"lincolnloop/django-layout\",\n+ \"amccloud/django-project-skel\",\n+ \"Stiivi/brewery\",\n+ \"webpy/webpy.github.com\",\n+ \"dustin/py-github\",\n+ \"logsol/Github-Auto-Deploy\",\n+ \"cloudkick/libcloud\",\n+ \"berkerpeksag/github-badge\",\n+ \"bitprophet/ssh\",\n+ \"azavea/OpenTreeMap\",\n ],\n )\n \n@@ -202,7 +200,7 @@ def testSearchTopics(self):\n self.assertListKeyBegin(\n topics,\n lambda r: r.name,\n- [u\"python\", u\"django\", u\"flask\", u\"ruby\", u\"scikit-learn\", u\"wagtail\"],\n+ [\"python\", \"django\", \"flask\", \"ruby\", \"scikit-learn\", \"wagtail\"],\n )\n \n def testPaginateSearchTopics(self):\n@@ -215,20 +213,20 @@ def testSearchCode(self):\n files,\n lambda f: f.name,\n [\n- u\"Commit.setUp.txt\",\n- u\"PullRequest.testGetFiles.txt\",\n- u\"NamedUser.testGetEvents.txt\",\n- u\"PullRequest.testCreateComment.txt\",\n- u\"PullRequestFile.setUp.txt\",\n- u\"Repository.testGetIssuesWithWildcards.txt\",\n- u\"Repository.testGetIssuesWithArguments.txt\",\n- u\"test_ebnf.cpp\",\n- u\"test_abnf.cpp\",\n- u\"PullRequestFile.py\",\n- u\"SystemCalls.py\",\n- u\"tests.py\",\n- u\"LexerTestCase.py\",\n- u\"ParserTestCase.py\",\n+ \"Commit.setUp.txt\",\n+ \"PullRequest.testGetFiles.txt\",\n+ \"NamedUser.testGetEvents.txt\",\n+ \"PullRequest.testCreateComment.txt\",\n+ \"PullRequestFile.setUp.txt\",\n+ \"Repository.testGetIssuesWithWildcards.txt\",\n+ \"Repository.testGetIssuesWithArguments.txt\",\n+ \"test_ebnf.cpp\",\n+ \"test_abnf.cpp\",\n+ \"PullRequestFile.py\",\n+ \"SystemCalls.py\",\n+ \"tests.py\",\n+ \"LexerTestCase.py\",\n+ \"ParserTestCase.py\",\n ],\n )\n self.assertEqual(files[0].repository.full_name, \"jacquev6/PyGithub\")"},{"sha":"f464d8c7756b3f15006b06a97a5554689531a010","filename":"tests/SelfHostedActionsRunner.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FSelfHostedActionsRunner.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FSelfHostedActionsRunner.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FSelfHostedActionsRunner.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\r\n-\r\n ############################ Copyrights and license ############################\r\n # #\r\n # Copyright 2020 Victor Zeng #\r"},{"sha":"4d97ac970a00ea1787d9dc65ca023be16e892ef6","filename":"tests/SourceImport.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FSourceImport.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FSourceImport.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FSourceImport.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Hayden Fuss #"},{"sha":"270e2d88a14564f6097283c84b8dbf1e792ac5fb","filename":"tests/Tag.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTag.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTag.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FTag.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"c2d9d46bff5d68844afd16b5b56030afa4b49a75","filename":"tests/Team.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTeam.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTeam.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FTeam.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"8bdfeaaf037cdf07efa1b24b42e7a36410ab969d","filename":"tests/Topic.py","status":"modified","additions":1,"deletions":3,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTopic.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTopic.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FTopic.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Adam Baratz #\n@@ -55,7 +53,7 @@ def testAllFields(self):\n self.assertEqual(topic.curated, True)\n self.assertEqual(topic.score, 7576.306)\n \n- self.assertEqual(topic.__repr__(), u'Topic(name=\"python\")')\n+ self.assertEqual(topic.__repr__(), 'Topic(name=\"python\")')\n \n def testNamesFromSearchResults(self):\n expected_names = ["},{"sha":"7dfe6dcc7421df0b3a81f06d31b220d6557a8baf","filename":"tests/Traffic.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTraffic.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTraffic.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FTraffic.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Justin Kufro #"},{"sha":"36cf3d18b5e94b885a11188b72d848bd8d777015","filename":"tests/UserKey.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FUserKey.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FUserKey.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FUserKey.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"4f8ead191a6a86df5b821880cbfabc6be99de8fa","filename":"tests/Workflow.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FWorkflow.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FWorkflow.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FWorkflow.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Steve Kowalik #"},{"sha":"02054bd707942c4f02705bc83c87769e1003390b","filename":"tests/WorkflowRun.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FWorkflowRun.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FWorkflowRun.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FWorkflowRun.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Steve Kowalik #"},{"sha":"6b87e3610b80eb24a45d4bd453c42c9937d8ae7d","filename":"tests/__init__.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2F__init__.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2F__init__.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2F__init__.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"2d5c77f33a288f18a9b73114572de1c5c3b9ec94","filename":"tests/conftest.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2Fconftest.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2Fconftest.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2Fconftest.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Steve Kowalik #"},{"sha":"a7e67b244bb63cbaec0df7e66aa79d53924d153f","filename":"tox.ini","status":"modified","additions":1,"deletions":2,"changes":3,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tox.ini","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tox.ini","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tox.ini?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,12 +1,11 @@\n [tox]\n envlist =\n lint,\n- py{35,36,37,38,39},\n+ py{36,37,38,39},\n docs\n \n [gh-actions]\n python =\n- 3.5: py35\n 3.6: py36, docs, lint\n 3.7: py37\n 3.8: py38"}]} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/compare/v1.54...v1.54.1","html_url":"https://github.com/PyGithub/PyGithub/compare/v1.54...v1.54.1","permalink_url":"https://github.com/PyGithub/PyGithub/compare/PyGithub:951fcdf...PyGithub:34d097c","diff_url":"https://github.com/PyGithub/PyGithub/compare/v1.54...v1.54.1.diff","patch_url":"https://github.com/PyGithub/PyGithub/compare/v1.54...v1.54.1.patch","base_commit":{"sha":"951fcdf23f8c657b525dee78086bc4dfd42ef810","node_id":"MDY6Q29tbWl0MzU0NDQ5MDo5NTFmY2RmMjNmOGM2NTdiNTI1ZGVlNzgwODZiYzRkZmQ0MmVmODEw","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2020-11-30T05:43:49Z"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2020-11-30T05:43:49Z"},"message":"Publish version 1.54","tree":{"sha":"1a5bc94ff3672ddcd68c27ccbe4c12b44343bb3c","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/1a5bc94ff3672ddcd68c27ccbe4c12b44343bb3c"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810","html_url":"https://github.com/PyGithub/PyGithub/commit/951fcdf23f8c657b525dee78086bc4dfd42ef810","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810/comments","author":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","site_admin":false},"committer":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","site_admin":false},"parents":[{"sha":"6d501b286e04f324bc87532003f0564624981ecb","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6d501b286e04f324bc87532003f0564624981ecb","html_url":"https://github.com/PyGithub/PyGithub/commit/6d501b286e04f324bc87532003f0564624981ecb"}]},"merge_base_commit":{"sha":"951fcdf23f8c657b525dee78086bc4dfd42ef810","node_id":"MDY6Q29tbWl0MzU0NDQ5MDo5NTFmY2RmMjNmOGM2NTdiNTI1ZGVlNzgwODZiYzRkZmQ0MmVmODEw","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2020-11-30T05:43:49Z"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2020-11-30T05:43:49Z"},"message":"Publish version 1.54","tree":{"sha":"1a5bc94ff3672ddcd68c27ccbe4c12b44343bb3c","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/1a5bc94ff3672ddcd68c27ccbe4c12b44343bb3c"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810","html_url":"https://github.com/PyGithub/PyGithub/commit/951fcdf23f8c657b525dee78086bc4dfd42ef810","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810/comments","author":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","site_admin":false},"committer":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","site_admin":false},"parents":[{"sha":"6d501b286e04f324bc87532003f0564624981ecb","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6d501b286e04f324bc87532003f0564624981ecb","html_url":"https://github.com/PyGithub/PyGithub/commit/6d501b286e04f324bc87532003f0564624981ecb"}]},"status":"ahead","ahead_by":10,"behind_by":0,"total_commits":10,"commits":[{"sha":"fab682a5ccfc275c31ec37f1f541254c7bd780f3","node_id":"MDY6Q29tbWl0MzU0NDQ5MDpmYWI2ODJhNWNjZmMyNzVjMzFlYzM3ZjFmNTQxMjU0YzdiZDc4MGYz","commit":{"author":{"name":"Pascal Hofmann","email":"mail@pascalhofmann.de","date":"2020-11-30T07:53:59Z"},"committer":{"name":"Pascal Hofmann","email":"mail@pascalhofmann.de","date":"2020-11-30T07:53:59Z"},"message":"Fix stubs file for Repository","tree":{"sha":"33a9a785fd98dc79d1033ef2e49f30e2282246f0","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/33a9a785fd98dc79d1033ef2e49f30e2282246f0"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/fab682a5ccfc275c31ec37f1f541254c7bd780f3","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/fab682a5ccfc275c31ec37f1f541254c7bd780f3","html_url":"https://github.com/PyGithub/PyGithub/commit/fab682a5ccfc275c31ec37f1f541254c7bd780f3","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/fab682a5ccfc275c31ec37f1f541254c7bd780f3/comments","author":{"login":"pascal-hofmann","id":2102878,"node_id":"MDQ6VXNlcjIxMDI4Nzg=","avatar_url":"https://avatars.githubusercontent.com/u/2102878?v=4","gravatar_id":"","url":"https://api.github.com/users/pascal-hofmann","html_url":"https://github.com/pascal-hofmann","followers_url":"https://api.github.com/users/pascal-hofmann/followers","following_url":"https://api.github.com/users/pascal-hofmann/following{/other_user}","gists_url":"https://api.github.com/users/pascal-hofmann/gists{/gist_id}","starred_url":"https://api.github.com/users/pascal-hofmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pascal-hofmann/subscriptions","organizations_url":"https://api.github.com/users/pascal-hofmann/orgs","repos_url":"https://api.github.com/users/pascal-hofmann/repos","events_url":"https://api.github.com/users/pascal-hofmann/events{/privacy}","received_events_url":"https://api.github.com/users/pascal-hofmann/received_events","type":"User","site_admin":false},"committer":{"login":"pascal-hofmann","id":2102878,"node_id":"MDQ6VXNlcjIxMDI4Nzg=","avatar_url":"https://avatars.githubusercontent.com/u/2102878?v=4","gravatar_id":"","url":"https://api.github.com/users/pascal-hofmann","html_url":"https://github.com/pascal-hofmann","followers_url":"https://api.github.com/users/pascal-hofmann/followers","following_url":"https://api.github.com/users/pascal-hofmann/following{/other_user}","gists_url":"https://api.github.com/users/pascal-hofmann/gists{/gist_id}","starred_url":"https://api.github.com/users/pascal-hofmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pascal-hofmann/subscriptions","organizations_url":"https://api.github.com/users/pascal-hofmann/orgs","repos_url":"https://api.github.com/users/pascal-hofmann/repos","events_url":"https://api.github.com/users/pascal-hofmann/events{/privacy}","received_events_url":"https://api.github.com/users/pascal-hofmann/received_events","type":"User","site_admin":false},"parents":[{"sha":"951fcdf23f8c657b525dee78086bc4dfd42ef810","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810","html_url":"https://github.com/PyGithub/PyGithub/commit/951fcdf23f8c657b525dee78086bc4dfd42ef810"}]},{"sha":"9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8","node_id":"MDY6Q29tbWl0MzU0NDQ5MDo5ZWUzYWZiMTcxNmM1NTlhMGIzYjQ0ZTA5N2MwNWY0YjE0YWUyYWI4","commit":{"author":{"name":"Pascal Hofmann","email":"mail@pascalhofmann.de","date":"2020-11-30T11:27:48Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2020-11-30T11:27:48Z"},"message":"Merge pull request #1767 from pascal-hofmann/fix-repository-stubs\n\nFix stubs file for Repository","tree":{"sha":"33a9a785fd98dc79d1033ef2e49f30e2282246f0","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/33a9a785fd98dc79d1033ef2e49f30e2282246f0"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJfxNc0CRBK7hj4Ov3rIwAAdHIIAJb9YeSv3LLlSy7Nr4nILkyn\nMqrW9cvtvnqAH81QtuHlEKShsh33hbKmx9On1lxj7VcRBiB/6cLpAEUJowq0A4zt\n341cVH9+0mbmq+eG1c5vE/vTzq5Uu2mUpvjQ89ssyEvkQ/lIvOEBNAWwJSNwQOc0\n1LcGW1OEh+xmK7SxwvPXxE6aXjBgG8wv0WtFxmhlLoDzvwPymf9qM4/eq2UF6TmU\nzMop0xhv7Kkls626P0HN7wklupth8zaOAJO9vtn8m25sZoZ8XRr2KIX9gAV6jCLW\nuV0GFogjfpya9BVCa7Lh5o6m29ruyTgqIok4rPbZA8aDhQImq243PgP1reVinok=\n=Fepr\n-----END PGP SIGNATURE-----\n","payload":"tree 33a9a785fd98dc79d1033ef2e49f30e2282246f0\nparent 951fcdf23f8c657b525dee78086bc4dfd42ef810\nparent fab682a5ccfc275c31ec37f1f541254c7bd780f3\nauthor Pascal Hofmann 1606735668 +0100\ncommitter GitHub 1606735668 +0100\n\nMerge pull request #1767 from pascal-hofmann/fix-repository-stubs\n\nFix stubs file for Repository"}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8","html_url":"https://github.com/PyGithub/PyGithub/commit/9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8/comments","author":{"login":"pascal-hofmann","id":2102878,"node_id":"MDQ6VXNlcjIxMDI4Nzg=","avatar_url":"https://avatars.githubusercontent.com/u/2102878?v=4","gravatar_id":"","url":"https://api.github.com/users/pascal-hofmann","html_url":"https://github.com/pascal-hofmann","followers_url":"https://api.github.com/users/pascal-hofmann/followers","following_url":"https://api.github.com/users/pascal-hofmann/following{/other_user}","gists_url":"https://api.github.com/users/pascal-hofmann/gists{/gist_id}","starred_url":"https://api.github.com/users/pascal-hofmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pascal-hofmann/subscriptions","organizations_url":"https://api.github.com/users/pascal-hofmann/orgs","repos_url":"https://api.github.com/users/pascal-hofmann/repos","events_url":"https://api.github.com/users/pascal-hofmann/events{/privacy}","received_events_url":"https://api.github.com/users/pascal-hofmann/received_events","type":"User","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","site_admin":false},"parents":[{"sha":"951fcdf23f8c657b525dee78086bc4dfd42ef810","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810","html_url":"https://github.com/PyGithub/PyGithub/commit/951fcdf23f8c657b525dee78086bc4dfd42ef810"},{"sha":"fab682a5ccfc275c31ec37f1f541254c7bd780f3","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/fab682a5ccfc275c31ec37f1f541254c7bd780f3","html_url":"https://github.com/PyGithub/PyGithub/commit/fab682a5ccfc275c31ec37f1f541254c7bd780f3"}]},{"sha":"a806b5233f6423e0f8dacc4d04b6d81a72689bed","node_id":"MDY6Q29tbWl0MzU0NDQ5MDphODA2YjUyMzNmNjQyM2UwZjhkYWNjNGQwNGI2ZDgxYTcyNjg5YmVk","commit":{"author":{"name":"Sébastien Besson","email":"seb.besson@gmail.com","date":"2020-11-30T23:17:18Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2020-11-30T23:17:18Z"},"message":"Revert \"Pin requests to <2.25 as well (#1757)\" (#1763)\n\n* Revert \"Pin requests to <2.25 as well (#1757)\"\r\n* Ensure httpretty is more recent than 1.0.3\r\n\r\nThis reverts commit d159425f36dc7f68766cc980e262e9287e5f111c.","tree":{"sha":"b33c2872fb923bf90b2a594aa3cd5b1898d1fc65","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b33c2872fb923bf90b2a594aa3cd5b1898d1fc65"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/a806b5233f6423e0f8dacc4d04b6d81a72689bed","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJfxX1+CRBK7hj4Ov3rIwAAdHIIAAqZsjeHvnQx2UVmlIqZaucp\naHuoyFp/5P+fgz/oKRnsINmmUcBdcjyLv0qXmgda3g87X9sx7fJh7DDK7MTlw5Ka\n07T/pY8+spaZfm7mVCVp7bh7741AE0tx/Gi2MhI6LPtFMHyCmy9ljeWCrMBvtPDc\naggmA8iGbp8XJ6ln++w2EATwyY9bxelWNgy0cwM7R1Eas/5NtVInETcCf+i9cJ3u\n5ONRvnV9oWFnd3LLD2lxJb2A2STX/IZ4WmXrFj6cb8bWwXJPfvlyK9f97H65+2/k\nRefP5cIfgdRGbd7Le71A90q3PFOpvzTMS+YGrF+l4H1OZ+t3AnqL/H2GzXHFYWY=\n=Dqlm\n-----END PGP SIGNATURE-----\n","payload":"tree b33c2872fb923bf90b2a594aa3cd5b1898d1fc65\nparent 9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8\nauthor Sébastien Besson 1606778238 +0000\ncommitter GitHub 1606778238 +1100\n\nRevert \"Pin requests to <2.25 as well (#1757)\" (#1763)\n\n* Revert \"Pin requests to <2.25 as well (#1757)\"\r\n* Ensure httpretty is more recent than 1.0.3\r\n\r\nThis reverts commit d159425f36dc7f68766cc980e262e9287e5f111c."}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a806b5233f6423e0f8dacc4d04b6d81a72689bed","html_url":"https://github.com/PyGithub/PyGithub/commit/a806b5233f6423e0f8dacc4d04b6d81a72689bed","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a806b5233f6423e0f8dacc4d04b6d81a72689bed/comments","author":{"login":"sbesson","id":1355463,"node_id":"MDQ6VXNlcjEzNTU0NjM=","avatar_url":"https://avatars.githubusercontent.com/u/1355463?v=4","gravatar_id":"","url":"https://api.github.com/users/sbesson","html_url":"https://github.com/sbesson","followers_url":"https://api.github.com/users/sbesson/followers","following_url":"https://api.github.com/users/sbesson/following{/other_user}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","organizations_url":"https://api.github.com/users/sbesson/orgs","repos_url":"https://api.github.com/users/sbesson/repos","events_url":"https://api.github.com/users/sbesson/events{/privacy}","received_events_url":"https://api.github.com/users/sbesson/received_events","type":"User","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","site_admin":false},"parents":[{"sha":"9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8","html_url":"https://github.com/PyGithub/PyGithub/commit/9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8"}]},{"sha":"63e4fae997a9a5dc8c2b56907c87c565537bb28f","node_id":"MDY6Q29tbWl0MzU0NDQ5MDo2M2U0ZmFlOTk3YTlhNWRjOGMyYjU2OTA3Yzg3YzU2NTUzN2JiMjhm","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2020-12-02T03:47:45Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2020-12-02T03:47:45Z"},"message":"Drop support for Python 3.5 (#1770)\n\nIn preperation for starting to use 3.6+ only features, stop testing\r\nPython 3.5 in our CI, and bump our minimum required version.","tree":{"sha":"fde51c1aa322cbdd646e1677d1e69fb9d0457ae7","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/fde51c1aa322cbdd646e1677d1e69fb9d0457ae7"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/63e4fae997a9a5dc8c2b56907c87c565537bb28f","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJfxw5hCRBK7hj4Ov3rIwAAdHIIADWSUehbe2GbpLdhBVQY2SZ2\nAm1ACkzu6AMNG2AfrSVrd2e8mnOUt/BEIIGT+MHxKLTbApDuEo5m7DnIs/zJJUDw\n67eDlQySTP72UHMnZNukELGffNdhQDuZh9K6SeAn/C+qS/UwrTpUo/Zk6u9joVkm\nxbgMGutpg/gi+NYDaPxwHvqlXrFyB2zLrnF/jsRIYNqvJ1XPmgPSHZ2s54ivGLep\npKqGvyA92knGAnL8PZpy6d7pbyx8DWAgGokpP3Bgm3W8YuFNPX/25d81V5RTwUHs\n4pGREUyooUHz2yjARTTwvGWXH+1KwwmRCfGkSPmNMzJYoJkeGkgNAPRLHEbgdhk=\n=n01c\n-----END PGP SIGNATURE-----\n","payload":"tree fde51c1aa322cbdd646e1677d1e69fb9d0457ae7\nparent a806b5233f6423e0f8dacc4d04b6d81a72689bed\nauthor Steve Kowalik 1606880865 +1100\ncommitter GitHub 1606880865 +1100\n\nDrop support for Python 3.5 (#1770)\n\nIn preperation for starting to use 3.6+ only features, stop testing\r\nPython 3.5 in our CI, and bump our minimum required version."}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/63e4fae997a9a5dc8c2b56907c87c565537bb28f","html_url":"https://github.com/PyGithub/PyGithub/commit/63e4fae997a9a5dc8c2b56907c87c565537bb28f","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/63e4fae997a9a5dc8c2b56907c87c565537bb28f/comments","author":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","site_admin":false},"parents":[{"sha":"a806b5233f6423e0f8dacc4d04b6d81a72689bed","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a806b5233f6423e0f8dacc4d04b6d81a72689bed","html_url":"https://github.com/PyGithub/PyGithub/commit/a806b5233f6423e0f8dacc4d04b6d81a72689bed"}]}],"files":[{"sha":"9abd22d1d5f4695912c1853cc8fb19eb15aacddc","filename":".git-blame-ignore-revs","status":"modified","additions":3,"deletions":0,"changes":3,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/.git-blame-ignore-revs","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/.git-blame-ignore-revs","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/.git-blame-ignore-revs?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -6,3 +6,6 @@\n \n # Format with new black\n 07e29fe014b7e214e72b51129fbef55468a7309d\n+\n+# Add pyupgrade to pre-commit\n+e113e37de1ec687c68337d777f3629251b35ab28"},{"sha":"38fe00ef7c4345da1fcd6da1d98cb19be523a7cd","filename":".github/workflows/ci.yml","status":"modified","additions":1,"deletions":1,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/.github%2Fworkflows%2Fci.yml","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/.github%2Fworkflows%2Fci.yml","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/.github%2Fworkflows%2Fci.yml?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -9,7 +9,7 @@ jobs:\n name: test (Python ${{ matrix.python-version }})\n strategy:\n matrix:\n- python-version: [3.5, 3.6, 3.7, 3.8, 3.9]\n+ python-version: [3.6, 3.7, 3.8, 3.9]\n steps:\n - uses: actions/checkout@v2\n - name: Set up Python"},{"sha":"e18dd1f992e60b0460831fdf3d64fe9511cd45dc","filename":".pre-commit-config.yaml","status":"modified","additions":6,"deletions":0,"changes":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/.pre-commit-config.yaml","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/.pre-commit-config.yaml","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/.pre-commit-config.yaml?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -24,3 +24,9 @@ repos:\n args:\n - --ignore-words-list=\"bloaded,nto,pullrequest,pullrequests,thi,tim,wan,Wan,chang,Chang\"\n - --quiet-level=2\n+ - repo: https://github.com/asottile/pyupgrade\n+ rev: v2.7.4\n+ hooks:\n+ - id: pyupgrade\n+ args:\n+ - --py36-plus"},{"sha":"43d33319fa66a12c3ecf956884e5a606b0430d6c","filename":"doc/changes.rst","status":"modified","additions":10,"deletions":0,"changes":10,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/doc%2Fchanges.rst","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/doc%2Fchanges.rst","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/doc%2Fchanges.rst?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -4,6 +4,16 @@ Change log\n Stable versions\n ~~~~~~~~~~~~~~~\n \n+Version 1.54.1 (December 24, 2020)\n+-----------------------------------\n+\n+* Pin pyjwt version (#1797) (31a1c007)\n+* Add pyupgrade to pre-commit configuration (#1783) (e113e37d)\n+* Fix #1731: Incorrect annotation (82c349ce)\n+* Drop support for Python 3.5 (#1770) (63e4fae9)\n+* Revert \"Pin requests to <2.25 as well (#1757)\" (#1763) (a806b523)\n+* Fix stubs file for Repository (fab682a5)\n+\n Version 1.54 (November 30, 2020)\n -----------------------------------\n **Important**"},{"sha":"b8187945593d83a2e6003075064f3e7f3f6cdebd","filename":"doc/conf.py","status":"modified","additions":6,"deletions":8,"changes":14,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/doc%2Fconf.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/doc%2Fconf.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/doc%2Fconf.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -61,8 +59,8 @@\n master_doc = \"index\"\n \n # General information about the project.\n-project = u\"PyGithub\"\n-copyright = u\"%d, Vincent Jacques\" % datetime.date.today().year\n+project = \"PyGithub\"\n+copyright = \"%d, Vincent Jacques\" % datetime.date.today().year\n \n # The version info for the project you're documenting, acts as replacement for\n # |version| and |release|, also used in various other places throughout the\n@@ -204,7 +202,7 @@\n # Grouping the document tree into LaTeX files. List of tuples\n # (source start file, target name, title, author, documentclass [howto/manual]).\n latex_documents = [\n- (\"index\", \"PyGithub.tex\", u\"PyGithub Documentation\", u\"Vincent Jacques\", \"manual\"),\n+ (\"index\", \"PyGithub.tex\", \"PyGithub Documentation\", \"Vincent Jacques\", \"manual\"),\n ]\n \n # The name of an image file (relative to this directory) to place at the top of\n@@ -232,7 +230,7 @@\n \n # One entry per manual page. List of tuples\n # (source start file, name, description, authors, manual section).\n-man_pages = [(\"index\", \"pygithub\", u\"PyGithub Documentation\", [u\"Vincent Jacques\"], 1)]\n+man_pages = [(\"index\", \"pygithub\", \"PyGithub Documentation\", [\"Vincent Jacques\"], 1)]\n \n # If true, show URL addresses after external links.\n # man_show_urls = False\n@@ -247,8 +245,8 @@\n (\n \"index\",\n \"PyGithub\",\n- u\"PyGithub Documentation\",\n- u\"Vincent Jacques\",\n+ \"PyGithub Documentation\",\n+ \"Vincent Jacques\",\n \"PyGithub\",\n \"One line description of project.\",\n \"Miscellaneous\","},{"sha":"f2fb64f468b5abcb93635bc849d69092f48a78e3","filename":"github/AccessToken.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAccessToken.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAccessToken.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FAccessToken.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Rigas Papathanasopoulos #"},{"sha":"2d1f81d920743a0ba33c078ba430283d5d8b6bc6","filename":"github/ApplicationOAuth.py","status":"modified","additions":1,"deletions":3,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FApplicationOAuth.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FApplicationOAuth.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FApplicationOAuth.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ###########################\n # #\n # Copyright 2019 Rigas Papathanasopoulos #\n@@ -75,7 +73,7 @@ def get_login_url(self, redirect_uri=None, state=None, login=None):\n parameters = urllib.parse.urlencode(parameters)\n \n base_url = \"https://github.com/login/oauth/authorize\"\n- return u\"{}?{}\".format(base_url, parameters)\n+ return f\"{base_url}?{parameters}\"\n \n def get_access_token(self, code, state=None):\n \"\"\""},{"sha":"58a5c5d6e933a4451a4a3f3babb204abb580d0b8","filename":"github/AuthenticatedUser.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAuthenticatedUser.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAuthenticatedUser.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FAuthenticatedUser.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Steve English #"},{"sha":"bbddd170d0663ac6a1151b2eb87924f6d531c488","filename":"github/Authorization.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAuthorization.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAuthorization.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FAuthorization.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"38dd650943433ed86b42c0674f50b0c0173988d6","filename":"github/AuthorizationApplication.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAuthorizationApplication.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FAuthorizationApplication.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FAuthorizationApplication.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"f723301c992529f6902bb52d24c8d1d5b8a2c80b","filename":"github/Branch.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FBranch.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FBranch.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FBranch.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"ffc364c8dfa5bc0627194187690e5c48eb4ac65a","filename":"github/BranchProtection.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FBranchProtection.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FBranchProtection.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FBranchProtection.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Steve Kowalik #"},{"sha":"9a895980289ad23c20ee682182d4af108d0ae82a","filename":"github/CheckRun.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckRun.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckRun.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCheckRun.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Dhruv Manilawala #"},{"sha":"5c7033cda9894b83e696d8e880cde3166c73265a","filename":"github/CheckRunAnnotation.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckRunAnnotation.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckRunAnnotation.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCheckRunAnnotation.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Dhruv Manilawala #"},{"sha":"3dfc02382ac738303501d2e9806ad2c980b6d0dd","filename":"github/CheckRunOutput.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckRunOutput.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckRunOutput.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCheckRunOutput.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Dhruv Manilawala #"},{"sha":"d6d67c32f6426c2c786cc5c240a245c65403d246","filename":"github/CheckSuite.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckSuite.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCheckSuite.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCheckSuite.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Raju Subramanian #"},{"sha":"bf07b60b83c9fe2a07befe1ba921f6cc58a1cb9c","filename":"github/Clones.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FClones.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FClones.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FClones.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Justin Kufro #"},{"sha":"f951589d35e368580c9e6ca419aafb63dc8c72c6","filename":"github/Commit.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommit.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommit.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCommit.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"fb420d868a30436f0953530673e709ba70828325","filename":"github/CommitCombinedStatus.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitCombinedStatus.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitCombinedStatus.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCommitCombinedStatus.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2016 Jannis Gebauer #"},{"sha":"f5eca565eede61e0d528f4ffbc1693af5eddd67e","filename":"github/CommitComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCommitComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"2a511c8a74a7d664037036ef15d55c0f2a8dd2f4","filename":"github/CommitStats.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitStats.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitStats.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCommitStats.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"b95b49e461a267862bc3892edc0f53e731d8a5be","filename":"github/CommitStatus.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitStatus.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FCommitStatus.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FCommitStatus.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"f058b7e3892f40a38fe9a38a18bdfa2463ea2f18","filename":"github/Comparison.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FComparison.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FComparison.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FComparison.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"d5cbcb7e21893bd46c1901678a5aa687c51da628","filename":"github/Consts.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FConsts.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FConsts.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FConsts.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 AKFish #"},{"sha":"8d3289aeccde1b2eb91e0559539abd1f2bf45b8c","filename":"github/ContentFile.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FContentFile.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FContentFile.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FContentFile.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"9e959d097de554c0923d68216bf7b47a9fa24ac2","filename":"github/Deployment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FDeployment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FDeployment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FDeployment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Steve Kowalik #"},{"sha":"518f0b4a8ed3bcd779eaa06ad07c8777aebd71d5","filename":"github/DeploymentStatus.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FDeploymentStatus.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FDeploymentStatus.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FDeploymentStatus.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Colby Gallup #"},{"sha":"5c7932eacbd61d53f395f48c8191aa46318a8238","filename":"github/Download.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FDownload.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FDownload.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FDownload.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"f690d802290538cc39ae9d4e14db807e1ba47a57","filename":"github/Event.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FEvent.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FEvent.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FEvent.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"cc07442cae8a3add1bbd667f527be8ddf810a4fc","filename":"github/File.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FFile.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FFile.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FFile.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"88b799a3eea219e600841d4cfff7f01bdd518371","filename":"github/Gist.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGist.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGist.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGist.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Steve English #"},{"sha":"7bf85ec504d271f6db8524b06cdc2b21e7ed7d56","filename":"github/GistComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGistComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGistComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGistComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"f540e154a56e255f5e3489206ae4ca088b477bec","filename":"github/GistFile.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGistFile.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGistFile.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGistFile.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"5cb9690895e5563ceac5d14fb794c299e9187f20","filename":"github/GistHistoryState.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGistHistoryState.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGistHistoryState.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGistHistoryState.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"56f7a32283fc9e9df31e46db11fa347626cbfaa8","filename":"github/GitAuthor.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitAuthor.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitAuthor.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitAuthor.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"c93e8c633c7f3d3a4324364425d6c27ac2fc6db9","filename":"github/GitBlob.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitBlob.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitBlob.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitBlob.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"0a7aa6d81521874afa17ca6376ce125251293196","filename":"github/GitCommit.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitCommit.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitCommit.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitCommit.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"02eb49af4126829280947ae4c6b9ebbc66e46a33","filename":"github/GitObject.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitObject.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitObject.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitObject.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"69222b7d264a36e592eb033487c028e4f1afcfd3","filename":"github/GitRef.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitRef.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitRef.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitRef.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"31a45edc0d17f80ccc1be8a26e7ba213e1182c54","filename":"github/GitRelease.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitRelease.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitRelease.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitRelease.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2015 Ed Holland #"},{"sha":"7271b55252042ba4d3337da31bedcd35a08671cd","filename":"github/GitReleaseAsset.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitReleaseAsset.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitReleaseAsset.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitReleaseAsset.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Chris McBride #"},{"sha":"eb0bf65d627933bd6131722c2b22b465b8f0c630","filename":"github/GitTag.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitTag.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitTag.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitTag.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"6afc1303a7bfe10f1487dbe39d4e1ae82bd2fdcd","filename":"github/GitTree.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitTree.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitTree.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitTree.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"9da5e0331434adea65ac8761702c547097e03430","filename":"github/GitTreeElement.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitTreeElement.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitTreeElement.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitTreeElement.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"cac31f245ebf4f7ba994cfd46122245b193e4e29","filename":"github/GithubApp.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGithubApp.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGithubApp.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGithubApp.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Raju Subramanian #"},{"sha":"4708047f708151cb6b4fa19681190925db0614ed","filename":"github/GithubException.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGithubException.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGithubException.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGithubException.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"3916153e806c51c6f2105897df8b2aabb66a9b25","filename":"github/GithubObject.py","status":"modified","additions":6,"deletions":11,"changes":17,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGithubObject.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGithubObject.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGithubObject.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -66,7 +64,7 @@ def value(self):\n )\n \n \n-class GithubObject(object):\n+class GithubObject:\n \"\"\"\n Base class for all classes representing objects returned by the API.\n \"\"\"\n@@ -233,13 +231,10 @@ def _makeDictOfStringsToClassesAttribute(self, klass, value):\n for key, element in value.items()\n ):\n return _ValuedAttribute(\n- dict(\n- (\n- key,\n- klass(self._requester, self._headers, element, completed=False),\n- )\n+ {\n+ key: klass(self._requester, self._headers, element, completed=False)\n for key, element in value.items()\n- )\n+ }\n )\n else:\n return _BadAttribute(value, {str: dict})\n@@ -269,8 +264,8 @@ def format_params(params):\n if isinstance(v, bytes):\n v = v.decode(\"utf-8\")\n if isinstance(v, str):\n- v = '\"{v}\"'.format(v=v)\n- yield u\"{k}={v}\".format(k=k, v=v)\n+ v = f'\"{v}\"'\n+ yield f\"{k}={v}\"\n \n return \"{class_name}({params})\".format(\n class_name=self.__class__.__name__,"},{"sha":"147276a997516ac17b5ec84becefb430774f5b2b","filename":"github/GitignoreTemplate.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitignoreTemplate.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FGitignoreTemplate.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FGitignoreTemplate.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"346dc04c82009bf0125a86f003c45815da7fab4a","filename":"github/Hook.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FHook.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FHook.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FHook.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"44ec8af423c65966669e387b3b04ccb9dd854963","filename":"github/HookDescription.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FHookDescription.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FHookDescription.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FHookDescription.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"a491ef30bfa0219c44e16f934a2dd440e7166549","filename":"github/HookResponse.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FHookResponse.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FHookResponse.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FHookResponse.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"3289d18716b0b3a46c7dc08b6b497213672b14a3","filename":"github/InputFileContent.py","status":"modified","additions":1,"deletions":3,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInputFileContent.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInputFileContent.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FInputFileContent.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -31,7 +29,7 @@\n import github.GithubObject\n \n \n-class InputFileContent(object):\n+class InputFileContent:\n \"\"\"\n This class represents InputFileContents\n \"\"\""},{"sha":"b53fd46d9d55dfdc8d8a53b79fad1e1a153ceb71","filename":"github/InputGitAuthor.py","status":"modified","additions":2,"deletions":4,"changes":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInputGitAuthor.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInputGitAuthor.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FInputGitAuthor.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -33,7 +31,7 @@\n import github.GithubObject\n \n \n-class InputGitAuthor(object):\n+class InputGitAuthor:\n \"\"\"\n This class represents InputGitAuthors\n \"\"\"\n@@ -56,7 +54,7 @@ def __init__(self, name, email, date=github.GithubObject.NotSet):\n self.__date = date\n \n def __repr__(self):\n- return 'InputGitAuthor(name=\"{}\")'.format(self.__name)\n+ return f'InputGitAuthor(name=\"{self.__name}\")'\n \n @property\n def _identity(self):"},{"sha":"909250c56c746918b4b5daf2060bfcb2697663f7","filename":"github/InputGitTreeElement.py","status":"modified","additions":1,"deletions":3,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInputGitTreeElement.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInputGitTreeElement.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FInputGitTreeElement.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -31,7 +29,7 @@\n import github.GithubObject\n \n \n-class InputGitTreeElement(object):\n+class InputGitTreeElement:\n \"\"\"\n This class represents InputGitTreeElements\n \"\"\""},{"sha":"5ec7550304c2ef20c84d0256c892691ea006a206","filename":"github/Installation.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInstallation.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInstallation.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FInstallation.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Jannis Gebauer #"},{"sha":"06c695f9aedb24a5429bf58a88e37ff1a71c68fe","filename":"github/InstallationAuthorization.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInstallationAuthorization.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInstallationAuthorization.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FInstallationAuthorization.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2016 Jannis Gebauer #"},{"sha":"d246dcfb8e1d5aec8c96a9a69afdce430e3f3f6f","filename":"github/Invitation.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInvitation.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FInvitation.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FInvitation.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Jannis Gebauer #"},{"sha":"078f21828c650ca54a5ef12abb4496bfdf66700d","filename":"github/Issue.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssue.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssue.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FIssue.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Andrew Bettison #"},{"sha":"85162b0dfebd0e1ae6768374817f06ed79462779","filename":"github/IssueComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssueComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssueComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FIssueComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"35456e868651fc0a11115e15978cd6f928d3e020","filename":"github/IssueEvent.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssueEvent.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssueEvent.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FIssueEvent.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"b7d73da6f918ecfb6ed7e2b1193c2267962f4e4c","filename":"github/IssuePullRequest.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssuePullRequest.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FIssuePullRequest.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FIssuePullRequest.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"881ce014d0704727ffecb8975ee8fdd22c2f40a6","filename":"github/Label.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FLabel.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FLabel.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FLabel.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"c604037985b92b5d8515c878b4abc9a5ab50b38a","filename":"github/License.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FLicense.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FLicense.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FLicense.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Wan Liuyang #"},{"sha":"ceac54e0f02acd44eac56f1b468c67c8532898d2","filename":"github/MainClass.py","status":"modified","additions":18,"deletions":20,"changes":38,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMainClass.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMainClass.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FMainClass.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 AKFish #\n@@ -90,7 +88,7 @@\n DEFAULT_PER_PAGE = 30\n \n \n-class Github(object):\n+class Github:\n \"\"\"\n This is the main class you instantiate to access the Github API v3. Optional parameters allow different authentication methods.\n \"\"\"\n@@ -339,13 +337,13 @@ def get_repo(self, full_name_or_id, lazy=False):\n \"\"\"\n assert isinstance(full_name_or_id, (str, int)), full_name_or_id\n url_base = \"/repositories/\" if isinstance(full_name_or_id, int) else \"/repos/\"\n- url = \"%s%s\" % (url_base, full_name_or_id)\n+ url = f\"{url_base}{full_name_or_id}\"\n if lazy:\n return Repository.Repository(\n self.__requester, {}, {\"url\": url}, completed=False\n )\n headers, data = self.__requester.requestJsonAndCheck(\n- \"GET\", \"%s%s\" % (url_base, full_name_or_id)\n+ \"GET\", f\"{url_base}{full_name_or_id}\"\n )\n return Repository.Repository(self.__requester, headers, data, completed=True)\n \n@@ -431,7 +429,7 @@ def search_repositories(\n query,\n sort=github.GithubObject.NotSet,\n order=github.GithubObject.NotSet,\n- **qualifiers\n+ **qualifiers,\n ):\n \"\"\"\n :calls: `GET /search/repositories `_\n@@ -459,7 +457,7 @@ def search_repositories(\n query_chunks.append(query)\n \n for qualifier, value in qualifiers.items():\n- query_chunks.append(\"%s:%s\" % (qualifier, value))\n+ query_chunks.append(f\"{qualifier}:{value}\")\n \n url_parameters[\"q\"] = \" \".join(query_chunks)\n assert url_parameters[\"q\"], \"need at least one qualifier\"\n@@ -476,7 +474,7 @@ def search_users(\n query,\n sort=github.GithubObject.NotSet,\n order=github.GithubObject.NotSet,\n- **qualifiers\n+ **qualifiers,\n ):\n \"\"\"\n :calls: `GET /search/users `_\n@@ -500,7 +498,7 @@ def search_users(\n query_chunks.append(query)\n \n for qualifier, value in qualifiers.items():\n- query_chunks.append(\"%s:%s\" % (qualifier, value))\n+ query_chunks.append(f\"{qualifier}:{value}\")\n \n url_parameters[\"q\"] = \" \".join(query_chunks)\n assert url_parameters[\"q\"], \"need at least one qualifier\"\n@@ -517,7 +515,7 @@ def search_issues(\n query,\n sort=github.GithubObject.NotSet,\n order=github.GithubObject.NotSet,\n- **qualifiers\n+ **qualifiers,\n ):\n \"\"\"\n :calls: `GET /search/issues `_\n@@ -541,7 +539,7 @@ def search_issues(\n query_chunks.append(query)\n \n for qualifier, value in qualifiers.items():\n- query_chunks.append(\"%s:%s\" % (qualifier, value))\n+ query_chunks.append(f\"{qualifier}:{value}\")\n \n url_parameters[\"q\"] = \" \".join(query_chunks)\n assert url_parameters[\"q\"], \"need at least one qualifier\"\n@@ -556,7 +554,7 @@ def search_code(\n sort=github.GithubObject.NotSet,\n order=github.GithubObject.NotSet,\n highlight=False,\n- **qualifiers\n+ **qualifiers,\n ):\n \"\"\"\n :calls: `GET /search/code `_\n@@ -585,7 +583,7 @@ def search_code(\n query_chunks.append(query)\n \n for qualifier, value in qualifiers.items():\n- query_chunks.append(\"%s:%s\" % (qualifier, value))\n+ query_chunks.append(f\"{qualifier}:{value}\")\n \n url_parameters[\"q\"] = \" \".join(query_chunks)\n assert url_parameters[\"q\"], \"need at least one qualifier\"\n@@ -605,7 +603,7 @@ def search_commits(\n query,\n sort=github.GithubObject.NotSet,\n order=github.GithubObject.NotSet,\n- **qualifiers\n+ **qualifiers,\n ):\n \"\"\"\n :calls: `GET /search/commits `_\n@@ -633,7 +631,7 @@ def search_commits(\n query_chunks.append(query)\n \n for qualifier, value in qualifiers.items():\n- query_chunks.append(\"%s:%s\" % (qualifier, value))\n+ query_chunks.append(f\"{qualifier}:{value}\")\n \n url_parameters[\"q\"] = \" \".join(query_chunks)\n assert url_parameters[\"q\"], \"need at least one qualifier\"\n@@ -661,7 +659,7 @@ def search_topics(self, query, **qualifiers):\n query_chunks.append(query)\n \n for qualifier, value in qualifiers.items():\n- query_chunks.append(\"%s:%s\" % (qualifier, value))\n+ query_chunks.append(f\"{qualifier}:{value}\")\n \n url_parameters[\"q\"] = \" \".join(query_chunks)\n assert url_parameters[\"q\"], \"need at least one qualifier\"\n@@ -809,7 +807,7 @@ def get_app(self, slug=github.GithubObject.NotSet):\n return GithubApp.GithubApp(self.__requester, headers, data, completed=True)\n \n \n-class GithubIntegration(object):\n+class GithubIntegration:\n \"\"\"\n Main class to obtain tokens for a GitHub integration.\n \"\"\"\n@@ -858,7 +856,7 @@ def get_access_token(self, installation_id, user_id=None):\n self.base_url, installation_id\n ),\n headers={\n- \"Authorization\": \"Bearer {}\".format(self.create_jwt()),\n+ \"Authorization\": f\"Bearer {self.create_jwt()}\",\n \"Accept\": Consts.mediaTypeIntegrationPreview,\n \"User-Agent\": \"PyGithub/Python\",\n },\n@@ -892,13 +890,13 @@ def get_installation(self, owner, repo):\n :rtype: :class:`github.Installation.Installation`\n \"\"\"\n headers = {\n- \"Authorization\": \"Bearer {}\".format(self.create_jwt()),\n+ \"Authorization\": f\"Bearer {self.create_jwt()}\",\n \"Accept\": Consts.mediaTypeIntegrationPreview,\n \"User-Agent\": \"PyGithub/Python\",\n }\n \n response = requests.get(\n- \"{}/repos/{}/{}/installation\".format(self.base_url, owner, repo),\n+ f\"{self.base_url}/repos/{owner}/{repo}/installation\",\n headers=headers,\n )\n response_dict = response.json()"},{"sha":"6eccb3431a1ab4664388f8dca734499a8a8eb5eb","filename":"github/Membership.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMembership.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMembership.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FMembership.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Steve English #"},{"sha":"642de5f7ddbcb9086907042da89b70eee5b186e2","filename":"github/Migration.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMigration.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMigration.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FMigration.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"3f3f9829216bbf3d6bf0b95366dddd1ec9ddc1bd","filename":"github/Milestone.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMilestone.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FMilestone.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FMilestone.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"98e4e29d1b9497117e98ef9dcc0faa8c818d5214","filename":"github/NamedUser.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FNamedUser.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FNamedUser.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FNamedUser.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Steve English #"},{"sha":"7f427c8b384dc3389b4322d7d0f2d5431834be3c","filename":"github/Notification.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FNotification.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FNotification.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FNotification.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 AKFish #"},{"sha":"9be34885156bf63e7b71fb55962c1dd446443da8","filename":"github/NotificationSubject.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FNotificationSubject.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FNotificationSubject.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FNotificationSubject.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 AKFish #"},{"sha":"3354a636b82a5b8d7dc09ed9e4103328bc5180e5","filename":"github/Organization.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FOrganization.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FOrganization.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FOrganization.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Steve English #"},{"sha":"8542e31df48579be5dee928702d9eb96bfe89af6","filename":"github/PaginatedList.py","status":"modified","additions":2,"deletions":6,"changes":8,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPaginatedList.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPaginatedList.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPaginatedList.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -53,12 +51,10 @@ def __getitem__(self, index):\n return self._Slice(self, index)\n \n def __iter__(self):\n- for element in self.__elements:\n- yield element\n+ yield from self.__elements\n while self._couldGrow():\n newElements = self._grow()\n- for element in newElements:\n- yield element\n+ yield from newElements\n \n def _isBiggerThan(self, index):\n return len(self.__elements) > index or self._couldGrow()"},{"sha":"89b9564a85a289881f605ce716a455f5dd1d16e9","filename":"github/Path.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPath.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPath.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPath.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Justin Kufro #"},{"sha":"bd62f0dc92afc74c91ffe01b3769e430738a4000","filename":"github/Permissions.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPermissions.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPermissions.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPermissions.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"6bbbbfe3e8d240a88bc4b54b57a20523efb30ea7","filename":"github/Plan.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPlan.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPlan.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPlan.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"9757f74f742da0387241950a2ecc3f8dd1709a86","filename":"github/Project.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FProject.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FProject.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FProject.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 bbi-yggy #"},{"sha":"97b8561c66dd07b832a865747da464ac6347b100","filename":"github/ProjectCard.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FProjectCard.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FProjectCard.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FProjectCard.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 bbi-yggy #"},{"sha":"21e312e2cc9728e934effd7ec1376fb91009c22f","filename":"github/ProjectColumn.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FProjectColumn.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FProjectColumn.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FProjectColumn.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 bbi-yggy #"},{"sha":"1306f304e12e212ac26ff0827821613fadde74df","filename":"github/PullRequest.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequest.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequest.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPullRequest.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Michael Stead #"},{"sha":"597a85ad4af0180bdf8c8408028225c1c93b1026","filename":"github/PullRequest.pyi","status":"modified","additions":4,"deletions":4,"changes":8,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequest.pyi","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequest.pyi","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPullRequest.pyi?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -61,16 +61,16 @@ class PullRequest(CompletableGithubObject):\n ) -> PullRequestComment: ...\n def create_review_request(\n self,\n- reviewers: Union[_NotSetType, str] = ...,\n- team_reviewers: Union[_NotSetType, str] = ...,\n+ reviewers: Union[_NotSetType, List[str]] = ...,\n+ team_reviewers: Union[_NotSetType, List[str]] = ...,\n ) -> None: ...\n @property\n def created_at(self) -> datetime: ...\n def delete_labels(self) -> None: ...\n def delete_review_request(\n self,\n- reviewers: Union[_NotSetType, str] = ...,\n- team_reviewers: Union[_NotSetType, str] = ...,\n+ reviewers: Union[_NotSetType, List[str]] = ...,\n+ team_reviewers: Union[_NotSetType, List[str]] = ...,\n ) -> None: ...\n @property\n def deletions(self) -> int: ..."},{"sha":"ae2b4b0e3a55ede25f3b8ef430c72882ea224eb4","filename":"github/PullRequestComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPullRequestComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"3ec124e5875baf52a0e72e3c8ce9b42c3d218ecd","filename":"github/PullRequestMergeStatus.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestMergeStatus.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestMergeStatus.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPullRequestMergeStatus.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"94ab3f3770ee3b2a8784931ef8c6efd34c4ceb8e","filename":"github/PullRequestPart.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestPart.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestPart.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPullRequestPart.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"8b217c0df1e1d8840a355a546935e04aa0839ab0","filename":"github/PullRequestReview.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestReview.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FPullRequestReview.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FPullRequestReview.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Aaron Levine #"},{"sha":"70b46769f7949071ede8981f50565d39283a3fc0","filename":"github/Rate.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRate.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRate.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRate.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"b40c47808eeb18b7de463d7db59bed24ce0b8e3c","filename":"github/RateLimit.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRateLimit.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRateLimit.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRateLimit.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"59089a0a6e7948d8c21b5b2d2e6701d26a8c875b","filename":"github/Reaction.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FReaction.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FReaction.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FReaction.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Nicolas Agustín Torres #"},{"sha":"7a0d03c64017a06082bbf0719fe65c20fed2877f","filename":"github/Referrer.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FReferrer.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FReferrer.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FReferrer.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Justin Kufro #"},{"sha":"19f5e945b034bbb1f8162a8a8533f87d152b3505","filename":"github/Repository.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepository.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepository.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRepository.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Christopher Gilbert #"},{"sha":"6476147858965cc86e67753bf261f7ad504695b4","filename":"github/Repository.pyi","status":"modified","additions":4,"deletions":1,"changes":5,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepository.pyi","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepository.pyi","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRepository.pyi?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -259,6 +259,8 @@ class Repository(CompletableGithubObject):\n author: Union[InputGitAuthor, _NotSetType] = ...,\n ) -> Dict[str, Union[Commit, _NotSetType]]: ...\n @property\n+ def delete_branch_on_merge(self) -> bool: ...\n+ @property\n def deployments_url(self) -> str: ...\n @property\n def description(self) -> str: ...\n@@ -331,7 +333,7 @@ class Repository(CompletableGithubObject):\n def get_contributors(\n self, anon: Union[str, _NotSetType] = ...\n ) -> PaginatedList[NamedUser]: ...\n- def get_deployment(self, id_: int) -> Any: ...\n+ def get_deployment(self, id_: int) -> Deployment: ...\n def get_deployments(\n self,\n sha: Union[str, _NotSetType] = ...,\n@@ -351,6 +353,7 @@ class Repository(CompletableGithubObject):\n ) -> Repository: ...\n def get_git_blob(self, sha: str) -> GitBlob: ...\n def get_git_commit(self, sha: str) -> GitCommit: ...\n+ def get_git_matching_refs(self, ref: str) -> PaginatedList[GitRef]: ...\n def get_git_ref(self, ref: str) -> GitRef: ...\n def get_git_refs(self) -> PaginatedList[GitRef]: ...\n def get_git_tag(self, sha: str) -> GitTag: ..."},{"sha":"2ff72e14980bb890bc077df37317eccb28d467cd","filename":"github/RepositoryKey.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepositoryKey.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepositoryKey.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRepositoryKey.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"467264e0d19cca105b8e66d1508ba9dd30e501b6","filename":"github/RepositoryPreferences.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepositoryPreferences.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRepositoryPreferences.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRepositoryPreferences.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Dhruv Manilawala #"},{"sha":"8842e3ed0c86cd3500572436b311fd2aa2230dfa","filename":"github/Requester.py","status":"modified","additions":5,"deletions":7,"changes":12,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRequester.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRequester.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRequester.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Andrew Bettison #\n@@ -81,7 +79,7 @@ def read(self):\n return self.text\n \n \n-class HTTPSRequestsConnectionClass(object):\n+class HTTPSRequestsConnectionClass:\n # mimic the httplib connection object\n def __init__(\n self, host, port=None, strict=False, timeout=None, retry=None, **kwargs\n@@ -106,7 +104,7 @@ def request(self, verb, url, input, headers):\n \n def getresponse(self):\n verb = getattr(self.session, self.verb.lower())\n- url = \"%s://%s:%s%s\" % (self.protocol, self.host, self.port, self.url)\n+ url = f\"{self.protocol}://{self.host}:{self.port}{self.url}\"\n r = verb(\n url,\n headers=self.headers,\n@@ -121,7 +119,7 @@ def close(self):\n return\n \n \n-class HTTPRequestsConnectionClass(object):\n+class HTTPRequestsConnectionClass:\n # mimic the httplib connection object\n def __init__(\n self, host, port=None, strict=False, timeout=None, retry=None, **kwargs\n@@ -146,7 +144,7 @@ def request(self, verb, url, input, headers):\n \n def getresponse(self):\n verb = getattr(self.session, self.verb.lower())\n- url = \"%s://%s:%s%s\" % (self.protocol, self.host, self.port, self.url)\n+ url = f\"{self.protocol}://{self.host}:{self.port}{self.url}\"\n r = verb(\n url,\n headers=self.headers,\n@@ -513,7 +511,7 @@ def __requestRaw(self, cnx, verb, url, requestHeaders, input):\n response = cnx.getresponse()\n \n status = response.status\n- responseHeaders = dict((k.lower(), v) for k, v in response.getheaders())\n+ responseHeaders = {k.lower(): v for k, v in response.getheaders()}\n output = response.read()\n \n cnx.close()"},{"sha":"70ef469a02c74e29ad6d708ed98ed69a51016922","filename":"github/RequiredPullRequestReviews.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRequiredPullRequestReviews.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRequiredPullRequestReviews.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRequiredPullRequestReviews.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Steve Kowalik #"},{"sha":"5dc0a4603cacb0b4f7b8ce18e02caea3ed95a62a","filename":"github/RequiredStatusChecks.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRequiredStatusChecks.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FRequiredStatusChecks.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FRequiredStatusChecks.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Steve Kowalik #"},{"sha":"1d3a434dd27943d5b7ef664778e682ae9bc8c8b3","filename":"github/SelfHostedActionsRunner.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FSelfHostedActionsRunner.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FSelfHostedActionsRunner.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FSelfHostedActionsRunner.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\r\n-\r\n ############################ Copyrights and license ############################\r\n # #\r\n # Copyright 2020 Victor Zeng #\r"},{"sha":"88c32af21e43b486f6d09d8687f58601fda03314","filename":"github/SourceImport.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FSourceImport.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FSourceImport.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FSourceImport.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Hayden Fuss #"},{"sha":"fa50b803f4525cc97c40f67f69608eca9e2d2837","filename":"github/Stargazer.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStargazer.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStargazer.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FStargazer.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2015 Dan Vanderkam #"},{"sha":"eb950b3cd3d427b0517bc9ff2763f0320966a3c5","filename":"github/StatsCodeFrequency.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsCodeFrequency.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsCodeFrequency.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FStatsCodeFrequency.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"712232a5cba436a950390f1a332f135bd391dfaf","filename":"github/StatsCommitActivity.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsCommitActivity.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsCommitActivity.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FStatsCommitActivity.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"e8d16028eb3e9a8a4d76a612f5c4956ecee5ad63","filename":"github/StatsContributor.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsContributor.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsContributor.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FStatsContributor.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"fc41c0f510a95a7fb81c0df16f80186f7e7a4b84","filename":"github/StatsParticipation.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsParticipation.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsParticipation.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FStatsParticipation.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"5aa30163735d1d5ad03233c0f5961e011466f07d","filename":"github/StatsPunchCard.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsPunchCard.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FStatsPunchCard.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FStatsPunchCard.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"591bab2b7420542942c670c038fbbf79cbb955c5","filename":"github/Tag.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTag.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTag.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FTag.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"d2bac9d0c1ec2da86ce9c1414627a3427226db32","filename":"github/Team.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTeam.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTeam.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FTeam.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"62f8c4f4a46f5ebee5b43d5d6f7b73265786a22d","filename":"github/TeamDiscussion.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTeamDiscussion.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTeamDiscussion.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FTeamDiscussion.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Adam Baratz #"},{"sha":"2607da9835b5ed04ffcb1f71f36e26e8ce03fba4","filename":"github/TimelineEvent.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTimelineEvent.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTimelineEvent.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FTimelineEvent.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Nick Campbell #"},{"sha":"cecaa09d7fd984ebd3596530c8229ba47e7b1703","filename":"github/TimelineEventSource.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTimelineEventSource.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTimelineEventSource.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FTimelineEventSource.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Nick Campbell #"},{"sha":"d58837ab741237dc112d8a6bd6c9bf85f3f236ee","filename":"github/Topic.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTopic.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FTopic.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FTopic.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Steve Kowalik #"},{"sha":"3ac1dde575737fce45a0e2fc8ff2da87d720b20f","filename":"github/UserKey.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FUserKey.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FUserKey.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FUserKey.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"5f643bcc3dd97e718505e270387a950ce216009e","filename":"github/View.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FView.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FView.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FView.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Justin Kufro #"},{"sha":"d5b7d448ff016bec167d740385f59bcedcba5bce","filename":"github/Workflow.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FWorkflow.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FWorkflow.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FWorkflow.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Steve Kowalik #"},{"sha":"3631f6e2dab7a6b8cbf761209817719b16ba86fa","filename":"github/WorkflowRun.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2FWorkflowRun.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2FWorkflowRun.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2FWorkflowRun.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Steve Kowalik #"},{"sha":"c978fbe999cb9b0073ffebe701d1821e3b608bc1","filename":"github/__init__.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github%2F__init__.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/github%2F__init__.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/github%2F__init__.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"cac1930fe56305c0913b6f17e1841a0be1d39174","filename":"requirements.txt","status":"modified","additions":2,"deletions":2,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/requirements.txt","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/requirements.txt","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/requirements.txt?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,5 @@\n-requests>=2.14.0,<2.25\n-pyjwt\n+requests>=2.14.0\n+pyjwt<2.0\n sphinx<3\n sphinx-rtd-theme<0.6\n Deprecated"},{"sha":"d8b29be2e07d3e44646e442ea1d60ff161658d0c","filename":"scripts/add_attribute.py","status":"modified","additions":0,"deletions":1,"changes":1,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/scripts%2Fadd_attribute.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/scripts%2Fadd_attribute.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/scripts%2Fadd_attribute.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,4 @@\n #!/usr/bin/env python\n-# -*- coding: utf-8 -*-\n \n ############################ Copyrights and license ############################\n # #"},{"sha":"f7c0fccd1fac061578872af6523b61b7d89d0de0","filename":"scripts/fix_headers.py","status":"modified","additions":0,"deletions":1,"changes":1,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/scripts%2Ffix_headers.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/scripts%2Ffix_headers.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/scripts%2Ffix_headers.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,4 @@\n #!/usr/bin/env python\n-# -*- coding: utf-8 -*-\n \n ############################ Copyrights and license ############################\n # #"},{"sha":"e67d154b15af7bbf362310adc39814e39ff06bc1","filename":"setup.py","status":"modified","additions":4,"deletions":6,"changes":10,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/setup.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/setup.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/setup.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,4 @@\n #!/usr/bin/env python\n-# -*- coding: utf-8 -*-\n \n ############################ Copyrights and license ############################\n # #\n@@ -45,7 +44,7 @@\n \n import setuptools\n \n-version = \"1.54\"\n+version = \"1.54.1\"\n \n \n if __name__ == \"__main__\":\n@@ -92,15 +91,14 @@\n \"Operating System :: OS Independent\",\n \"Programming Language :: Python\",\n \"Programming Language :: Python :: 3\",\n- \"Programming Language :: Python :: 3.5\",\n \"Programming Language :: Python :: 3.6\",\n \"Programming Language :: Python :: 3.7\",\n \"Programming Language :: Python :: 3.8\",\n \"Programming Language :: Python :: 3.9\",\n \"Topic :: Software Development\",\n ],\n- python_requires=\">=3.5\",\n- install_requires=[\"deprecated\", \"pyjwt\", \"requests>=2.14.0,<2.25\"],\n+ python_requires=\">=3.6\",\n+ install_requires=[\"deprecated\", \"pyjwt<2.0\", \"requests>=2.14.0\"],\n extras_require={\"integrations\": [\"cryptography\"]},\n- tests_require=[\"cryptography\", \"httpretty>=0.9.6\"],\n+ tests_require=[\"cryptography\", \"httpretty>=1.0.3\"],\n )"},{"sha":"f87e113a4fa19cb48bc60bc6b56416e5fb72a52e","filename":"test-requirements.txt","status":"modified","additions":1,"deletions":1,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/test-requirements.txt","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/test-requirements.txt","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/test-requirements.txt?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,4 +1,4 @@\n cryptography\n-httpretty>=0.9.6\n+httpretty>=1.0.3\n pytest>=5.3\n pytest-cov>=2.8"},{"sha":"ce374d54ae35693ae76215a7bb98e9274ea18f6f","filename":"tests/ApplicationOAuth.py","status":"modified","additions":4,"deletions":6,"changes":10,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FApplicationOAuth.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FApplicationOAuth.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FApplicationOAuth.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Rigas Papathanasopoulos #\n@@ -37,14 +35,14 @@ def testLoginURL(self):\n sample_uri = \"https://myapp.com/some/path\"\n sample_uri_encoded = \"https%3A%2F%2Fmyapp.com%2Fsome%2Fpath\"\n self.assertEqual(\n- self.app.get_login_url(), \"{}?client_id={}\".format(BASE_URL, self.CLIENT_ID)\n+ self.app.get_login_url(), f\"{BASE_URL}?client_id={self.CLIENT_ID}\"\n )\n self.assertTrue(\n- \"redirect_uri={}\".format(sample_uri_encoded)\n+ f\"redirect_uri={sample_uri_encoded}\"\n in self.app.get_login_url(redirect_uri=sample_uri)\n )\n self.assertTrue(\n- \"client_id={}\".format(self.CLIENT_ID)\n+ f\"client_id={self.CLIENT_ID}\"\n in self.app.get_login_url(redirect_uri=sample_uri)\n )\n self.assertTrue(\n@@ -54,7 +52,7 @@ def testLoginURL(self):\n \"login=user\" in self.app.get_login_url(state=\"123abc\", login=\"user\")\n )\n self.assertTrue(\n- \"client_id={}\".format(self.CLIENT_ID)\n+ f\"client_id={self.CLIENT_ID}\"\n in self.app.get_login_url(state=\"123abc\", login=\"user\")\n )\n "},{"sha":"79e1052807622521ef84537a8eeebc61bb0af30f","filename":"tests/AuthenticatedUser.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FAuthenticatedUser.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FAuthenticatedUser.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FAuthenticatedUser.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"dec6b9f39054471ac51d8ff52887efc294cad575","filename":"tests/Authentication.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FAuthentication.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FAuthentication.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FAuthentication.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"2e05cb7d36c8d2b17f22012b90684c9f2d4e4cff","filename":"tests/Authorization.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FAuthorization.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FAuthorization.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FAuthorization.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"4aba0284765ccf698f217ff24b67a05f34fc3f30","filename":"tests/BadAttributes.py","status":"modified","additions":143,"deletions":145,"changes":288,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FBadAttributes.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FBadAttributes.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FBadAttributes.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #\n@@ -117,149 +115,149 @@ def testIssue195(self):\n hooks,\n lambda h: h.name,\n [\n- u\"activecollab\",\n- u\"acunote\",\n- u\"agilebench\",\n- u\"agilezen\",\n- u\"amazonsns\",\n- u\"apiary\",\n- u\"apoio\",\n- u\"appharbor\",\n- u\"apropos\",\n- u\"asana\",\n- u\"backlog\",\n- u\"bamboo\",\n- u\"basecamp\",\n- u\"bcx\",\n- u\"blimp\",\n- u\"boxcar\",\n- u\"buddycloud\",\n- u\"bugherd\",\n- u\"bugly\",\n- u\"bugzilla\",\n- u\"campfire\",\n- u\"cia\",\n- u\"circleci\",\n- u\"codeclimate\",\n- u\"codeportingcsharp2java\",\n- u\"codeship\",\n- u\"coffeedocinfo\",\n- u\"conductor\",\n- u\"coop\",\n- u\"copperegg\",\n- u\"cube\",\n- u\"depending\",\n- u\"deployhq\",\n- u\"devaria\",\n- u\"docker\",\n- u\"ducksboard\",\n- u\"email\",\n- u\"firebase\",\n- u\"fisheye\",\n- u\"flowdock\",\n- u\"fogbugz\",\n- u\"freckle\",\n- u\"friendfeed\",\n- u\"gemini\",\n- u\"gemnasium\",\n- u\"geocommit\",\n- u\"getlocalization\",\n- u\"gitlive\",\n- u\"grmble\",\n- u\"grouptalent\",\n- u\"grove\",\n- u\"habitualist\",\n- u\"hakiri\",\n- u\"hall\",\n- u\"harvest\",\n- u\"hipchat\",\n- u\"hostedgraphite\",\n- u\"hubcap\",\n- u\"hubci\",\n- u\"humbug\",\n- u\"icescrum\",\n- u\"irc\",\n- u\"irker\",\n- u\"ironmq\",\n- u\"ironworker\",\n- u\"jabber\",\n- u\"jaconda\",\n- u\"jeapie\",\n- u\"jenkins\",\n- u\"jenkinsgit\",\n- u\"jira\",\n- u\"jqueryplugins\",\n- u\"kanbanery\",\n- u\"kickoff\",\n- u\"leanto\",\n- u\"lechat\",\n- u\"lighthouse\",\n- u\"lingohub\",\n- u\"loggly\",\n- u\"mantisbt\",\n- u\"masterbranch\",\n- u\"mqttpub\",\n- u\"nma\",\n- u\"nodejitsu\",\n- u\"notifo\",\n- u\"ontime\",\n- u\"pachube\",\n- u\"packagist\",\n- u\"phraseapp\",\n- u\"pivotaltracker\",\n- u\"planbox\",\n- u\"planio\",\n- u\"prowl\",\n- u\"puppetlinter\",\n- u\"pushalot\",\n- u\"pushover\",\n- u\"pythonpackages\",\n- u\"railsbp\",\n- u\"railsbrakeman\",\n- u\"rally\",\n- u\"rapidpush\",\n- u\"rationaljazzhub\",\n- u\"rationalteamconcert\",\n- u\"rdocinfo\",\n- u\"readthedocs\",\n- u\"redmine\",\n- u\"rubyforge\",\n- u\"scrumdo\",\n- u\"shiningpanda\",\n- u\"sifter\",\n- u\"simperium\",\n- u\"slatebox\",\n- u\"snowyevening\",\n- u\"socialcast\",\n- u\"softlayermessaging\",\n- u\"sourcemint\",\n- u\"splendidbacon\",\n- u\"sprintly\",\n- u\"sqsqueue\",\n- u\"stackmob\",\n- u\"statusnet\",\n- u\"talker\",\n- u\"targetprocess\",\n- u\"tddium\",\n- u\"teamcity\",\n- u\"tender\",\n- u\"tenxer\",\n- u\"testpilot\",\n- u\"toggl\",\n- u\"trac\",\n- u\"trajectory\",\n- u\"travis\",\n- u\"trello\",\n- u\"twilio\",\n- u\"twitter\",\n- u\"unfuddle\",\n- u\"web\",\n- u\"weblate\",\n- u\"webtranslateit\",\n- u\"yammer\",\n- u\"youtrack\",\n- u\"zendesk\",\n- u\"zohoprojects\",\n+ \"activecollab\",\n+ \"acunote\",\n+ \"agilebench\",\n+ \"agilezen\",\n+ \"amazonsns\",\n+ \"apiary\",\n+ \"apoio\",\n+ \"appharbor\",\n+ \"apropos\",\n+ \"asana\",\n+ \"backlog\",\n+ \"bamboo\",\n+ \"basecamp\",\n+ \"bcx\",\n+ \"blimp\",\n+ \"boxcar\",\n+ \"buddycloud\",\n+ \"bugherd\",\n+ \"bugly\",\n+ \"bugzilla\",\n+ \"campfire\",\n+ \"cia\",\n+ \"circleci\",\n+ \"codeclimate\",\n+ \"codeportingcsharp2java\",\n+ \"codeship\",\n+ \"coffeedocinfo\",\n+ \"conductor\",\n+ \"coop\",\n+ \"copperegg\",\n+ \"cube\",\n+ \"depending\",\n+ \"deployhq\",\n+ \"devaria\",\n+ \"docker\",\n+ \"ducksboard\",\n+ \"email\",\n+ \"firebase\",\n+ \"fisheye\",\n+ \"flowdock\",\n+ \"fogbugz\",\n+ \"freckle\",\n+ \"friendfeed\",\n+ \"gemini\",\n+ \"gemnasium\",\n+ \"geocommit\",\n+ \"getlocalization\",\n+ \"gitlive\",\n+ \"grmble\",\n+ \"grouptalent\",\n+ \"grove\",\n+ \"habitualist\",\n+ \"hakiri\",\n+ \"hall\",\n+ \"harvest\",\n+ \"hipchat\",\n+ \"hostedgraphite\",\n+ \"hubcap\",\n+ \"hubci\",\n+ \"humbug\",\n+ \"icescrum\",\n+ \"irc\",\n+ \"irker\",\n+ \"ironmq\",\n+ \"ironworker\",\n+ \"jabber\",\n+ \"jaconda\",\n+ \"jeapie\",\n+ \"jenkins\",\n+ \"jenkinsgit\",\n+ \"jira\",\n+ \"jqueryplugins\",\n+ \"kanbanery\",\n+ \"kickoff\",\n+ \"leanto\",\n+ \"lechat\",\n+ \"lighthouse\",\n+ \"lingohub\",\n+ \"loggly\",\n+ \"mantisbt\",\n+ \"masterbranch\",\n+ \"mqttpub\",\n+ \"nma\",\n+ \"nodejitsu\",\n+ \"notifo\",\n+ \"ontime\",\n+ \"pachube\",\n+ \"packagist\",\n+ \"phraseapp\",\n+ \"pivotaltracker\",\n+ \"planbox\",\n+ \"planio\",\n+ \"prowl\",\n+ \"puppetlinter\",\n+ \"pushalot\",\n+ \"pushover\",\n+ \"pythonpackages\",\n+ \"railsbp\",\n+ \"railsbrakeman\",\n+ \"rally\",\n+ \"rapidpush\",\n+ \"rationaljazzhub\",\n+ \"rationalteamconcert\",\n+ \"rdocinfo\",\n+ \"readthedocs\",\n+ \"redmine\",\n+ \"rubyforge\",\n+ \"scrumdo\",\n+ \"shiningpanda\",\n+ \"sifter\",\n+ \"simperium\",\n+ \"slatebox\",\n+ \"snowyevening\",\n+ \"socialcast\",\n+ \"softlayermessaging\",\n+ \"sourcemint\",\n+ \"splendidbacon\",\n+ \"sprintly\",\n+ \"sqsqueue\",\n+ \"stackmob\",\n+ \"statusnet\",\n+ \"talker\",\n+ \"targetprocess\",\n+ \"tddium\",\n+ \"teamcity\",\n+ \"tender\",\n+ \"tenxer\",\n+ \"testpilot\",\n+ \"toggl\",\n+ \"trac\",\n+ \"trajectory\",\n+ \"travis\",\n+ \"trello\",\n+ \"twilio\",\n+ \"twitter\",\n+ \"unfuddle\",\n+ \"web\",\n+ \"weblate\",\n+ \"webtranslateit\",\n+ \"yammer\",\n+ \"youtrack\",\n+ \"zendesk\",\n+ \"zohoprojects\",\n ],\n )\n for hook in hooks:"},{"sha":"876d50fe8c3ea4749d8f547d06e055200fc5caff","filename":"tests/Branch.py","status":"modified","additions":18,"deletions":20,"changes":38,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FBranch.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FBranch.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FBranch.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -87,10 +85,10 @@ def testEditProtectionDismissalUsersWithUserOwnedBranch(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/branches/#update-branch-protection\",\n- u\"message\": u\"Validation Failed\",\n- u\"errors\": [\n- u\"Only organization repositories can have users and team restrictions\"\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/branches/#update-branch-protection\",\n+ \"message\": \"Validation Failed\",\n+ \"errors\": [\n+ \"Only organization repositories can have users and team restrictions\"\n ],\n },\n )\n@@ -104,10 +102,10 @@ def testEditProtectionPushRestrictionsWithUserOwnedBranch(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/branches/#update-branch-protection\",\n- u\"message\": u\"Validation Failed\",\n- u\"errors\": [\n- u\"Only organization repositories can have users and team restrictions\"\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/branches/#update-branch-protection\",\n+ \"message\": \"Validation Failed\",\n+ \"errors\": [\n+ \"Only organization repositories can have users and team restrictions\"\n ],\n },\n )\n@@ -147,8 +145,8 @@ def testRemoveProtection(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/branches/#get-branch-protection\",\n- u\"message\": u\"Branch not protected\",\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/branches/#get-branch-protection\",\n+ \"message\": \"Branch not protected\",\n },\n )\n \n@@ -166,8 +164,8 @@ def testRemoveRequiredStatusChecks(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/branches/#get-required-status-checks-of-protected-branch\",\n- u\"message\": u\"Required status checks not enabled\",\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/branches/#get-required-status-checks-of-protected-branch\",\n+ \"message\": \"Required status checks not enabled\",\n },\n )\n \n@@ -193,8 +191,8 @@ def testEditRequiredPullRequestReviewsWithTooLargeApprovingReviewCount(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/branches/#update-pull-request-review-enforcement-of-protected-branch\",\n- u\"message\": u\"Invalid request.\\n\\n9 must be less than or equal to 6.\",\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/branches/#update-pull-request-review-enforcement-of-protected-branch\",\n+ \"message\": \"Invalid request.\\n\\n9 must be less than or equal to 6.\",\n },\n )\n \n@@ -207,8 +205,8 @@ def testEditRequiredPullRequestReviewsWithUserBranchAndDismissalUsers(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/branches/#update-pull-request-review-enforcement-of-protected-branch\",\n- u\"message\": u\"Dismissal restrictions are supported only for repositories owned by an organization.\",\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/branches/#update-pull-request-review-enforcement-of-protected-branch\",\n+ \"message\": \"Dismissal restrictions are supported only for repositories owned by an organization.\",\n },\n )\n \n@@ -295,8 +293,8 @@ def testRemovePushRestrictions(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/branches/#list-team-restrictions-of-protected-branch\",\n- u\"message\": u\"Push restrictions not enabled\",\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/branches/#list-team-restrictions-of-protected-branch\",\n+ \"message\": \"Push restrictions not enabled\",\n },\n )\n "},{"sha":"65a75d21e85338d8a7d15688bbeed469eaf1756f","filename":"tests/BranchProtection.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FBranchProtection.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FBranchProtection.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FBranchProtection.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Steve Kowalik #"},{"sha":"818371b5ab3f8e3b287e09dda55480a4ad2c83c7","filename":"tests/CheckRun.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCheckRun.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCheckRun.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FCheckRun.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Dhruv Manilawala #"},{"sha":"9dafaeb69d5fbf06172bf06bcc81ff7461e62943","filename":"tests/CheckSuite.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCheckSuite.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCheckSuite.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FCheckSuite.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Raju Subramanian #"},{"sha":"beb3d4885b8abb39b0f533b638e67fb478fac71b","filename":"tests/Commit.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommit.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommit.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FCommit.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"c51588e94135f1015d55dd84828b091e42fa423a","filename":"tests/CommitCombinedStatus.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommitCombinedStatus.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommitCombinedStatus.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FCommitCombinedStatus.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2016 Jannis Gebauer #"},{"sha":"8f1a58fb4178c0de6ac540876cc0da5263168ef2","filename":"tests/CommitComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommitComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommitComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FCommitComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"b94cf424256de155ba8b44a7b5a81a4692cf61de","filename":"tests/CommitStatus.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommitStatus.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FCommitStatus.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FCommitStatus.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"a29eefdcf85e69f11fcd3166e72201316db0cf81","filename":"tests/ConditionalRequestUpdate.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FConditionalRequestUpdate.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FConditionalRequestUpdate.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FConditionalRequestUpdate.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 AKFish #"},{"sha":"a0869d3e4d6a43b07569fd9ff90a898f29e55eb9","filename":"tests/Connection.py","status":"modified","additions":4,"deletions":6,"changes":10,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FConnection.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FConnection.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FConnection.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Adam Baratz #\n@@ -43,16 +41,16 @@\n \"\\nGET\\napi.github.com\\nNone\\n/user\\n{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\\nNone\\n200\\n[]\\n{\\\"body\\\":\\\"BODY TEXT\\\"}\\n\\n\",\n ),\n (\n- u'{\"body\":\"BODY\\xa0TEXT\"}',\n- u\"\\nGET\\napi.github.com\\nNone\\n/user\\n{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\\nNone\\n200\\n[]\\n{\\\"body\\\":\\\"BODY\\xa0TEXT\\\"}\\n\\n\",\n+ '{\"body\":\"BODY\\xa0TEXT\"}',\n+ \"\\nGET\\napi.github.com\\nNone\\n/user\\n{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\\nNone\\n200\\n[]\\n{\\\"body\\\":\\\"BODY\\xa0TEXT\\\"}\\n\\n\",\n ),\n (\n \"BODY TEXT\",\n \"\\nGET\\napi.github.com\\nNone\\n/user\\n{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\\nNone\\n200\\n[]\\nBODY TEXT\\n\\n\",\n ),\n (\n- u\"BODY\\xa0TEXT\",\n- u\"\\nGET\\napi.github.com\\nNone\\n/user\\n{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\\nNone\\n200\\n[]\\nBODY\\xa0TEXT\\n\\n\",\n+ \"BODY\\xa0TEXT\",\n+ \"\\nGET\\napi.github.com\\nNone\\n/user\\n{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\\nNone\\n200\\n[]\\nBODY\\xa0TEXT\\n\\n\",\n ),\n ],\n )"},{"sha":"1b3c61fba810c9f0b791fb2e56bbce50d75052bd","filename":"tests/ContentFile.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FContentFile.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FContentFile.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FContentFile.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"b0c2fbcb4a800e2f5c4dda05415238e5ef7a04f5","filename":"tests/Deployment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FDeployment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FDeployment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FDeployment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Steve Kowalik #"},{"sha":"0b4a2266802318f92759749d99340dc208bf09d4","filename":"tests/DeploymentStatus.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FDeploymentStatus.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FDeploymentStatus.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FDeploymentStatus.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Colby Gallup #"},{"sha":"d1c3e752702a9c9441cd67426a28ea3a66b42b38","filename":"tests/Download.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FDownload.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FDownload.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FDownload.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"b0a5ee4d9d4a1cf89daa4b840b4efd2e8d16a7ee","filename":"tests/Enterprise.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FEnterprise.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FEnterprise.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FEnterprise.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"ed2d01b7f8886407ec701fe4485cb3fda4edbb83","filename":"tests/Equality.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FEquality.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FEquality.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FEquality.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"1be98f42d4b631855b3784e2933b529d14d76d49","filename":"tests/Event.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FEvent.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FEvent.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FEvent.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"6b9edc5ee482f23e00e5ef5533584356d942d410","filename":"tests/Exceptions.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FExceptions.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FExceptions.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FExceptions.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"6a8022b582c94f83eb0cd0caa6b8f3b5da630d9a","filename":"tests/ExposeAllAttributes.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FExposeAllAttributes.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FExposeAllAttributes.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FExposeAllAttributes.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"fce12927e86852ac0dc8a6289d5bfdd071d5ba39","filename":"tests/Framework.py","status":"modified","additions":2,"deletions":4,"changes":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FFramework.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FFramework.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FFramework.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -132,7 +130,7 @@ def close(self):\n return self.__cnx.close()\n \n def __writeLine(self, line):\n- self.__file.write(str(line) + u\"\\n\")\n+ self.__file.write(str(line) + \"\\n\")\n \n \n class RecordingHttpConnection(RecordingConnection):\n@@ -314,7 +312,7 @@ def __openFile(self, mode):\n if fileName != self.__fileName:\n self.__closeReplayFileIfNeeded()\n self.__fileName = fileName\n- self.__file = io.open(self.__fileName, mode, encoding=\"utf-8\")\n+ self.__file = open(self.__fileName, mode, encoding=\"utf-8\")\n return self.__file\n \n def __closeReplayFileIfNeeded(self):"},{"sha":"a2127d3a07292ce753dac73b27fdb6e9afebbe0e","filename":"tests/Gist.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGist.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGist.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGist.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"0853fc2f6ddcff50e5a9ad667bba9452f4b3b9eb","filename":"tests/GistComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGistComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGistComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGistComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"881378fa7df621a6a891c54291e4df752ee4b1b6","filename":"tests/GitBlob.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitBlob.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitBlob.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGitBlob.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"665645374fd9ddc528d2b104b2a26eca927eeb0c","filename":"tests/GitCommit.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitCommit.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitCommit.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGitCommit.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"acb8e7cd56054834792baef1809bdc96ce758c0e","filename":"tests/GitMembership.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitMembership.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitMembership.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGitMembership.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Steve English #"},{"sha":"726d9cab95a3177ee4c0e21a10817e524220c3cd","filename":"tests/GitRef.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitRef.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitRef.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGitRef.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"6e4cc5a8afdfb0d427afc31132c1926cdeb68d94","filename":"tests/GitRelease.py","status":"modified","additions":1,"deletions":3,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitRelease.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitRelease.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGitRelease.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2015 Ed Holland #\n@@ -141,7 +139,7 @@ def testAttributes(self):\n self.assertEqual(release.author.type, \"User\")\n self.assertEqual(\n release.html_url,\n- \"https://github.com/{}/{}/releases/tag/{}\".format(user, repo_name, tag),\n+ f\"https://github.com/{user}/{repo_name}/releases/tag/{tag}\",\n )\n self.assertEqual(release.created_at, create_date)\n self.assertEqual(release.published_at, publish_date)"},{"sha":"d827282fd3385b304b6fa6d9afa1f0659e81f3a8","filename":"tests/GitTag.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitTag.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitTag.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGitTag.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"69718f2ed77322800f9982f1572d9b89eab48d0f","filename":"tests/GitTree.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitTree.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGitTree.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGitTree.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"63ea3209955486970f2e64ff248d7acfacc37f7f","filename":"tests/GithubApp.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGithubApp.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGithubApp.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGithubApp.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Raju Subramanian #"},{"sha":"272f50db45fc0011193b978b55cdda588485fdde","filename":"tests/GithubIntegration.py","status":"modified","additions":26,"deletions":26,"changes":52,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGithubIntegration.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGithubIntegration.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGithubIntegration.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -51,7 +51,7 @@ def setUp(self):\n self.origin_time = sys.modules[\"time\"].time\n sys.modules[\"time\"].time = lambda: 1550055331.7435968\n \n- class Mock(object):\n+ class Mock:\n def __init__(self):\n self.args = tuple()\n self.kwargs = dict()\n@@ -66,8 +66,8 @@ def json(self):\n @property\n def text(self):\n return (\n- u'{\"token\": \"v1.ce63424bc55028318325caac4f4c3a5378ca0038\",'\n- u'\"expires_at\": \"2019-02-13T11:10:38Z\"}'\n+ '{\"token\": \"v1.ce63424bc55028318325caac4f4c3a5378ca0038\",'\n+ '\"expires_at\": \"2019-02-13T11:10:38Z\"}'\n )\n \n def __call__(self, *args, **kwargs):\n@@ -79,7 +79,7 @@ def __call__(self, *args, **kwargs):\n self.mock = Mock()\n sys.modules[\"requests\"].post = self.mock\n \n- class GetMock(object):\n+ class GetMock:\n def __init__(self):\n self.args = tuple()\n self.kwargs = dict()\n@@ -95,28 +95,28 @@ def json(self):\n @property\n def text(self):\n return (\n- u'{\"id\":111111,\"account\":{\"login\":\"foo\",\"id\":11111111,'\n- u'\"node_id\":\"foobar\",'\n- u'\"avatar_url\":\"https://avatars3.githubusercontent.com/u/11111111?v=4\",'\n- u'\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/foo\",'\n- u'\"html_url\":\"https://github.com/foo\",'\n- u'\"followers_url\":\"https://api.github.com/users/foo/followers\",'\n- u'\"following_url\":\"https://api.github.com/users/foo/following{/other_user}\",'\n- u'\"gists_url\":\"https://api.github.com/users/foo/gists{/gist_id}\",'\n- u'\"starred_url\":\"https://api.github.com/users/foo/starred{/owner}{/repo}\",'\n- u'\"subscriptions_url\":\"https://api.github.com/users/foo/subscriptions\",'\n- u'\"organizations_url\":\"https://api.github.com/users/foo/orgs\",'\n- u'\"repos_url\":\"https://api.github.com/users/foo/repos\",'\n- u'\"events_url\":\"https://api.github.com/users/foo/events{/privacy}\",'\n- u'\"received_events_url\":\"https://api.github.com/users/foo/received_events\",'\n- u'\"type\":\"Organization\",\"site_admin\":false},\"repository_selection\":\"all\",'\n- u'\"access_tokens_url\":\"https://api.github.com/app/installations/111111/access_tokens\",'\n- u'\"repositories_url\":\"https://api.github.com/installation/repositories\",'\n- u'\"html_url\":\"https://github.com/organizations/foo/settings/installations/111111\",'\n- u'\"app_id\":11111,\"target_id\":11111111,\"target_type\":\"Organization\",'\n- u'\"permissions\":{\"issues\":\"write\",\"pull_requests\":\"write\",\"statuses\":\"write\",\"contents\":\"read\",'\n- u'\"metadata\":\"read\"},\"events\":[\"pull_request\",\"release\"],\"created_at\":\"2019-04-17T16:10:37.000Z\",'\n- u'\"updated_at\":\"2019-05-03T06:27:48.000Z\",\"single_file_name\":null}'\n+ '{\"id\":111111,\"account\":{\"login\":\"foo\",\"id\":11111111,'\n+ '\"node_id\":\"foobar\",'\n+ '\"avatar_url\":\"https://avatars3.githubusercontent.com/u/11111111?v=4\",'\n+ '\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/foo\",'\n+ '\"html_url\":\"https://github.com/foo\",'\n+ '\"followers_url\":\"https://api.github.com/users/foo/followers\",'\n+ '\"following_url\":\"https://api.github.com/users/foo/following{/other_user}\",'\n+ '\"gists_url\":\"https://api.github.com/users/foo/gists{/gist_id}\",'\n+ '\"starred_url\":\"https://api.github.com/users/foo/starred{/owner}{/repo}\",'\n+ '\"subscriptions_url\":\"https://api.github.com/users/foo/subscriptions\",'\n+ '\"organizations_url\":\"https://api.github.com/users/foo/orgs\",'\n+ '\"repos_url\":\"https://api.github.com/users/foo/repos\",'\n+ '\"events_url\":\"https://api.github.com/users/foo/events{/privacy}\",'\n+ '\"received_events_url\":\"https://api.github.com/users/foo/received_events\",'\n+ '\"type\":\"Organization\",\"site_admin\":false},\"repository_selection\":\"all\",'\n+ '\"access_tokens_url\":\"https://api.github.com/app/installations/111111/access_tokens\",'\n+ '\"repositories_url\":\"https://api.github.com/installation/repositories\",'\n+ '\"html_url\":\"https://github.com/organizations/foo/settings/installations/111111\",'\n+ '\"app_id\":11111,\"target_id\":11111111,\"target_type\":\"Organization\",'\n+ '\"permissions\":{\"issues\":\"write\",\"pull_requests\":\"write\",\"statuses\":\"write\",\"contents\":\"read\",'\n+ '\"metadata\":\"read\"},\"events\":[\"pull_request\",\"release\"],\"created_at\":\"2019-04-17T16:10:37.000Z\",'\n+ '\"updated_at\":\"2019-05-03T06:27:48.000Z\",\"single_file_name\":null}'\n )\n \n def __call__(self, *args, **kwargs):"},{"sha":"3e7027518c115761e9207dafa316ce1b2c7b68bc","filename":"tests/Github_.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGithub_.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FGithub_.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FGithub_.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"86c0257ae135e52ba4372f95077301f16d84a63d","filename":"tests/Hook.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FHook.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FHook.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FHook.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"bb2014b33325a5ff32889967f5811519ebcfa712","filename":"tests/Issue.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"6a4046aa4ffd6b51841f6a996ff45430c5a1fc5e","filename":"tests/Issue131.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue131.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue131.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue131.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"78a24452cf7eaee05881c14f4c499cdf7a29baed","filename":"tests/Issue133.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue133.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue133.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue133.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"13d971c26391346dc77bee50d471fcf8aea8d73b","filename":"tests/Issue134.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue134.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue134.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue134.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"bcc44da7bc3955ab5ead5974714787ecc504a613","filename":"tests/Issue139.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue139.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue139.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue139.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"e5433f4339514de4a25a1516b0e6da58ed6143e1","filename":"tests/Issue140.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue140.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue140.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue140.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"4f5f8fb244fa258f7c65a046c1812967fbf3e654","filename":"tests/Issue142.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue142.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue142.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue142.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"dfe55a44fa37ef82a051c70d71d9a6a37729e750","filename":"tests/Issue158.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue158.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue158.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue158.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"11b57c996ea1a46d149a9eca7b6eb9de5286f5fb","filename":"tests/Issue174.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue174.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue174.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue174.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"9aea863e1e68e1b683b1167f7af70d23be8a7698","filename":"tests/Issue214.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue214.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue214.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue214.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 David Farr #"},{"sha":"988467167f4739f70bb90f14bfc03d1c776ebf8b","filename":"tests/Issue216.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue216.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue216.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue216.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"6b46c2c71f328e160d535f513f415340f9c80c4f","filename":"tests/Issue278.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue278.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue278.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue278.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2014 Vincent Jacques #"},{"sha":"a260fe521bb1b80be5e4ee8877e3f1f67340e3dd","filename":"tests/Issue33.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue33.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue33.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue33.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"105351074187707d09ad4da0d7c6acdcad5bbe39","filename":"tests/Issue494.py","status":"modified","additions":2,"deletions":4,"changes":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue494.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue494.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue494.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2016 Sam Corbett #\n@@ -34,7 +32,7 @@ def setUp(self):\n \n def testRepr(self):\n expected = (\n- u'PullRequest(title=\"Change SetHostnameCustomizer to check if '\n- u'/etc/sysconfig/network exist…\", number=465)'\n+ 'PullRequest(title=\"Change SetHostnameCustomizer to check if '\n+ '/etc/sysconfig/network exist…\", number=465)'\n )\n self.assertEqual(self.pull.__repr__(), expected)"},{"sha":"81c7dd6f53b588772f4bd0b87a12d4cb49653c70","filename":"tests/Issue50.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue50.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue50.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue50.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"d93ca051a950887e12c2d0703174c2335e48dd1b","filename":"tests/Issue54.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue54.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue54.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue54.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"f30a738c014c204ca6fce1374a5552b66eb80c6e","filename":"tests/Issue572.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue572.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue572.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue572.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Shinichi TAMURA #"},{"sha":"11fcd49f034a24c83bfa7599dfcd15da679e725c","filename":"tests/Issue80.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue80.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue80.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue80.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"5f31412be0e1c36fa315755a3b9a8f3491e78376","filename":"tests/Issue823.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue823.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue823.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue823.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"d78e755dc9eb828ba1b8d118a23781804daa4964","filename":"tests/Issue87.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue87.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue87.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue87.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"a08e0c9dd2c5fcb4cc9c31d6540d88972095e2d5","filename":"tests/Issue937.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue937.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue937.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue937.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Vinay Hegde #"},{"sha":"59f812b656cc41437522df6ea411b06bd368746b","filename":"tests/Issue945.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue945.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssue945.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssue945.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Kelvin Wong (https://github.com/netsgnut) #"},{"sha":"f517a712edbb4da23fc2339586596e72eaf854ac","filename":"tests/IssueComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssueComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssueComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssueComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"837d7bb00cd21f352e43d0e7fc018e6fb6144d8a","filename":"tests/IssueEvent.py","status":"modified","additions":5,"deletions":7,"changes":12,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssueEvent.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FIssueEvent.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FIssueEvent.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -420,8 +418,8 @@ def testEvent_renamed_Attributes(self):\n self.assertEqual(\n self.event_renamed.rename,\n {\n- u\"to\": u\"Adding new attributes to IssueEvent\",\n- u\"from\": u\"Adding new attributes to IssueEvent Object (DO NOT MERGE - SEE NOTES)\",\n+ \"to\": \"Adding new attributes to IssueEvent\",\n+ \"from\": \"Adding new attributes to IssueEvent Object (DO NOT MERGE - SEE NOTES)\",\n },\n )\n self.assertEqual(self.event_renamed.dismissed_review, None)\n@@ -663,9 +661,9 @@ def testEvent_review_dismissed_Attributes(self):\n self.assertEqual(\n self.event_review_dismissed.dismissed_review,\n {\n- u\"dismissal_message\": u\"dismiss\",\n- u\"state\": u\"changes_requested\",\n- u\"review_id\": 145431295,\n+ \"dismissal_message\": \"dismiss\",\n+ \"state\": \"changes_requested\",\n+ \"review_id\": 145431295,\n },\n )\n self.assertEqual(self.event_review_dismissed.lock_reason, None)"},{"sha":"1006554425bd118f8fb263a950fa8e3f712c0d47","filename":"tests/Label.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FLabel.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FLabel.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FLabel.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"57a956c69cd305e83006f7bd92adcd592e87577a","filename":"tests/License.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FLicense.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FLicense.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FLicense.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Wan Liuyang #"},{"sha":"3f277f618e36eed68bebae6ae8154a75bbef1ee0","filename":"tests/Logging_.py","status":"modified","additions":1,"deletions":3,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FLogging_.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FLogging_.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FLogging_.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -62,7 +60,7 @@ def debug(\n output,\n ):\n self.verb = verb\n- self.url = \"%s://%s%s\" % (scheme, hostname, fragment)\n+ self.url = f\"{scheme}://{hostname}{fragment}\"\n self.requestHeaders = requestHeaders\n self.input = input_\n self.status = status"},{"sha":"bc19651f45f777ab44b63f9bcea1538ed8dbd367","filename":"tests/Markdown.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FMarkdown.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FMarkdown.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FMarkdown.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"f503a6d275c244fe81dab39c63d8e6d9ab970bd8","filename":"tests/Migration.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FMigration.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FMigration.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FMigration.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"82da26894cacdee6beaea46cf151c0fed1ea9a25","filename":"tests/Milestone.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FMilestone.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FMilestone.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FMilestone.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"42dba7bcc3a664666e86de3e9bef6022ad1db137","filename":"tests/NamedUser.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FNamedUser.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FNamedUser.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FNamedUser.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"bd7804dcfc555efb945760f0e236b2638423f986","filename":"tests/NamedUser1430.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FNamedUser1430.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FNamedUser1430.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FNamedUser1430.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Anuj Bansal #"},{"sha":"44f937f2335c0cfd2b8c8f99ff7544f9e099c9f5","filename":"tests/Notification.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FNotification.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FNotification.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FNotification.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"de59a52383750e66175c213e542a7aa8fbea711f","filename":"tests/Organization.py","status":"modified","additions":2,"deletions":4,"changes":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FOrganization.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FOrganization.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FOrganization.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -389,8 +387,8 @@ def testInviteUserAsNonOwner(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/orgs/members/#create-organization-invitation\",\n- u\"message\": u\"You must be an admin to create an invitation to an organization.\",\n+ \"documentation_url\": \"https://developer.github.com/v3/orgs/members/#create-organization-invitation\",\n+ \"message\": \"You must be an admin to create an invitation to an organization.\",\n },\n )\n "},{"sha":"55bea2436e4b3e2a53950c0ed7263ffe4e9c00b4","filename":"tests/Organization1437.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FOrganization1437.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FOrganization1437.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FOrganization1437.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Anuj Bansal #"},{"sha":"5977198f413ead1f4cba0c76cbf428702c16f67a","filename":"tests/OrganizationHasInMembers.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FOrganizationHasInMembers.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FOrganizationHasInMembers.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FOrganizationHasInMembers.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2016 Matthew Neal #"},{"sha":"ae06e90257846a448d228f98660a6a5f5e291b38","filename":"tests/PaginatedList.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPaginatedList.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPaginatedList.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPaginatedList.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"e5e45ae35d033ca0623c38f1062193cc214b20d8","filename":"tests/Persistence.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPersistence.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPersistence.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPersistence.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"489e0846fe7fe45a2e387d0886a20f53b309c1c6","filename":"tests/Project.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FProject.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FProject.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FProject.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n # ########################## Copyrights and license ############################\n # #\n # Copyright 2018 bbi-yggy #"},{"sha":"63ba64e1f02c2c0e6c2998b992841948be6a30d3","filename":"tests/Project1434.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FProject1434.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FProject1434.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FProject1434.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n # ########################## Copyrights and license ############################\n # #\n # Copyright 2020 Anuj Bansal #"},{"sha":"7df02fa58a5cad870c959a9244844ef128281d52","filename":"tests/ProjectColumn.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FProjectColumn.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FProjectColumn.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FProjectColumn.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n # ########################## Copyrights and license ############################\n # #\n # This file is part of PyGithub. #"},{"sha":"a52dd3ca526d18b606ce2853d73a4f29d54f18be","filename":"tests/PullRequest.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequest.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"3570500567dee9a96a819028731a33b63d12d7be","filename":"tests/PullRequest1168.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1168.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1168.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequest1168.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Olof-Joachim Frahm #"},{"sha":"dd7730d38cc7680148142c6126d2dabe2af2b5b0","filename":"tests/PullRequest1169.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1169.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1169.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequest1169.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Olof-Joachim Frahm #"},{"sha":"21a698368d0a49174e5e311da4b4a983bfcac5f0","filename":"tests/PullRequest1375.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1375.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1375.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequest1375.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Olof-Joachim Frahm #"},{"sha":"29006b8c4dbdca6ae7de5b53ed00de68eed2e9d7","filename":"tests/PullRequest1682.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1682.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequest1682.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequest1682.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\r\n-\r\n ############################ Copyrights and license ############################\r\n # #\r\n # Copyright 2020 Victor Zeng #\r"},{"sha":"2c9bb454061201e18d28a0f840533c17fa2f70d8","filename":"tests/PullRequestComment.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequestComment.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequestComment.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequestComment.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"025af8dbc5a88c682a4bfd5132cae6fc824dfa10","filename":"tests/PullRequestFile.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequestFile.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequestFile.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequestFile.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"a2e317cc462a0d3277607ffd0a8337fcf576fcc6","filename":"tests/PullRequestReview.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequestReview.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FPullRequestReview.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FPullRequestReview.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Aaron Levine #"},{"sha":"d8bd7a3b4ed1a87993cd6ff24ac36e1b3f4a9ab9","filename":"tests/RateLimiting.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRateLimiting.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRateLimiting.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FRateLimiting.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"963231b1fd0f37132fe7768db1ec47dad360b502","filename":"tests/RawData.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRawData.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRawData.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FRawData.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2013 Vincent Jacques #"},{"sha":"a9aa619a04c960ac6fa9eaf0e906eeb9a1c6b790","filename":"tests/Reaction.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FReaction.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FReaction.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FReaction.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Nicolas Agustín Torres #"},{"sha":"d0b8af387482b241940e6fcfcf4b0b1089c6bc1a","filename":"tests/ReleaseAsset.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FReleaseAsset.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FReleaseAsset.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FReleaseAsset.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2017 Chris McBride #"},{"sha":"88e6aa8d43fe4d51e18c48e809275933451cf9da","filename":"tests/Repository.py","status":"modified","additions":11,"deletions":13,"changes":24,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRepository.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRepository.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FRepository.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n@@ -473,8 +471,8 @@ def testCollaboratorPermissionNoPushAccess(self):\n self.assertEqual(\n raisedexp.exception.data,\n {\n- u\"documentation_url\": u\"https://developer.github.com/v3/repos/collaborators/#review-a-users-permission-level\",\n- u\"message\": u\"Must have push access to view collaborator permission.\",\n+ \"documentation_url\": \"https://developer.github.com/v3/repos/collaborators/#review-a-users-permission-level\",\n+ \"message\": \"Must have push access to view collaborator permission.\",\n },\n )\n \n@@ -1094,12 +1092,12 @@ def testGetStargazersWithDates(self):\n stargazers,\n lambda stargazer: (stargazer.starred_at, stargazer.user.login),\n [\n- (datetime.datetime(2014, 8, 13, 19, 22, 5), u\"sAlexander\"),\n- (datetime.datetime(2014, 10, 15, 5, 2, 30), u\"ThomasG77\"),\n- (datetime.datetime(2015, 4, 14, 15, 22, 40), u\"therusek\"),\n- (datetime.datetime(2015, 4, 29, 0, 9, 40), u\"athomann\"),\n- (datetime.datetime(2015, 4, 29, 14, 26, 46), u\"jcapron\"),\n- (datetime.datetime(2015, 5, 9, 19, 14, 45), u\"JoePython1\"),\n+ (datetime.datetime(2014, 8, 13, 19, 22, 5), \"sAlexander\"),\n+ (datetime.datetime(2014, 10, 15, 5, 2, 30), \"ThomasG77\"),\n+ (datetime.datetime(2015, 4, 14, 15, 22, 40), \"therusek\"),\n+ (datetime.datetime(2015, 4, 29, 0, 9, 40), \"athomann\"),\n+ (datetime.datetime(2015, 4, 29, 14, 26, 46), \"jcapron\"),\n+ (datetime.datetime(2015, 5, 9, 19, 14, 45), \"JoePython1\"),\n ],\n )\n self.assertEqual(repr(stargazers[0]), 'Stargazer(user=\"sAlexander\")')\n@@ -1248,7 +1246,7 @@ def testGetDeployments(self):\n \n def testCreateFile(self):\n newFile = \"doc/testCreateUpdateDeleteFile.md\"\n- content = \"Hello world\".encode()\n+ content = b\"Hello world\"\n author = github.InputGitAuthor(\n \"Enix Yu\", \"enix223@163.com\", \"2016-01-15T16:13:30+12:00\"\n )\n@@ -1666,7 +1664,7 @@ def testGetLicense(self):\n \n def testGetTopics(self):\n topic_list = self.repo.get_topics()\n- topic = u\"github\"\n+ topic = \"github\"\n self.assertIn(topic, topic_list)\n \n def testReplaceTopics(self):\n@@ -1691,7 +1689,7 @@ class LazyRepository(Framework.TestCase):\n def setUp(self):\n super().setUp()\n self.user = self.g.get_user()\n- self.repository_name = \"%s/%s\" % (self.user.login, \"PyGithub\")\n+ self.repository_name = \"{}/{}\".format(self.user.login, \"PyGithub\")\n \n def getLazyRepository(self):\n return self.g.get_repo(self.repository_name, lazy=True)"},{"sha":"4e290ab5d901a44e6dfead8253d02aeb871376ed","filename":"tests/RepositoryKey.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRepositoryKey.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRepositoryKey.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FRepositoryKey.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"f1c3d2d0af1f013b265408aed52ed8ecd1ec81dd","filename":"tests/RequiredPullRequestReviews.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRequiredPullRequestReviews.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRequiredPullRequestReviews.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FRequiredPullRequestReviews.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Steve Kowalik #"},{"sha":"882c57c55a0fb838921448798c49261b42d5c118","filename":"tests/RequiredStatusChecks.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRequiredStatusChecks.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRequiredStatusChecks.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FRequiredStatusChecks.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Steve Kowalik #"},{"sha":"940d405848b2609feee66e507956aa828120d423","filename":"tests/Retry.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRetry.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FRetry.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FRetry.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Justin Kufro #"},{"sha":"f7e2ffe175a990f0d5b6c24981c10e6993c5bcbf","filename":"tests/Search.py","status":"modified","additions":115,"deletions":117,"changes":232,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FSearch.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FSearch.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FSearch.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2014 Vincent Jacques #\n@@ -43,41 +41,41 @@ def testPaginateSearchUsers(self):\n users,\n lambda u: u.login,\n [\n- u\"cloudhead\",\n- u\"felixge\",\n- u\"sferik\",\n- u\"rkh\",\n- u\"jezdez\",\n- u\"janl\",\n- u\"marijnh\",\n- u\"nikic\",\n- u\"igorw\",\n- u\"froschi\",\n- u\"svenfuchs\",\n- u\"omz\",\n- u\"chad\",\n- u\"bergie\",\n- u\"roidrage\",\n- u\"pcalcado\",\n- u\"durran\",\n- u\"hukl\",\n- u\"mttkay\",\n- u\"aFarkas\",\n- u\"ole\",\n- u\"hagenburger\",\n- u\"jberkel\",\n- u\"naderman\",\n- u\"joshk\",\n- u\"pudo\",\n- u\"robb\",\n- u\"josephwilk\",\n- u\"hanshuebner\",\n- u\"txus\",\n- u\"paulasmuth\",\n- u\"splitbrain\",\n- u\"langalex\",\n- u\"bendiken\",\n- u\"stefanw\",\n+ \"cloudhead\",\n+ \"felixge\",\n+ \"sferik\",\n+ \"rkh\",\n+ \"jezdez\",\n+ \"janl\",\n+ \"marijnh\",\n+ \"nikic\",\n+ \"igorw\",\n+ \"froschi\",\n+ \"svenfuchs\",\n+ \"omz\",\n+ \"chad\",\n+ \"bergie\",\n+ \"roidrage\",\n+ \"pcalcado\",\n+ \"durran\",\n+ \"hukl\",\n+ \"mttkay\",\n+ \"aFarkas\",\n+ \"ole\",\n+ \"hagenburger\",\n+ \"jberkel\",\n+ \"naderman\",\n+ \"joshk\",\n+ \"pudo\",\n+ \"robb\",\n+ \"josephwilk\",\n+ \"hanshuebner\",\n+ \"txus\",\n+ \"paulasmuth\",\n+ \"splitbrain\",\n+ \"langalex\",\n+ \"bendiken\",\n+ \"stefanw\",\n ],\n )\n self.assertEqual(users.totalCount, 6038)\n@@ -87,36 +85,36 @@ def testGetPageOnSearchUsers(self):\n self.assertEqual(\n [u.login for u in users.get_page(7)],\n [\n- u\"ursachec\",\n- u\"bitboxer\",\n- u\"fs111\",\n- u\"michenriksen\",\n- u\"witsch\",\n- u\"booo\",\n- u\"mortice\",\n- u\"r0man\",\n- u\"MikeBild\",\n- u\"mhagger\",\n- u\"bkw\",\n- u\"fwbrasil\",\n- u\"mschneider\",\n- u\"lydiapintscher\",\n- u\"asksven\",\n- u\"iamtimm\",\n- u\"sneak\",\n- u\"kr1sp1n\",\n- u\"Feh\",\n- u\"GordonLesti\",\n- u\"annismckenzie\",\n- u\"eskimoblood\",\n- u\"tsujigiri\",\n- u\"riethmayer\",\n- u\"lauritzthamsen\",\n- u\"scotchi\",\n- u\"peritor\",\n- u\"toto\",\n- u\"hwaxxer\",\n- u\"lukaszklis\",\n+ \"ursachec\",\n+ \"bitboxer\",\n+ \"fs111\",\n+ \"michenriksen\",\n+ \"witsch\",\n+ \"booo\",\n+ \"mortice\",\n+ \"r0man\",\n+ \"MikeBild\",\n+ \"mhagger\",\n+ \"bkw\",\n+ \"fwbrasil\",\n+ \"mschneider\",\n+ \"lydiapintscher\",\n+ \"asksven\",\n+ \"iamtimm\",\n+ \"sneak\",\n+ \"kr1sp1n\",\n+ \"Feh\",\n+ \"GordonLesti\",\n+ \"annismckenzie\",\n+ \"eskimoblood\",\n+ \"tsujigiri\",\n+ \"riethmayer\",\n+ \"lauritzthamsen\",\n+ \"scotchi\",\n+ \"peritor\",\n+ \"toto\",\n+ \"hwaxxer\",\n+ \"lukaszklis\",\n ],\n )\n \n@@ -128,41 +126,41 @@ def testSearchRepos(self):\n repos,\n lambda r: r.full_name,\n [\n- u\"kennethreitz/legit\",\n- u\"RuudBurger/CouchPotatoV1\",\n- u\"gelstudios/gitfiti\",\n- u\"gpjt/webgl-lessons\",\n- u\"PyGithub/PyGithub\",\n- u\"aaasen/github_globe\",\n- u\"hmason/gitmarks\",\n- u\"dnerdy/factory_boy\",\n- u\"binaryage/drydrop\",\n- u\"bgreenlee/sublime-github\",\n- u\"karan/HackerNewsAPI\",\n- u\"mfenniak/pyPdf\",\n- u\"skazhy/github-decorator\",\n- u\"llvmpy/llvmpy\",\n- u\"lexrupy/gmate\",\n- u\"ask/python-github2\",\n- u\"audreyr/cookiecutter-pypackage\",\n- u\"tabo/django-treebeard\",\n- u\"dbr/tvdb_api\",\n- u\"jchris/couchapp\",\n- u\"joeyespo/grip\",\n- u\"nigelsmall/py2neo\",\n- u\"ask/chishop\",\n- u\"sigmavirus24/github3.py\",\n- u\"jsmits/github-cli\",\n- u\"lincolnloop/django-layout\",\n- u\"amccloud/django-project-skel\",\n- u\"Stiivi/brewery\",\n- u\"webpy/webpy.github.com\",\n- u\"dustin/py-github\",\n- u\"logsol/Github-Auto-Deploy\",\n- u\"cloudkick/libcloud\",\n- u\"berkerpeksag/github-badge\",\n- u\"bitprophet/ssh\",\n- u\"azavea/OpenTreeMap\",\n+ \"kennethreitz/legit\",\n+ \"RuudBurger/CouchPotatoV1\",\n+ \"gelstudios/gitfiti\",\n+ \"gpjt/webgl-lessons\",\n+ \"PyGithub/PyGithub\",\n+ \"aaasen/github_globe\",\n+ \"hmason/gitmarks\",\n+ \"dnerdy/factory_boy\",\n+ \"binaryage/drydrop\",\n+ \"bgreenlee/sublime-github\",\n+ \"karan/HackerNewsAPI\",\n+ \"mfenniak/pyPdf\",\n+ \"skazhy/github-decorator\",\n+ \"llvmpy/llvmpy\",\n+ \"lexrupy/gmate\",\n+ \"ask/python-github2\",\n+ \"audreyr/cookiecutter-pypackage\",\n+ \"tabo/django-treebeard\",\n+ \"dbr/tvdb_api\",\n+ \"jchris/couchapp\",\n+ \"joeyespo/grip\",\n+ \"nigelsmall/py2neo\",\n+ \"ask/chishop\",\n+ \"sigmavirus24/github3.py\",\n+ \"jsmits/github-cli\",\n+ \"lincolnloop/django-layout\",\n+ \"amccloud/django-project-skel\",\n+ \"Stiivi/brewery\",\n+ \"webpy/webpy.github.com\",\n+ \"dustin/py-github\",\n+ \"logsol/Github-Auto-Deploy\",\n+ \"cloudkick/libcloud\",\n+ \"berkerpeksag/github-badge\",\n+ \"bitprophet/ssh\",\n+ \"azavea/OpenTreeMap\",\n ],\n )\n \n@@ -202,7 +200,7 @@ def testSearchTopics(self):\n self.assertListKeyBegin(\n topics,\n lambda r: r.name,\n- [u\"python\", u\"django\", u\"flask\", u\"ruby\", u\"scikit-learn\", u\"wagtail\"],\n+ [\"python\", \"django\", \"flask\", \"ruby\", \"scikit-learn\", \"wagtail\"],\n )\n \n def testPaginateSearchTopics(self):\n@@ -215,20 +213,20 @@ def testSearchCode(self):\n files,\n lambda f: f.name,\n [\n- u\"Commit.setUp.txt\",\n- u\"PullRequest.testGetFiles.txt\",\n- u\"NamedUser.testGetEvents.txt\",\n- u\"PullRequest.testCreateComment.txt\",\n- u\"PullRequestFile.setUp.txt\",\n- u\"Repository.testGetIssuesWithWildcards.txt\",\n- u\"Repository.testGetIssuesWithArguments.txt\",\n- u\"test_ebnf.cpp\",\n- u\"test_abnf.cpp\",\n- u\"PullRequestFile.py\",\n- u\"SystemCalls.py\",\n- u\"tests.py\",\n- u\"LexerTestCase.py\",\n- u\"ParserTestCase.py\",\n+ \"Commit.setUp.txt\",\n+ \"PullRequest.testGetFiles.txt\",\n+ \"NamedUser.testGetEvents.txt\",\n+ \"PullRequest.testCreateComment.txt\",\n+ \"PullRequestFile.setUp.txt\",\n+ \"Repository.testGetIssuesWithWildcards.txt\",\n+ \"Repository.testGetIssuesWithArguments.txt\",\n+ \"test_ebnf.cpp\",\n+ \"test_abnf.cpp\",\n+ \"PullRequestFile.py\",\n+ \"SystemCalls.py\",\n+ \"tests.py\",\n+ \"LexerTestCase.py\",\n+ \"ParserTestCase.py\",\n ],\n )\n self.assertEqual(files[0].repository.full_name, \"PyGithub/PyGithub\")"},{"sha":"f464d8c7756b3f15006b06a97a5554689531a010","filename":"tests/SelfHostedActionsRunner.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FSelfHostedActionsRunner.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FSelfHostedActionsRunner.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FSelfHostedActionsRunner.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\r\n-\r\n ############################ Copyrights and license ############################\r\n # #\r\n # Copyright 2020 Victor Zeng #\r"},{"sha":"4d97ac970a00ea1787d9dc65ca023be16e892ef6","filename":"tests/SourceImport.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FSourceImport.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FSourceImport.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FSourceImport.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Hayden Fuss #"},{"sha":"270e2d88a14564f6097283c84b8dbf1e792ac5fb","filename":"tests/Tag.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTag.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTag.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FTag.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"c2d9d46bff5d68844afd16b5b56030afa4b49a75","filename":"tests/Team.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTeam.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTeam.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FTeam.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"8bdfeaaf037cdf07efa1b24b42e7a36410ab969d","filename":"tests/Topic.py","status":"modified","additions":1,"deletions":3,"changes":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTopic.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTopic.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FTopic.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2019 Adam Baratz #\n@@ -55,7 +53,7 @@ def testAllFields(self):\n self.assertEqual(topic.curated, True)\n self.assertEqual(topic.score, 7576.306)\n \n- self.assertEqual(topic.__repr__(), u'Topic(name=\"python\")')\n+ self.assertEqual(topic.__repr__(), 'Topic(name=\"python\")')\n \n def testNamesFromSearchResults(self):\n expected_names = ["},{"sha":"7dfe6dcc7421df0b3a81f06d31b220d6557a8baf","filename":"tests/Traffic.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTraffic.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FTraffic.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FTraffic.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2018 Justin Kufro #"},{"sha":"36cf3d18b5e94b885a11188b72d848bd8d777015","filename":"tests/UserKey.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FUserKey.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FUserKey.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FUserKey.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"4f8ead191a6a86df5b821880cbfabc6be99de8fa","filename":"tests/Workflow.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FWorkflow.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FWorkflow.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FWorkflow.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Steve Kowalik #"},{"sha":"02054bd707942c4f02705bc83c87769e1003390b","filename":"tests/WorkflowRun.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FWorkflowRun.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2FWorkflowRun.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2FWorkflowRun.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Steve Kowalik #"},{"sha":"6b87e3610b80eb24a45d4bd453c42c9937d8ae7d","filename":"tests/__init__.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2F__init__.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2F__init__.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2F__init__.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #"},{"sha":"2d5c77f33a288f18a9b73114572de1c5c3b9ec94","filename":"tests/conftest.py","status":"modified","additions":0,"deletions":2,"changes":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tests%2Fconftest.py","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tests%2Fconftest.py","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tests%2Fconftest.py?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,5 +1,3 @@\n-# -*- coding: utf-8 -*-\n-\n ############################ Copyrights and license ############################\n # #\n # Copyright 2020 Steve Kowalik #"},{"sha":"a7e67b244bb63cbaec0df7e66aa79d53924d153f","filename":"tox.ini","status":"modified","additions":1,"deletions":2,"changes":3,"blob_url":"https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/tox.ini","raw_url":"https://github.com/PyGithub/PyGithub/raw/34d097ce473601624722b90fc5d0396011dd3acb/tox.ini","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/tox.ini?ref=34d097ce473601624722b90fc5d0396011dd3acb","patch":"@@ -1,12 +1,11 @@\n [tox]\n envlist =\n lint,\n- py{35,36,37,38,39},\n+ py{36,37,38,39},\n docs\n \n [gh-actions]\n python =\n- 3.5: py35\n 3.6: py36, docs, lint\n 3.7: py37\n 3.8: py38"}]} https GET diff --git a/tests/ReplayData/Repository.testCreateAutolink.txt b/tests/ReplayData/Repository.testCreateAutolink.txt index b1a25f00e1..bfe71ab74f 100644 --- a/tests/ReplayData/Repository.testCreateAutolink.txt +++ b/tests/ReplayData/Repository.testCreateAutolink.txt @@ -2,7 +2,7 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/autolinks +/repos/PyGithub/PyGithub/autolinks {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"key_prefix": "DUMMY-", "url_template": "https://github.com/PyGithub/PyGithub/issues/"} 201 diff --git a/tests/ReplayData/Repository.testCreateDeployment.txt b/tests/ReplayData/Repository.testCreateDeployment.txt index ee33818012..1d7254b4e1 100644 --- a/tests/ReplayData/Repository.testCreateDeployment.txt +++ b/tests/ReplayData/Repository.testCreateDeployment.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/deployments +/repos/PyGithub/PyGithub/deployments {'Accept': 'application/vnd.github.ant-man-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"ref": "743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5", "task": "deploy", "auto_merge": false, "required_contexts": [], "payload": {"test": true}, "environment": "test", "description": "Test deployment", "transient_environment": true, "production_environment": false} 201 -[('Date', 'Mon, 31 Aug 2020 07:21:10 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1691'), ('Server', 'GitHub.com'), ('Status', '201 Created'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', '"495f04c40f50b78b91de2a29a8918207"'), ('Last-Modified', 'Mon, 31 Aug 2020 07:21:10 GMT'), ('X-OAuth-Scopes', 'repo_deployment'), ('X-Accepted-OAuth-Scopes', ''), ('Location', 'https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258'), ('X-GitHub-Media-Type', 'github.ant-man-preview; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4993'), ('X-RateLimit-Reset', '1598861786'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', 'FB51:2C9E:D80A0F2:105065C6:5F4CA4E6')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258","id":263877258,"node_id":"MDEwOkRlcGxveW1lbnQyNjM4NzcyNTg=","sha":"743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","ref":"743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","task":"deploy","payload":{"test":true},"original_environment":"test","environment":"test","description":"Test deployment","creator":{"login":"pascal-hofmann","id":2102878,"node_id":"MDQ6VXNlcjIxMDI4Nzg=","avatar_url":"https://avatars3.githubusercontent.com/u/2102878?v=4","gravatar_id":"","url":"https://api.github.com/users/pascal-hofmann","html_url":"https://github.com/pascal-hofmann","followers_url":"https://api.github.com/users/pascal-hofmann/followers","following_url":"https://api.github.com/users/pascal-hofmann/following{/other_user}","gists_url":"https://api.github.com/users/pascal-hofmann/gists{/gist_id}","starred_url":"https://api.github.com/users/pascal-hofmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pascal-hofmann/subscriptions","organizations_url":"https://api.github.com/users/pascal-hofmann/orgs","repos_url":"https://api.github.com/users/pascal-hofmann/repos","events_url":"https://api.github.com/users/pascal-hofmann/events{/privacy}","received_events_url":"https://api.github.com/users/pascal-hofmann/received_events","type":"User","site_admin":false},"created_at":"2020-08-31T07:21:10Z","updated_at":"2020-08-31T07:21:10Z","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258/statuses","repository_url":"https://api.github.com/repos/jacquev6/PyGithub","transient_environment":true,"production_environment":false,"performed_via_github_app":null} +[('Date', 'Mon, 31 Aug 2020 07:21:10 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1691'), ('Server', 'GitHub.com'), ('Status', '201 Created'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', '"495f04c40f50b78b91de2a29a8918207"'), ('Last-Modified', 'Mon, 31 Aug 2020 07:21:10 GMT'), ('X-OAuth-Scopes', 'repo_deployment'), ('X-Accepted-OAuth-Scopes', ''), ('Location', 'https://api.github.com/repos/PyGithub/PyGithub/deployments/263877258'), ('X-GitHub-Media-Type', 'github.ant-man-preview; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4993'), ('X-RateLimit-Reset', '1598861786'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', 'FB51:2C9E:D80A0F2:105065C6:5F4CA4E6')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/deployments/263877258","id":263877258,"node_id":"MDEwOkRlcGxveW1lbnQyNjM4NzcyNTg=","sha":"743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","ref":"743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","task":"deploy","payload":{"test":true},"original_environment":"test","environment":"test","description":"Test deployment","creator":{"login":"pascal-hofmann","id":2102878,"node_id":"MDQ6VXNlcjIxMDI4Nzg=","avatar_url":"https://avatars3.githubusercontent.com/u/2102878?v=4","gravatar_id":"","url":"https://api.github.com/users/pascal-hofmann","html_url":"https://github.com/pascal-hofmann","followers_url":"https://api.github.com/users/pascal-hofmann/followers","following_url":"https://api.github.com/users/pascal-hofmann/following{/other_user}","gists_url":"https://api.github.com/users/pascal-hofmann/gists{/gist_id}","starred_url":"https://api.github.com/users/pascal-hofmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pascal-hofmann/subscriptions","organizations_url":"https://api.github.com/users/pascal-hofmann/orgs","repos_url":"https://api.github.com/users/pascal-hofmann/repos","events_url":"https://api.github.com/users/pascal-hofmann/events{/privacy}","received_events_url":"https://api.github.com/users/pascal-hofmann/received_events","type":"User","site_admin":false},"created_at":"2020-08-31T07:21:10Z","updated_at":"2020-08-31T07:21:10Z","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments/263877258/statuses","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","transient_environment":true,"production_environment":false,"performed_via_github_app":null} diff --git a/tests/ReplayData/Repository.testCreateFile.txt b/tests/ReplayData/Repository.testCreateFile.txt index 80be8a7144..2ef5b82b6a 100644 --- a/tests/ReplayData/Repository.testCreateFile.txt +++ b/tests/ReplayData/Repository.testCreateFile.txt @@ -2,9 +2,9 @@ https PUT api.github.com None -/repos/jacquev6/PyGithub/contents/doc/testCreateUpdateDeleteFile.md +/repos/PyGithub/PyGithub/contents/doc/testCreateUpdateDeleteFile.md {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"author": {"date": "2016-01-15T16:13:30+12:00", "email": "enix223@163.com", "name": "Enix Yu"}, "branch": "master", "committer": {"date": "2016-01-15T16:13:30+12:00", "email": "enix223@163.com", "name": "Enix Yu"}, "content": "SGVsbG8gd29ybGQ=", "message": "Create file for testCreateFile"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4997'), ('content-length', '16'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f5cc2fa3ba4de95ac0eb8c2ca47350c0"'), ('date', 'Fri, 11 May 2012 11:43:09 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/contents/doc/testCreateUpdateDeleteFile.md')] -{"content": {"name": "hello.txt", "url": "https://api.github.com/repos/PyGithub/contents/doc/testCreateUpdateDeleteFile.md", "html_url": "https://github.com/PyGithub/doc/testCreateUpdateDeleteFile.md", "download_url": "https://raw.githubusercontent.com/PyGithub/doc/testCreateUpdateDeleteFile.md", "sha": "95b966ae1c166bd92f8ae7d1c313e738c731dfc3", "_links": {"self": "https://api.github.com/repos/PyGithub/contents/doc/testCreateUpdateDeleteFile.md", "git": "https://api.github.com/repos/PyGithub/git/blobs/95b966ae1c166bd92f8ae7d1c313e738c731dfc3", "html": "https://github.com/jacquev6/PyGithub/blob/master/doc/testCreateUpdateDeleteFile.md"}, "git_url": "https://api.github.com/repos/jacquev6/PyGithub/git/blobs/95b966ae1c166bd92f8ae7d1c313e738c731dfc3", "path": "doc/testCreateUpdateDeleteFile.md", "type": "file", "size": 9}, "commit": {"committer": {"date": "2014-11-07T22:01:45Z", "name": "Enix Yu", "email": "enix223@gmail.com"}, "author": {"date": "2016-01-15T16:13:30+12:00", "name": "Enix Yu", "email": "enix223@gmail.com"}, "url": "https://api.github.com/repos/jacquev6/PyGithub/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", "tree": {"url": "https://api.github.com/repos/jacquev6/PyGithub/git/trees/691272480426f78a0138979dd3ce63b77f706feb", "sha": "691272480426f78a0138979dd3ce63b77f706feb"}, "html_url": "https://github.com/jacquev6/PyGithub/git/commit/7638417db6d59f3c431d3e1f261cc637155684cd", "sha": "7638417db6d59f3c431d3e1f261cc637155684cd", "parents": [{"url": "https://api.github.com/repos/jacquev6/PyGithub/git/commits/1acc419d4d6a9ce985db7be48c6349a0475975b5", "sha": "1acc419d4d6a9ce985db7be48c6349a0475975b5", "html_url": "https://github.com/jacquev6/PyGithub/git/commit/1acc419d4d6a9ce985db7be48c6349a0475975b5"}]}} +[('status', '201 Created'), ('x-ratelimit-remaining', '4997'), ('content-length', '16'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f5cc2fa3ba4de95ac0eb8c2ca47350c0"'), ('date', 'Fri, 11 May 2012 11:43:09 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/contents/doc/testCreateUpdateDeleteFile.md')] +{"content": {"name": "hello.txt", "url": "https://api.github.com/repos/PyGithub/contents/doc/testCreateUpdateDeleteFile.md", "html_url": "https://github.com/PyGithub/doc/testCreateUpdateDeleteFile.md", "download_url": "https://raw.githubusercontent.com/PyGithub/doc/testCreateUpdateDeleteFile.md", "sha": "95b966ae1c166bd92f8ae7d1c313e738c731dfc3", "_links": {"self": "https://api.github.com/repos/PyGithub/contents/doc/testCreateUpdateDeleteFile.md", "git": "https://api.github.com/repos/PyGithub/git/blobs/95b966ae1c166bd92f8ae7d1c313e738c731dfc3", "html": "https://github.com/PyGithub/PyGithub/blob/master/doc/testCreateUpdateDeleteFile.md"}, "git_url": "https://api.github.com/repos/PyGithub/PyGithub/git/blobs/95b966ae1c166bd92f8ae7d1c313e738c731dfc3", "path": "doc/testCreateUpdateDeleteFile.md", "type": "file", "size": 9}, "commit": {"committer": {"date": "2014-11-07T22:01:45Z", "name": "Enix Yu", "email": "enix223@gmail.com"}, "author": {"date": "2016-01-15T16:13:30+12:00", "name": "Enix Yu", "email": "enix223@gmail.com"}, "url": "https://api.github.com/repos/PyGithub/PyGithub/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", "tree": {"url": "https://api.github.com/repos/PyGithub/PyGithub/git/trees/691272480426f78a0138979dd3ce63b77f706feb", "sha": "691272480426f78a0138979dd3ce63b77f706feb"}, "html_url": "https://github.com/PyGithub/PyGithub/git/commit/7638417db6d59f3c431d3e1f261cc637155684cd", "sha": "7638417db6d59f3c431d3e1f261cc637155684cd", "parents": [{"url": "https://api.github.com/repos/PyGithub/PyGithub/git/commits/1acc419d4d6a9ce985db7be48c6349a0475975b5", "sha": "1acc419d4d6a9ce985db7be48c6349a0475975b5", "html_url": "https://github.com/PyGithub/PyGithub/git/commit/1acc419d4d6a9ce985db7be48c6349a0475975b5"}]}} diff --git a/tests/ReplayData/Repository.testCreateFork.txt b/tests/ReplayData/Repository.testCreateFork.txt index bafeb02f98..20e462f4fd 100644 --- a/tests/ReplayData/Repository.testCreateFork.txt +++ b/tests/ReplayData/Repository.testCreateFork.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/forks +/repos/PyGithub/PyGithub/forks {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"organization": "prtg-dev"} 202 [('Date', 'Wed, 27 Nov 2019 23:00:13 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '16034'), ('Server', 'GitHub.com'), ('Status', '202 Accepted'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4932'), ('X-RateLimit-Reset', '1574899126'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', 'E2F5:3ECF:1DE67F:229B58:5DDEFFFC')] -{"id":224531141,"node_id":"MDEwOlJlcG9zaXRvcnkyMjQ1MzExNDE=","name":"PyGithub","full_name":"prtg-dev/PyGithub","private":false,"owner":{"login":"prtg-dev","id":54651306,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0NjUxMzA2","avatar_url":"https://avatars1.githubusercontent.com/u/54651306?v=4","gravatar_id":"","url":"https://api.github.com/users/prtg-dev","html_url":"https://github.com/prtg-dev","followers_url":"https://api.github.com/users/prtg-dev/followers","following_url":"https://api.github.com/users/prtg-dev/following{/other_user}","gists_url":"https://api.github.com/users/prtg-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/prtg-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prtg-dev/subscriptions","organizations_url":"https://api.github.com/users/prtg-dev/orgs","repos_url":"https://api.github.com/users/prtg-dev/repos","events_url":"https://api.github.com/users/prtg-dev/events{/privacy}","received_events_url":"https://api.github.com/users/prtg-dev/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/prtg-dev/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/prtg-dev/PyGithub","forks_url":"https://api.github.com/repos/prtg-dev/PyGithub/forks","keys_url":"https://api.github.com/repos/prtg-dev/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/prtg-dev/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/prtg-dev/PyGithub/teams","hooks_url":"https://api.github.com/repos/prtg-dev/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/prtg-dev/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/prtg-dev/PyGithub/events","assignees_url":"https://api.github.com/repos/prtg-dev/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/prtg-dev/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/prtg-dev/PyGithub/tags","blobs_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/prtg-dev/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/prtg-dev/PyGithub/languages","stargazers_url":"https://api.github.com/repos/prtg-dev/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/prtg-dev/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/prtg-dev/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/prtg-dev/PyGithub/subscription","commits_url":"https://api.github.com/repos/prtg-dev/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/prtg-dev/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/prtg-dev/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/prtg-dev/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/prtg-dev/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/prtg-dev/PyGithub/merges","archive_url":"https://api.github.com/repos/prtg-dev/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/prtg-dev/PyGithub/downloads","issues_url":"https://api.github.com/repos/prtg-dev/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/prtg-dev/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/prtg-dev/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/prtg-dev/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/prtg-dev/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/prtg-dev/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/prtg-dev/PyGithub/deployments","created_at":"2019-11-27T23:00:12Z","updated_at":"2019-11-26T22:54:53Z","pushed_at":"2019-11-27T22:40:33Z","git_url":"git://github.com/prtg-dev/PyGithub.git","ssh_url":"git@github.com:prtg-dev/PyGithub.git","clone_url":"https://github.com/prtg-dev/PyGithub.git","svn_url":"https://github.com/prtg-dev/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":12092,"stargazers_count":0,"watchers_count":0,"language":null,"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":0,"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"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"organization":{"login":"prtg-dev","id":54651306,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0NjUxMzA2","avatar_url":"https://avatars1.githubusercontent.com/u/54651306?v=4","gravatar_id":"","url":"https://api.github.com/users/prtg-dev","html_url":"https://github.com/prtg-dev","followers_url":"https://api.github.com/users/prtg-dev/followers","following_url":"https://api.github.com/users/prtg-dev/following{/other_user}","gists_url":"https://api.github.com/users/prtg-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/prtg-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prtg-dev/subscriptions","organizations_url":"https://api.github.com/users/prtg-dev/orgs","repos_url":"https://api.github.com/users/prtg-dev/repos","events_url":"https://api.github.com/users/prtg-dev/events{/privacy}","received_events_url":"https://api.github.com/users/prtg-dev/received_events","type":"Organization","site_admin":false},"parent":{"id":178836424,"node_id":"MDEwOlJlcG9zaXRvcnkxNzg4MzY0MjQ=","name":"PyGithub","full_name":"jacquev6/PyGithub","private":false,"owner":{"login":"jacquev6","id":47873678,"node_id":"MDQ6VXNlcjQ3ODczNjc4","avatar_url":"https://avatars1.githubusercontent.com/u/47873678?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"html_url":"https://github.com/jacquev6/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments","created_at":"2019-04-01T10:06:27Z","updated_at":"2019-11-26T22:54:53Z","pushed_at":"2019-11-27T22:40:33Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":12092,"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":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"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"},"forks":1,"open_issues":0,"watchers":0,"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://avatars0.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":"2019-11-27T19:00:09Z","pushed_at":"2019-11-27T22:40:35Z","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":12220,"stargazers_count":3016,"watchers_count":3016,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1001,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":57,"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"},"forks":1001,"open_issues":57,"watchers":3016,"default_branch":"master"},"network_count":1001,"subscribers_count":0} +{"id":224531141,"node_id":"MDEwOlJlcG9zaXRvcnkyMjQ1MzExNDE=","name":"PyGithub","full_name":"prtg-dev/PyGithub","private":false,"owner":{"login":"prtg-dev","id":54651306,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0NjUxMzA2","avatar_url":"https://avatars1.githubusercontent.com/u/54651306?v=4","gravatar_id":"","url":"https://api.github.com/users/prtg-dev","html_url":"https://github.com/prtg-dev","followers_url":"https://api.github.com/users/prtg-dev/followers","following_url":"https://api.github.com/users/prtg-dev/following{/other_user}","gists_url":"https://api.github.com/users/prtg-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/prtg-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prtg-dev/subscriptions","organizations_url":"https://api.github.com/users/prtg-dev/orgs","repos_url":"https://api.github.com/users/prtg-dev/repos","events_url":"https://api.github.com/users/prtg-dev/events{/privacy}","received_events_url":"https://api.github.com/users/prtg-dev/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/prtg-dev/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/prtg-dev/PyGithub","forks_url":"https://api.github.com/repos/prtg-dev/PyGithub/forks","keys_url":"https://api.github.com/repos/prtg-dev/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/prtg-dev/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/prtg-dev/PyGithub/teams","hooks_url":"https://api.github.com/repos/prtg-dev/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/prtg-dev/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/prtg-dev/PyGithub/events","assignees_url":"https://api.github.com/repos/prtg-dev/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/prtg-dev/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/prtg-dev/PyGithub/tags","blobs_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/prtg-dev/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/prtg-dev/PyGithub/languages","stargazers_url":"https://api.github.com/repos/prtg-dev/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/prtg-dev/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/prtg-dev/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/prtg-dev/PyGithub/subscription","commits_url":"https://api.github.com/repos/prtg-dev/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/prtg-dev/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/prtg-dev/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/prtg-dev/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/prtg-dev/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/prtg-dev/PyGithub/merges","archive_url":"https://api.github.com/repos/prtg-dev/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/prtg-dev/PyGithub/downloads","issues_url":"https://api.github.com/repos/prtg-dev/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/prtg-dev/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/prtg-dev/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/prtg-dev/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/prtg-dev/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/prtg-dev/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/prtg-dev/PyGithub/deployments","created_at":"2019-11-27T23:00:12Z","updated_at":"2019-11-26T22:54:53Z","pushed_at":"2019-11-27T22:40:33Z","git_url":"git://github.com/prtg-dev/PyGithub.git","ssh_url":"git@github.com:prtg-dev/PyGithub.git","clone_url":"https://github.com/prtg-dev/PyGithub.git","svn_url":"https://github.com/prtg-dev/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":12092,"stargazers_count":0,"watchers_count":0,"language":null,"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":0,"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"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"organization":{"login":"prtg-dev","id":54651306,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0NjUxMzA2","avatar_url":"https://avatars1.githubusercontent.com/u/54651306?v=4","gravatar_id":"","url":"https://api.github.com/users/prtg-dev","html_url":"https://github.com/prtg-dev","followers_url":"https://api.github.com/users/prtg-dev/followers","following_url":"https://api.github.com/users/prtg-dev/following{/other_user}","gists_url":"https://api.github.com/users/prtg-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/prtg-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prtg-dev/subscriptions","organizations_url":"https://api.github.com/users/prtg-dev/orgs","repos_url":"https://api.github.com/users/prtg-dev/repos","events_url":"https://api.github.com/users/prtg-dev/events{/privacy}","received_events_url":"https://api.github.com/users/prtg-dev/received_events","type":"Organization","site_admin":false},"parent":{"id":178836424,"node_id":"MDEwOlJlcG9zaXRvcnkxNzg4MzY0MjQ=","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"jacquev6","id":47873678,"node_id":"MDQ6VXNlcjQ3ODczNjc4","avatar_url":"https://avatars1.githubusercontent.com/u/47873678?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"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":"2019-04-01T10:06:27Z","updated_at":"2019-11-26T22:54:53Z","pushed_at":"2019-11-27T22:40:33Z","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":12092,"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":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"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"},"forks":1,"open_issues":0,"watchers":0,"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://avatars0.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":"2019-11-27T19:00:09Z","pushed_at":"2019-11-27T22:40:35Z","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":12220,"stargazers_count":3016,"watchers_count":3016,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1001,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":57,"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"},"forks":1001,"open_issues":57,"watchers":3016,"default_branch":"master"},"network_count":1001,"subscribers_count":0} diff --git a/tests/ReplayData/Repository.testCreateForkOrg.txt b/tests/ReplayData/Repository.testCreateForkOrg.txt index 801997ae9b..035722f256 100644 --- a/tests/ReplayData/Repository.testCreateForkOrg.txt +++ b/tests/ReplayData/Repository.testCreateForkOrg.txt @@ -13,9 +13,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/forks +/repos/PyGithub/PyGithub/forks {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"organization": "prtg-dev"} 202 [('Date', 'Wed, 27 Nov 2019 23:00:13 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '16034'), ('Server', 'GitHub.com'), ('Status', '202 Accepted'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4932'), ('X-RateLimit-Reset', '1574899126'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', 'E2F5:3ECF:1DE67F:229B58:5DDEFFFC')] -{"id":224531141,"node_id":"MDEwOlJlcG9zaXRvcnkyMjQ1MzExNDE=","name":"PyGithub","full_name":"prtg-dev/PyGithub","private":false,"owner":{"login":"prtg-dev","id":54651306,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0NjUxMzA2","avatar_url":"https://avatars1.githubusercontent.com/u/54651306?v=4","gravatar_id":"","url":"https://api.github.com/users/prtg-dev","html_url":"https://github.com/prtg-dev","followers_url":"https://api.github.com/users/prtg-dev/followers","following_url":"https://api.github.com/users/prtg-dev/following{/other_user}","gists_url":"https://api.github.com/users/prtg-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/prtg-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prtg-dev/subscriptions","organizations_url":"https://api.github.com/users/prtg-dev/orgs","repos_url":"https://api.github.com/users/prtg-dev/repos","events_url":"https://api.github.com/users/prtg-dev/events{/privacy}","received_events_url":"https://api.github.com/users/prtg-dev/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/prtg-dev/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/prtg-dev/PyGithub","forks_url":"https://api.github.com/repos/prtg-dev/PyGithub/forks","keys_url":"https://api.github.com/repos/prtg-dev/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/prtg-dev/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/prtg-dev/PyGithub/teams","hooks_url":"https://api.github.com/repos/prtg-dev/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/prtg-dev/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/prtg-dev/PyGithub/events","assignees_url":"https://api.github.com/repos/prtg-dev/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/prtg-dev/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/prtg-dev/PyGithub/tags","blobs_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/prtg-dev/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/prtg-dev/PyGithub/languages","stargazers_url":"https://api.github.com/repos/prtg-dev/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/prtg-dev/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/prtg-dev/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/prtg-dev/PyGithub/subscription","commits_url":"https://api.github.com/repos/prtg-dev/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/prtg-dev/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/prtg-dev/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/prtg-dev/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/prtg-dev/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/prtg-dev/PyGithub/merges","archive_url":"https://api.github.com/repos/prtg-dev/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/prtg-dev/PyGithub/downloads","issues_url":"https://api.github.com/repos/prtg-dev/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/prtg-dev/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/prtg-dev/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/prtg-dev/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/prtg-dev/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/prtg-dev/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/prtg-dev/PyGithub/deployments","created_at":"2019-11-27T23:00:12Z","updated_at":"2019-11-26T22:54:53Z","pushed_at":"2019-11-27T22:40:33Z","git_url":"git://github.com/prtg-dev/PyGithub.git","ssh_url":"git@github.com:prtg-dev/PyGithub.git","clone_url":"https://github.com/prtg-dev/PyGithub.git","svn_url":"https://github.com/prtg-dev/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":12092,"stargazers_count":0,"watchers_count":0,"language":null,"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":0,"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"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"organization":{"login":"prtg-dev","id":54651306,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0NjUxMzA2","avatar_url":"https://avatars1.githubusercontent.com/u/54651306?v=4","gravatar_id":"","url":"https://api.github.com/users/prtg-dev","html_url":"https://github.com/prtg-dev","followers_url":"https://api.github.com/users/prtg-dev/followers","following_url":"https://api.github.com/users/prtg-dev/following{/other_user}","gists_url":"https://api.github.com/users/prtg-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/prtg-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prtg-dev/subscriptions","organizations_url":"https://api.github.com/users/prtg-dev/orgs","repos_url":"https://api.github.com/users/prtg-dev/repos","events_url":"https://api.github.com/users/prtg-dev/events{/privacy}","received_events_url":"https://api.github.com/users/prtg-dev/received_events","type":"Organization","site_admin":false},"parent":{"id":178836424,"node_id":"MDEwOlJlcG9zaXRvcnkxNzg4MzY0MjQ=","name":"PyGithub","full_name":"jacquev6/PyGithub","private":false,"owner":{"login":"jacquev6","id":47873678,"node_id":"MDQ6VXNlcjQ3ODczNjc4","avatar_url":"https://avatars1.githubusercontent.com/u/47873678?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"html_url":"https://github.com/jacquev6/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments","created_at":"2019-04-01T10:06:27Z","updated_at":"2019-11-26T22:54:53Z","pushed_at":"2019-11-27T22:40:33Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":12092,"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":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"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"},"forks":1,"open_issues":0,"watchers":0,"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://avatars0.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":"2019-11-27T19:00:09Z","pushed_at":"2019-11-27T22:40:35Z","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":12220,"stargazers_count":3016,"watchers_count":3016,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1001,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":57,"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"},"forks":1001,"open_issues":57,"watchers":3016,"default_branch":"master"},"network_count":1001,"subscribers_count":0} +{"id":224531141,"node_id":"MDEwOlJlcG9zaXRvcnkyMjQ1MzExNDE=","name":"PyGithub","full_name":"prtg-dev/PyGithub","private":false,"owner":{"login":"prtg-dev","id":54651306,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0NjUxMzA2","avatar_url":"https://avatars1.githubusercontent.com/u/54651306?v=4","gravatar_id":"","url":"https://api.github.com/users/prtg-dev","html_url":"https://github.com/prtg-dev","followers_url":"https://api.github.com/users/prtg-dev/followers","following_url":"https://api.github.com/users/prtg-dev/following{/other_user}","gists_url":"https://api.github.com/users/prtg-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/prtg-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prtg-dev/subscriptions","organizations_url":"https://api.github.com/users/prtg-dev/orgs","repos_url":"https://api.github.com/users/prtg-dev/repos","events_url":"https://api.github.com/users/prtg-dev/events{/privacy}","received_events_url":"https://api.github.com/users/prtg-dev/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/prtg-dev/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/prtg-dev/PyGithub","forks_url":"https://api.github.com/repos/prtg-dev/PyGithub/forks","keys_url":"https://api.github.com/repos/prtg-dev/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/prtg-dev/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/prtg-dev/PyGithub/teams","hooks_url":"https://api.github.com/repos/prtg-dev/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/prtg-dev/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/prtg-dev/PyGithub/events","assignees_url":"https://api.github.com/repos/prtg-dev/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/prtg-dev/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/prtg-dev/PyGithub/tags","blobs_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/prtg-dev/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/prtg-dev/PyGithub/languages","stargazers_url":"https://api.github.com/repos/prtg-dev/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/prtg-dev/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/prtg-dev/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/prtg-dev/PyGithub/subscription","commits_url":"https://api.github.com/repos/prtg-dev/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/prtg-dev/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/prtg-dev/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/prtg-dev/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/prtg-dev/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/prtg-dev/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/prtg-dev/PyGithub/merges","archive_url":"https://api.github.com/repos/prtg-dev/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/prtg-dev/PyGithub/downloads","issues_url":"https://api.github.com/repos/prtg-dev/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/prtg-dev/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/prtg-dev/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/prtg-dev/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/prtg-dev/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/prtg-dev/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/prtg-dev/PyGithub/deployments","created_at":"2019-11-27T23:00:12Z","updated_at":"2019-11-26T22:54:53Z","pushed_at":"2019-11-27T22:40:33Z","git_url":"git://github.com/prtg-dev/PyGithub.git","ssh_url":"git@github.com:prtg-dev/PyGithub.git","clone_url":"https://github.com/prtg-dev/PyGithub.git","svn_url":"https://github.com/prtg-dev/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":12092,"stargazers_count":0,"watchers_count":0,"language":null,"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":0,"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"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"organization":{"login":"prtg-dev","id":54651306,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0NjUxMzA2","avatar_url":"https://avatars1.githubusercontent.com/u/54651306?v=4","gravatar_id":"","url":"https://api.github.com/users/prtg-dev","html_url":"https://github.com/prtg-dev","followers_url":"https://api.github.com/users/prtg-dev/followers","following_url":"https://api.github.com/users/prtg-dev/following{/other_user}","gists_url":"https://api.github.com/users/prtg-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/prtg-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prtg-dev/subscriptions","organizations_url":"https://api.github.com/users/prtg-dev/orgs","repos_url":"https://api.github.com/users/prtg-dev/repos","events_url":"https://api.github.com/users/prtg-dev/events{/privacy}","received_events_url":"https://api.github.com/users/prtg-dev/received_events","type":"Organization","site_admin":false},"parent":{"id":178836424,"node_id":"MDEwOlJlcG9zaXRvcnkxNzg4MzY0MjQ=","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"jacquev6","id":47873678,"node_id":"MDQ6VXNlcjQ3ODczNjc4","avatar_url":"https://avatars1.githubusercontent.com/u/47873678?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"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":"2019-04-01T10:06:27Z","updated_at":"2019-11-26T22:54:53Z","pushed_at":"2019-11-27T22:40:33Z","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":12092,"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":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"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"},"forks":1,"open_issues":0,"watchers":0,"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://avatars0.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":"2019-11-27T19:00:09Z","pushed_at":"2019-11-27T22:40:35Z","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":12220,"stargazers_count":3016,"watchers_count":3016,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1001,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":57,"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"},"forks":1001,"open_issues":57,"watchers":3016,"default_branch":"master"},"network_count":1001,"subscribers_count":0} diff --git a/tests/ReplayData/Repository.testCreateGitBlob.txt b/tests/ReplayData/Repository.testCreateGitBlob.txt index 0f6cf325db..20a6ba8fab 100644 --- a/tests/ReplayData/Repository.testCreateGitBlob.txt +++ b/tests/ReplayData/Repository.testCreateGitBlob.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/git/blobs +/repos/PyGithub/PyGithub/git/blobs {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"content": "Blob created by PyGithub", "encoding": "latin1"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4997'), ('content-length', '156'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f5cc2fa3ba4de95ac0eb8c2ca47350c0"'), ('date', 'Fri, 11 May 2012 11:43:09 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/git/blobs/5dd930f591cd5188e9ea7200e308ad355182a1d8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/5dd930f591cd5188e9ea7200e308ad355182a1d8","sha":"5dd930f591cd5188e9ea7200e308ad355182a1d8"} +[('status', '201 Created'), ('x-ratelimit-remaining', '4997'), ('content-length', '156'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f5cc2fa3ba4de95ac0eb8c2ca47350c0"'), ('date', 'Fri, 11 May 2012 11:43:09 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/git/blobs/5dd930f591cd5188e9ea7200e308ad355182a1d8')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/5dd930f591cd5188e9ea7200e308ad355182a1d8","sha":"5dd930f591cd5188e9ea7200e308ad355182a1d8"} diff --git a/tests/ReplayData/Repository.testCreateGitCommit.txt b/tests/ReplayData/Repository.testCreateGitCommit.txt index 444d341647..0fe6ba2eeb 100644 --- a/tests/ReplayData/Repository.testCreateGitCommit.txt +++ b/tests/ReplayData/Repository.testCreateGitCommit.txt @@ -2,20 +2,20 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528 +/repos/PyGithub/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '381'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f33782d7031ff19c5301bb52068533cf"'), ('date', 'Fri, 01 Jun 2012 20:02:40 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528","sha":"107139a922f33bab6fbeb9f9eb8787e7f19e0528","tree":[{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/5dd930f591cd5188e9ea7200e308ad355182a1d8","sha":"5dd930f591cd5188e9ea7200e308ad355182a1d8","size":0,"path":"Barbaz.txt","mode":"100644"}]} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528","sha":"107139a922f33bab6fbeb9f9eb8787e7f19e0528","tree":[{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/5dd930f591cd5188e9ea7200e308ad355182a1d8","sha":"5dd930f591cd5188e9ea7200e308ad355182a1d8","size":0,"path":"Barbaz.txt","mode":"100644"}]} https POST api.github.com None -/repos/jacquev6/PyGithub/git/commits +/repos/PyGithub/PyGithub/git/commits {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"parents": [], "message": "Commit created by PyGithub", "tree": "107139a922f33bab6fbeb9f9eb8787e7f19e0528"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4931'), ('content-length', '601'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7719e5a3f5b064dc0871853dba33302b"'), ('date', 'Sun, 27 May 2012 05:50:59 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/git/commits/0b820628236ab8bab3890860fc414fa757ca15f4')] -{"author":{"email":"github.com@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-26T22:50:59-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0b820628236ab8bab3890860fc414fa757ca15f4","message":"Commit created by PyGithub","committer":{"email":"github.com@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-26T22:50:59-07:00"},"sha":"0b820628236ab8bab3890860fc414fa757ca15f4","parents":[],"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528","sha":"107139a922f33bab6fbeb9f9eb8787e7f19e0528"}} +[('status', '201 Created'), ('x-ratelimit-remaining', '4931'), ('content-length', '601'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7719e5a3f5b064dc0871853dba33302b"'), ('date', 'Sun, 27 May 2012 05:50:59 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/git/commits/0b820628236ab8bab3890860fc414fa757ca15f4')] +{"author":{"email":"github.com@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-26T22:50:59-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0b820628236ab8bab3890860fc414fa757ca15f4","message":"Commit created by PyGithub","committer":{"email":"github.com@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-26T22:50:59-07:00"},"sha":"0b820628236ab8bab3890860fc414fa757ca15f4","parents":[],"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528","sha":"107139a922f33bab6fbeb9f9eb8787e7f19e0528"}} diff --git a/tests/ReplayData/Repository.testCreateGitCommitWithAllArguments.txt b/tests/ReplayData/Repository.testCreateGitCommitWithAllArguments.txt index 93ec72146f..4804541026 100644 --- a/tests/ReplayData/Repository.testCreateGitCommitWithAllArguments.txt +++ b/tests/ReplayData/Repository.testCreateGitCommitWithAllArguments.txt @@ -2,20 +2,20 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528 +/repos/PyGithub/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '381'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f33782d7031ff19c5301bb52068533cf"'), ('date', 'Fri, 01 Jun 2012 20:02:40 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528","sha":"107139a922f33bab6fbeb9f9eb8787e7f19e0528","tree":[{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/5dd930f591cd5188e9ea7200e308ad355182a1d8","sha":"5dd930f591cd5188e9ea7200e308ad355182a1d8","size":0,"path":"Barbaz.txt","mode":"100644"}]} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528","sha":"107139a922f33bab6fbeb9f9eb8787e7f19e0528","tree":[{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/5dd930f591cd5188e9ea7200e308ad355182a1d8","sha":"5dd930f591cd5188e9ea7200e308ad355182a1d8","size":0,"path":"Barbaz.txt","mode":"100644"}]} https POST api.github.com None -/repos/jacquev6/PyGithub/git/commits +/repos/PyGithub/PyGithub/git/commits {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"parents": [], "message": "Commit created by PyGithub", "tree": "107139a922f33bab6fbeb9f9eb8787e7f19e0528", "committer": {"date": "2008-07-09T16:13:30+12:00", "name": "John Doe", "email": "j.doe@vincent-jacques.net"}, "author": {"date": "2008-07-09T16:13:30+12:00", "name": "John Doe", "email": "j.doe@vincent-jacques.net"}} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4928'), ('content-length', '577'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"660cc851cdd42a2caa7241cd96db0d01"'), ('date', 'Sun, 27 May 2012 05:53:47 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/git/commits/526946197ae9da59c6507cacd13ad6f1cfb686ea')] -{"author":{"email":"j.doe@vincent-jacques.net","name":"John Doe","date":"2008-07-08T21:13:30-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/526946197ae9da59c6507cacd13ad6f1cfb686ea","message":"Commit created by PyGithub","committer":{"email":"j.doe@vincent-jacques.net","name":"John Doe","date":"2008-07-08T21:13:30-07:00"},"sha":"526946197ae9da59c6507cacd13ad6f1cfb686ea","parents":[],"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528","sha":"107139a922f33bab6fbeb9f9eb8787e7f19e0528"}} +[('status', '201 Created'), ('x-ratelimit-remaining', '4928'), ('content-length', '577'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"660cc851cdd42a2caa7241cd96db0d01"'), ('date', 'Sun, 27 May 2012 05:53:47 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/git/commits/526946197ae9da59c6507cacd13ad6f1cfb686ea')] +{"author":{"email":"j.doe@vincent-jacques.net","name":"John Doe","date":"2008-07-08T21:13:30-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/526946197ae9da59c6507cacd13ad6f1cfb686ea","message":"Commit created by PyGithub","committer":{"email":"j.doe@vincent-jacques.net","name":"John Doe","date":"2008-07-08T21:13:30-07:00"},"sha":"526946197ae9da59c6507cacd13ad6f1cfb686ea","parents":[],"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528","sha":"107139a922f33bab6fbeb9f9eb8787e7f19e0528"}} diff --git a/tests/ReplayData/Repository.testCreateGitCommitWithParents.txt b/tests/ReplayData/Repository.testCreateGitCommitWithParents.txt index 6faf5bd491..32b38b6c07 100644 --- a/tests/ReplayData/Repository.testCreateGitCommitWithParents.txt +++ b/tests/ReplayData/Repository.testCreateGitCommitWithParents.txt @@ -2,42 +2,42 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/git/commits/7248e66831d4ffe09ef1f30a1df59ec0a9331ece +/repos/PyGithub/PyGithub/git/commits/7248e66831d4ffe09ef1f30a1df59ec0a9331ece {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4967'), ('content-length', '762'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"0cbf75a2a511c74f3df22dfd8d2ee42a"'), ('date', 'Fri, 01 Jun 2012 18:39:29 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"committer":{"email":"vincent@vincent-jacques.net","date":"2012-05-30T09:58:18-07:00","name":"Vincent Jacques"},"message":"Check HTTP status on all requests\n","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/7248e66831d4ffe09ef1f30a1df59ec0a9331ece","sha":"7248e66831d4ffe09ef1f30a1df59ec0a9331ece","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/81ca19a009b54e64226e3f9e51210fba989d5497","sha":"81ca19a009b54e64226e3f9e51210fba989d5497"}],"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/91655d55b309f520fd4b3fd9e5303cfc13855a21","sha":"91655d55b309f520fd4b3fd9e5303cfc13855a21"},"author":{"email":"vincent@vincent-jacques.net","date":"2012-05-30T09:58:18-07:00","name":"Vincent Jacques"}} +{"committer":{"email":"vincent@vincent-jacques.net","date":"2012-05-30T09:58:18-07:00","name":"Vincent Jacques"},"message":"Check HTTP status on all requests\n","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/7248e66831d4ffe09ef1f30a1df59ec0a9331ece","sha":"7248e66831d4ffe09ef1f30a1df59ec0a9331ece","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/81ca19a009b54e64226e3f9e51210fba989d5497","sha":"81ca19a009b54e64226e3f9e51210fba989d5497"}],"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/91655d55b309f520fd4b3fd9e5303cfc13855a21","sha":"91655d55b309f520fd4b3fd9e5303cfc13855a21"},"author":{"email":"vincent@vincent-jacques.net","date":"2012-05-30T09:58:18-07:00","name":"Vincent Jacques"}} https GET api.github.com None -/repos/jacquev6/PyGithub/git/commits/12d427464f8d91c8e981043a86ba8a2a9e7319ea +/repos/PyGithub/PyGithub/git/commits/12d427464f8d91c8e981043a86ba8a2a9e7319ea {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4966'), ('content-length', '769'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"87d790f22e47dbaa3148ad7872e32dde"'), ('date', 'Fri, 01 Jun 2012 18:39:30 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"tree":{"sha":"143dd39e465e5de953d944c9309b961af392da73","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/143dd39e465e5de953d944c9309b961af392da73"},"sha":"12d427464f8d91c8e981043a86ba8a2a9e7319ea","message":"Remove the notion of ImmediateCompletion\n","parents":[{"sha":"7a622975d6a3f0ab80f573f577aa0e3ffb69e2f5","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/7a622975d6a3f0ab80f573f577aa0e3ffb69e2f5"}],"author":{"email":"vincent@vincent-jacques.net","date":"2012-05-30T09:51:36-07:00","name":"Vincent Jacques"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/12d427464f8d91c8e981043a86ba8a2a9e7319ea","committer":{"email":"vincent@vincent-jacques.net","date":"2012-05-30T10:00:37-07:00","name":"Vincent Jacques"}} +{"tree":{"sha":"143dd39e465e5de953d944c9309b961af392da73","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/143dd39e465e5de953d944c9309b961af392da73"},"sha":"12d427464f8d91c8e981043a86ba8a2a9e7319ea","message":"Remove the notion of ImmediateCompletion\n","parents":[{"sha":"7a622975d6a3f0ab80f573f577aa0e3ffb69e2f5","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/7a622975d6a3f0ab80f573f577aa0e3ffb69e2f5"}],"author":{"email":"vincent@vincent-jacques.net","date":"2012-05-30T09:51:36-07:00","name":"Vincent Jacques"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/12d427464f8d91c8e981043a86ba8a2a9e7319ea","committer":{"email":"vincent@vincent-jacques.net","date":"2012-05-30T10:00:37-07:00","name":"Vincent Jacques"}} https GET api.github.com None -/repos/jacquev6/PyGithub/git/trees/fae707821159639589bf94f3fb0a7154ec5d441b +/repos/PyGithub/PyGithub/git/trees/fae707821159639589bf94f3fb0a7154ec5d441b {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '381'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f33782d7031ff19c5301bb52068533cf"'), ('date', 'Fri, 01 Jun 2012 20:02:40 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fae707821159639589bf94f3fb0a7154ec5d441b","sha":"fae707821159639589bf94f3fb0a7154ec5d441b","tree":[{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/5dd930f591cd5188e9ea7200e308ad355182a1d8","sha":"5dd930f591cd5188e9ea7200e308ad355182a1d8","size":0,"path":"Barbaz.txt","mode":"100644"}]} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/fae707821159639589bf94f3fb0a7154ec5d441b","sha":"fae707821159639589bf94f3fb0a7154ec5d441b","tree":[{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/5dd930f591cd5188e9ea7200e308ad355182a1d8","sha":"5dd930f591cd5188e9ea7200e308ad355182a1d8","size":0,"path":"Barbaz.txt","mode":"100644"}]} https POST api.github.com None -/repos/jacquev6/PyGithub/git/commits +/repos/PyGithub/PyGithub/git/commits {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"parents": ["7248e66831d4ffe09ef1f30a1df59ec0a9331ece", "12d427464f8d91c8e981043a86ba8a2a9e7319ea"], "message": "Commit created by PyGithub", "tree": "fae707821159639589bf94f3fb0a7154ec5d441b"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4965'), ('content-length', '918'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1ada1e7861f74fa4fefa922bf03e891e"'), ('date', 'Fri, 01 Jun 2012 18:39:31 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/git/commits/6adf9ea25ff8a8f2a42bcb1c09e42526339037cd')] -{"committer":{"email":"github.com@vincent-jacques.net","date":"2012-06-01T11:39:31-07:00","name":"Vincent Jacques"},"message":"Commit created by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/6adf9ea25ff8a8f2a42bcb1c09e42526339037cd","sha":"6adf9ea25ff8a8f2a42bcb1c09e42526339037cd","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/7248e66831d4ffe09ef1f30a1df59ec0a9331ece","sha":"7248e66831d4ffe09ef1f30a1df59ec0a9331ece"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/12d427464f8d91c8e981043a86ba8a2a9e7319ea","sha":"12d427464f8d91c8e981043a86ba8a2a9e7319ea"}],"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fae707821159639589bf94f3fb0a7154ec5d441b","sha":"fae707821159639589bf94f3fb0a7154ec5d441b"},"author":{"email":"github.com@vincent-jacques.net","date":"2012-06-01T11:39:31-07:00","name":"Vincent Jacques"}} +[('status', '201 Created'), ('x-ratelimit-remaining', '4965'), ('content-length', '918'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1ada1e7861f74fa4fefa922bf03e891e"'), ('date', 'Fri, 01 Jun 2012 18:39:31 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/git/commits/6adf9ea25ff8a8f2a42bcb1c09e42526339037cd')] +{"committer":{"email":"github.com@vincent-jacques.net","date":"2012-06-01T11:39:31-07:00","name":"Vincent Jacques"},"message":"Commit created by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/6adf9ea25ff8a8f2a42bcb1c09e42526339037cd","sha":"6adf9ea25ff8a8f2a42bcb1c09e42526339037cd","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/7248e66831d4ffe09ef1f30a1df59ec0a9331ece","sha":"7248e66831d4ffe09ef1f30a1df59ec0a9331ece"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/12d427464f8d91c8e981043a86ba8a2a9e7319ea","sha":"12d427464f8d91c8e981043a86ba8a2a9e7319ea"}],"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/fae707821159639589bf94f3fb0a7154ec5d441b","sha":"fae707821159639589bf94f3fb0a7154ec5d441b"},"author":{"email":"github.com@vincent-jacques.net","date":"2012-06-01T11:39:31-07:00","name":"Vincent Jacques"}} diff --git a/tests/ReplayData/Repository.testCreateGitRef.txt b/tests/ReplayData/Repository.testCreateGitRef.txt index d355d16c4d..8df2e80f1d 100644 --- a/tests/ReplayData/Repository.testCreateGitRef.txt +++ b/tests/ReplayData/Repository.testCreateGitRef.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/git/refs +/repos/PyGithub/PyGithub/git/refs {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"sha": "4303c5b90e2216d927155e9609436ccb8984c495", "ref": "refs/heads/BranchCreatedByPyGithub"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4987'), ('content-length', '322'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"0302e489fc6bd534afa44cdbec1227e7"'), ('date', 'Thu, 10 May 2012 18:49:19 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/git/refs/heads/BranchCreatedByPyGithub')] -{"object":{"type":"commit","sha":"4303c5b90e2216d927155e9609436ccb8984c495","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495"},"ref":"refs/heads/BranchCreatedByPyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/heads/BranchCreatedByPyGithub"} +[('status', '201 Created'), ('x-ratelimit-remaining', '4987'), ('content-length', '322'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"0302e489fc6bd534afa44cdbec1227e7"'), ('date', 'Thu, 10 May 2012 18:49:19 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/git/refs/heads/BranchCreatedByPyGithub')] +{"object":{"type":"commit","sha":"4303c5b90e2216d927155e9609436ccb8984c495","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495"},"ref":"refs/heads/BranchCreatedByPyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs/heads/BranchCreatedByPyGithub"} diff --git a/tests/ReplayData/Repository.testCreateGitRelease.txt b/tests/ReplayData/Repository.testCreateGitRelease.txt index 49a50eaf0d..34a3f0bf15 100644 --- a/tests/ReplayData/Repository.testCreateGitRelease.txt +++ b/tests/ReplayData/Repository.testCreateGitRelease.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/releases +/repos/PyGithub/PyGithub/releases {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -{"body": "This release is created by PyGithub", "prerelease": false, "generate_release_notes": false, "tag_name": "vX.Y.Z-by-PyGithub-acctest", "draft": false, "name": "vX.Y.Z: PyGithub acctest"} +{"body": "This release is created by PyGithub", "prerelease": false, "generate_release_notes": false, "tag_name": "vX.Y.Z-by-PyGithub-acctest", "draft": false, "name": "vX.Y.Z: PyGithub acctest", "make_latest": "true"} 201 -[('content-length', '1656'), ('x-runtime-rack', '0.601694'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"64c4aea05900ae1072ee705caf9b529c"'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/releases/7636454'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '201 Created'), ('x-ratelimit-remaining', '4951'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', '92E2:1D39A:50FE29C:5DF3D65:59AE9019'), ('date', 'Tue, 05 Sep 2017 11:52:58 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1504614271')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/releases/7636454","assets_url":"https://api.github.com/repos/jacquev6/PyGithub/releases/7636454/assets","upload_url":"https://uploads.github.com/repos/jacquev6/PyGithub/releases/7636454/assets{?name,label}","html_url":"https://github.com/jacquev6/PyGithub/releases/tag/vX.Y.Z-by-PyGithub-acctest","id":7636454,"tag_name":"vX.Y.Z-by-PyGithub-acctest","target_commitish":"master","name":"vX.Y.Z: PyGithub acctest","draft":false,"author":{"login":"jacquev6","id":3760893,"avatar_url":"https://avatars2.githubusercontent.com/u/3760893?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2016-10-29T02:39:27Z","published_at":"2017-09-05T11:52:58Z","assets":[],"tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/vX.Y.Z-by-PyGithub-acctest","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/vX.Y.Z-by-PyGithub-acctest","body":"This release is created by PyGithub"} +[('content-length', '1656'), ('x-runtime-rack', '0.601694'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"64c4aea05900ae1072ee705caf9b529c"'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/releases/7636454'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '201 Created'), ('x-ratelimit-remaining', '4951'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', '92E2:1D39A:50FE29C:5DF3D65:59AE9019'), ('date', 'Tue, 05 Sep 2017 11:52:58 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1504614271')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/7636454","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/7636454/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/7636454/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/vX.Y.Z-by-PyGithub-acctest","id":7636454,"tag_name":"vX.Y.Z-by-PyGithub-acctest","target_commitish":"master","name":"vX.Y.Z: PyGithub acctest","draft":false,"author":{"login":"jacquev6","id":3760893,"avatar_url":"https://avatars2.githubusercontent.com/u/3760893?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2016-10-29T02:39:27Z","published_at":"2017-09-05T11:52:58Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/vX.Y.Z-by-PyGithub-acctest","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/vX.Y.Z-by-PyGithub-acctest","body":"This release is created by PyGithub"} diff --git a/tests/ReplayData/Repository.testCreateGitReleaseGenerateReleaseNotes.txt b/tests/ReplayData/Repository.testCreateGitReleaseGenerateReleaseNotes.txt index 4b82aa1f16..f34d6bef84 100644 --- a/tests/ReplayData/Repository.testCreateGitReleaseGenerateReleaseNotes.txt +++ b/tests/ReplayData/Repository.testCreateGitReleaseGenerateReleaseNotes.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/releases +/repos/PyGithub/PyGithub/releases {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -{"prerelease": false, "generate_release_notes": true, "tag_name": "vX.Y.Z-by-PyGithub-acctest-release-notes", "draft": false} +{"prerelease": false, "generate_release_notes": true, "tag_name": "vX.Y.Z-by-PyGithub-acctest-release-notes", "draft": false, "make_latest": "true"} 201 -[('content-length', '1656'), ('x-runtime-rack', '0.601694'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"64c4aea05900ae1072ee705caf9b529c"'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/releases/7636454'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '201 Created'), ('x-ratelimit-remaining', '4951'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', '92E2:1D39A:50FE29C:5DF3D65:59AE9019'), ('date', 'Tue, 05 Sep 2017 11:52:58 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1504614271')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/releases/7636454","assets_url":"https://api.github.com/repos/jacquev6/PyGithub/releases/7636454/assets","upload_url":"https://uploads.github.com/repos/jacquev6/PyGithub/releases/7636454/assets{?name,label}","html_url":"https://github.com/jacquev6/PyGithub/releases/tag/vX.Y.Z-by-PyGithub-acctest-release-notes","id":7636454,"tag_name":"vX.Y.Z-by-PyGithub-acctest-release-notes","target_commitish":"master","name":"vX.Y.Z: PyGithub acctest-release-notes","draft":false,"author":{"login":"jacquev6","id":3760893,"avatar_url":"https://avatars2.githubusercontent.com/u/3760893?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2016-10-29T02:39:27Z","published_at":"2017-09-05T11:52:58Z","assets":[],"tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/vX.Y.Z-by-PyGithub-acctest-release-notes","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/vX.Y.Z-by-PyGithub-acctest-release-notes","body":"This release is created by PyGithub"} +[('content-length', '1656'), ('x-runtime-rack', '0.601694'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"64c4aea05900ae1072ee705caf9b529c"'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/releases/7636454'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '201 Created'), ('x-ratelimit-remaining', '4951'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', '92E2:1D39A:50FE29C:5DF3D65:59AE9019'), ('date', 'Tue, 05 Sep 2017 11:52:58 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1504614271')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/7636454","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/7636454/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/7636454/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/vX.Y.Z-by-PyGithub-acctest-release-notes","id":7636454,"tag_name":"vX.Y.Z-by-PyGithub-acctest-release-notes","target_commitish":"master","name":"vX.Y.Z: PyGithub acctest-release-notes","draft":false,"author":{"login":"jacquev6","id":3760893,"avatar_url":"https://avatars2.githubusercontent.com/u/3760893?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2016-10-29T02:39:27Z","published_at":"2017-09-05T11:52:58Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/vX.Y.Z-by-PyGithub-acctest-release-notes","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/vX.Y.Z-by-PyGithub-acctest-release-notes","body":"This release is created by PyGithub"} diff --git a/tests/ReplayData/Repository.testCreateGitReleaseWithAllArguments.txt b/tests/ReplayData/Repository.testCreateGitReleaseWithAllArguments.txt index 7f17d9b20a..e726ccb060 100644 --- a/tests/ReplayData/Repository.testCreateGitReleaseWithAllArguments.txt +++ b/tests/ReplayData/Repository.testCreateGitReleaseWithAllArguments.txt @@ -2,23 +2,23 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/releases +/repos/PyGithub/PyGithub/releases {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -{"body": "This release is also created by PyGithub", "name": "vX.Y.Z: PyGithub acctest2", "target_commitish": "da9a285fd8b782461e56cba39ae8d2fa41ca7cdc", "tag_name": "vX.Y.Z-by-PyGithub-acctest2", "prerelease": true, "generate_release_notes": false, "draft": false} +{"tag_name": "vX.Y.Z-by-PyGithub-acctest2", "draft": false, "prerelease": true, "generate_release_notes": false, "name": "vX.Y.Z: PyGithub acctest2", "body": "This release is also created by PyGithub", "target_commitish": "da9a285fd8b782461e56cba39ae8d2fa41ca7cdc", "make_latest": "true"} 201 -[('content-length', '1699'), ('x-runtime-rack', '0.625656'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"a640b19b9bc4596ddf16593f4d811ee0"'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/releases/7636488'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '201 Created'), ('x-ratelimit-remaining', '4945'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', '958E:1D39A:510378D:5DF9FCA:59AE9091'), ('date', 'Tue, 05 Sep 2017 11:54:58 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1504614271')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/releases/7636488","assets_url":"https://api.github.com/repos/jacquev6/PyGithub/releases/7636488/assets","upload_url":"https://uploads.github.com/repos/jacquev6/PyGithub/releases/7636488/assets{?name,label}","html_url":"https://github.com/jacquev6/PyGithub/releases/tag/vX.Y.Z-by-PyGithub-acctest2","id":7636488,"tag_name":"vX.Y.Z-by-PyGithub-acctest2","target_commitish":"da9a285fd8b782461e56cba39ae8d2fa41ca7cdc","name":"vX.Y.Z: PyGithub acctest2","draft":false,"author":{"login":"jacquev6","id":3760893,"avatar_url":"https://avatars2.githubusercontent.com/u/3760893?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"prerelease":true,"created_at":"2017-09-05T11:35:41Z","published_at":"2017-09-05T11:54:58Z","assets":[],"tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/vX.Y.Z-by-PyGithub-acctest2","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/vX.Y.Z-by-PyGithub-acctest2","body":"This release is also created by PyGithub"} +[('content-length', '1699'), ('x-runtime-rack', '0.625656'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"a640b19b9bc4596ddf16593f4d811ee0"'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/releases/7636488'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '201 Created'), ('x-ratelimit-remaining', '4945'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', '958E:1D39A:510378D:5DF9FCA:59AE9091'), ('date', 'Tue, 05 Sep 2017 11:54:58 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1504614271')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/7636488","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/7636488/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/7636488/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/vX.Y.Z-by-PyGithub-acctest2","id":7636488,"tag_name":"vX.Y.Z-by-PyGithub-acctest2","target_commitish":"da9a285fd8b782461e56cba39ae8d2fa41ca7cdc","name":"vX.Y.Z: PyGithub acctest2","draft":false,"author":{"login":"jacquev6","id":3760893,"avatar_url":"https://avatars2.githubusercontent.com/u/3760893?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"prerelease":true,"created_at":"2017-09-05T11:35:41Z","published_at":"2017-09-05T11:54:58Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/vX.Y.Z-by-PyGithub-acctest2","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/vX.Y.Z-by-PyGithub-acctest2","body":"This release is also created by PyGithub"} https GET api.github.com None -/repos/jacquev6/PyGithub/tags +/repos/PyGithub/PyGithub/tags {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} null 200 [('content-length', '10153'), ('x-runtime-rack', '0.083151'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"66e56bae266aa8b7261d366dde7aa4e1"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4944'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', '67C6:1D38C:206196:260F56:59AE9092'), ('last-modified', 'Sun, 27 Nov 2016 13:31:42 GMT'), ('link', '; rel="next", ; rel="last"'), ('date', 'Tue, 05 Sep 2017 11:54:59 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1504614271')] -[{"name":"vX.Y.Z-by-PyGithub-acctest2","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/vX.Y.Z-by-PyGithub-acctest2","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/vX.Y.Z-by-PyGithub-acctest2","commit":{"sha":"da9a285fd8b782461e56cba39ae8d2fa41ca7cdc","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/da9a285fd8b782461e56cba39ae8d2fa41ca7cdc"}},{"name":"vX.Y.Z-by-PyGithub-acctest","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/vX.Y.Z-by-PyGithub-acctest","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/vX.Y.Z-by-PyGithub-acctest","commit":{"sha":"a7eb09af049dbcc0d1c71b92abe3b71022b90eb9","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a7eb09af049dbcc0d1c71b92abe3b71022b90eb9"}},{"name":"v2.0.0-alpha.4","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v2.0.0-alpha.4","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v2.0.0-alpha.4","commit":{"sha":"c5a2bb0934ffc04fcd42d0b55e1fec7810bd95b7","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c5a2bb0934ffc04fcd42d0b55e1fec7810bd95b7"}},{"name":"v2.0.0.-alpha.3","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v2.0.0.-alpha.3","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v2.0.0.-alpha.3","commit":{"sha":"d737ccbe2ab54c747374d2a8f1bc9268aa25372d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d737ccbe2ab54c747374d2a8f1bc9268aa25372d"}},{"name":"v2.0.0-alpha.2","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v2.0.0-alpha.2","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v2.0.0-alpha.2","commit":{"sha":"4d4c2ed3c79e4fe4e58b0a7b9dbd976cb92b22bb","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4d4c2ed3c79e4fe4e58b0a7b9dbd976cb92b22bb"}},{"name":"v2.0.0-alpha.1","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v2.0.0-alpha.1","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v2.0.0-alpha.1","commit":{"sha":"a27948a3c5ad70f2818379ae07953405fcee9d0d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a27948a3c5ad70f2818379ae07953405fcee9d0d"}},{"name":"v1.29","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.29","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.29","commit":{"sha":"43f61f9471cc4c1aab69524ba53bb11d6597d0bf","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/43f61f9471cc4c1aab69524ba53bb11d6597d0bf"}},{"name":"v1.28","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.28","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.28","commit":{"sha":"4a657d67f8f325b081233583216db07a88b761c8","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4a657d67f8f325b081233583216db07a88b761c8"}},{"name":"v1.27.1","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.27.1","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.27.1","commit":{"sha":"0098e08792b1aaa2c5cbe498a0139f58199dd90c","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0098e08792b1aaa2c5cbe498a0139f58199dd90c"}},{"name":"v1.27.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.27.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.27.0","commit":{"sha":"37c9a5045dc592af630f5e46aa53e0c86617d696","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/37c9a5045dc592af630f5e46aa53e0c86617d696"}},{"name":"v1.26.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.26.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.26.0","commit":{"sha":"ace2b0c067a7f92bf12965fb4cbfbc8d893d06d2","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ace2b0c067a7f92bf12965fb4cbfbc8d893d06d2"}},{"name":"v1.25.2","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.25.2","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.25.2","commit":{"sha":"5a05a5e58f682d315acd2447c87ac5b4d4fc55e8","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5a05a5e58f682d315acd2447c87ac5b4d4fc55e8"}},{"name":"v1.25.1","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.25.1","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.25.1","commit":{"sha":"9962ae226869c8c57aed545a8e4834988682cf31","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/9962ae226869c8c57aed545a8e4834988682cf31"}},{"name":"v1.25.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.25.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.25.0","commit":{"sha":"b64b0d6942bb27095bd035b8c0db10ca35448be3","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b64b0d6942bb27095bd035b8c0db10ca35448be3"}},{"name":"v1.24.1","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.24.1","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.24.1","commit":{"sha":"5e7d45a2f8c09757a0ce6d0bf37a8eec31791578","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5e7d45a2f8c09757a0ce6d0bf37a8eec31791578"}},{"name":"v1.24.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.24.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.24.0","commit":{"sha":"2e74c7d9ea66484dfbcb64e6c05964c07d1f9c02","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2e74c7d9ea66484dfbcb64e6c05964c07d1f9c02"}},{"name":"v1.23.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.23.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.23.0","commit":{"sha":"937c7fccf586643530eff6a557f262c1950dc89f","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/937c7fccf586643530eff6a557f262c1950dc89f"}},{"name":"v1.22.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.22.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.22.0","commit":{"sha":"66edeb601fe7fb48d84e9adcc6bdfef64e87a0f0","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/66edeb601fe7fb48d84e9adcc6bdfef64e87a0f0"}},{"name":"v1.21.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.21.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.21.0","commit":{"sha":"3ff7e4843ef251c158dc8d07e667db80e03820bb","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3ff7e4843ef251c158dc8d07e667db80e03820bb"}},{"name":"v1.20.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.20.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.20.0","commit":{"sha":"8cb3f372837e2648f17e3f085d2821114b507383","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8cb3f372837e2648f17e3f085d2821114b507383"}},{"name":"v1.19.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.19.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.19.0","commit":{"sha":"9f9be931fb3821256d8bb685577b5167652763d5","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/9f9be931fb3821256d8bb685577b5167652763d5"}},{"name":"v1.18.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.18.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.18.0","commit":{"sha":"5a0d5e2b69368ce59fdc8b78688165aceb9f7ca8","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5a0d5e2b69368ce59fdc8b78688165aceb9f7ca8"}},{"name":"v1.17.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.17.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.17.0","commit":{"sha":"72f8876112ba029111c739871e3e4d7bce66b95d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/72f8876112ba029111c739871e3e4d7bce66b95d"}},{"name":"v1.16.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.16.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.16.0","commit":{"sha":"539ec2a7258a06af3c5c3e93bfbf4b8d3e4fd672","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/539ec2a7258a06af3c5c3e93bfbf4b8d3e4fd672"}},{"name":"v1.15.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.15.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.15.0","commit":{"sha":"e1c7052ff1ed27c28ea999cb1f9e1ba691eacfc1","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e1c7052ff1ed27c28ea999cb1f9e1ba691eacfc1"}},{"name":"v1.14.2","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.14.2","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.14.2","commit":{"sha":"446f0c94410e678662bb8770e8dc4d8c263b74e6","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/446f0c94410e678662bb8770e8dc4d8c263b74e6"}},{"name":"v1.14.1","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.14.1","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.14.1","commit":{"sha":"2d1c709062ec7bd132a7421429d7bcbf5dca20e4","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2d1c709062ec7bd132a7421429d7bcbf5dca20e4"}},{"name":"v1.14.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.14.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.14.0","commit":{"sha":"0a0fc8848167c7ad106a0feff93296c006b24fe6","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0a0fc8848167c7ad106a0feff93296c006b24fe6"}},{"name":"v1.13.1","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.13.1","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.13.1","commit":{"sha":"dc96fef052f2b5c6adb34da65169e8df3f35f611","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc96fef052f2b5c6adb34da65169e8df3f35f611"}},{"name":"v1.13.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.13.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.13.0","commit":{"sha":"b7e4000450e89b8c6e947e3a1e52fb06da7c9621","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b7e4000450e89b8c6e947e3a1e52fb06da7c9621"}}] +[{"name":"vX.Y.Z-by-PyGithub-acctest2","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/vX.Y.Z-by-PyGithub-acctest2","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/vX.Y.Z-by-PyGithub-acctest2","commit":{"sha":"da9a285fd8b782461e56cba39ae8d2fa41ca7cdc","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/da9a285fd8b782461e56cba39ae8d2fa41ca7cdc"}},{"name":"vX.Y.Z-by-PyGithub-acctest","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/vX.Y.Z-by-PyGithub-acctest","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/vX.Y.Z-by-PyGithub-acctest","commit":{"sha":"a7eb09af049dbcc0d1c71b92abe3b71022b90eb9","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a7eb09af049dbcc0d1c71b92abe3b71022b90eb9"}},{"name":"v2.0.0-alpha.4","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v2.0.0-alpha.4","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v2.0.0-alpha.4","commit":{"sha":"c5a2bb0934ffc04fcd42d0b55e1fec7810bd95b7","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c5a2bb0934ffc04fcd42d0b55e1fec7810bd95b7"}},{"name":"v2.0.0.-alpha.3","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v2.0.0.-alpha.3","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v2.0.0.-alpha.3","commit":{"sha":"d737ccbe2ab54c747374d2a8f1bc9268aa25372d","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d737ccbe2ab54c747374d2a8f1bc9268aa25372d"}},{"name":"v2.0.0-alpha.2","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v2.0.0-alpha.2","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v2.0.0-alpha.2","commit":{"sha":"4d4c2ed3c79e4fe4e58b0a7b9dbd976cb92b22bb","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4d4c2ed3c79e4fe4e58b0a7b9dbd976cb92b22bb"}},{"name":"v2.0.0-alpha.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v2.0.0-alpha.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v2.0.0-alpha.1","commit":{"sha":"a27948a3c5ad70f2818379ae07953405fcee9d0d","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a27948a3c5ad70f2818379ae07953405fcee9d0d"}},{"name":"v1.29","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.29","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.29","commit":{"sha":"43f61f9471cc4c1aab69524ba53bb11d6597d0bf","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/43f61f9471cc4c1aab69524ba53bb11d6597d0bf"}},{"name":"v1.28","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.28","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.28","commit":{"sha":"4a657d67f8f325b081233583216db07a88b761c8","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4a657d67f8f325b081233583216db07a88b761c8"}},{"name":"v1.27.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.27.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.27.1","commit":{"sha":"0098e08792b1aaa2c5cbe498a0139f58199dd90c","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0098e08792b1aaa2c5cbe498a0139f58199dd90c"}},{"name":"v1.27.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.27.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.27.0","commit":{"sha":"37c9a5045dc592af630f5e46aa53e0c86617d696","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/37c9a5045dc592af630f5e46aa53e0c86617d696"}},{"name":"v1.26.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.26.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.26.0","commit":{"sha":"ace2b0c067a7f92bf12965fb4cbfbc8d893d06d2","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ace2b0c067a7f92bf12965fb4cbfbc8d893d06d2"}},{"name":"v1.25.2","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.25.2","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.25.2","commit":{"sha":"5a05a5e58f682d315acd2447c87ac5b4d4fc55e8","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5a05a5e58f682d315acd2447c87ac5b4d4fc55e8"}},{"name":"v1.25.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.25.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.25.1","commit":{"sha":"9962ae226869c8c57aed545a8e4834988682cf31","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/9962ae226869c8c57aed545a8e4834988682cf31"}},{"name":"v1.25.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.25.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.25.0","commit":{"sha":"b64b0d6942bb27095bd035b8c0db10ca35448be3","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/b64b0d6942bb27095bd035b8c0db10ca35448be3"}},{"name":"v1.24.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.24.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.24.1","commit":{"sha":"5e7d45a2f8c09757a0ce6d0bf37a8eec31791578","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5e7d45a2f8c09757a0ce6d0bf37a8eec31791578"}},{"name":"v1.24.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.24.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.24.0","commit":{"sha":"2e74c7d9ea66484dfbcb64e6c05964c07d1f9c02","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2e74c7d9ea66484dfbcb64e6c05964c07d1f9c02"}},{"name":"v1.23.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.23.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.23.0","commit":{"sha":"937c7fccf586643530eff6a557f262c1950dc89f","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/937c7fccf586643530eff6a557f262c1950dc89f"}},{"name":"v1.22.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.22.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.22.0","commit":{"sha":"66edeb601fe7fb48d84e9adcc6bdfef64e87a0f0","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/66edeb601fe7fb48d84e9adcc6bdfef64e87a0f0"}},{"name":"v1.21.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.21.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.21.0","commit":{"sha":"3ff7e4843ef251c158dc8d07e667db80e03820bb","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/3ff7e4843ef251c158dc8d07e667db80e03820bb"}},{"name":"v1.20.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.20.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.20.0","commit":{"sha":"8cb3f372837e2648f17e3f085d2821114b507383","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8cb3f372837e2648f17e3f085d2821114b507383"}},{"name":"v1.19.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.19.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.19.0","commit":{"sha":"9f9be931fb3821256d8bb685577b5167652763d5","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/9f9be931fb3821256d8bb685577b5167652763d5"}},{"name":"v1.18.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.18.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.18.0","commit":{"sha":"5a0d5e2b69368ce59fdc8b78688165aceb9f7ca8","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5a0d5e2b69368ce59fdc8b78688165aceb9f7ca8"}},{"name":"v1.17.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.17.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.17.0","commit":{"sha":"72f8876112ba029111c739871e3e4d7bce66b95d","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/72f8876112ba029111c739871e3e4d7bce66b95d"}},{"name":"v1.16.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.16.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.16.0","commit":{"sha":"539ec2a7258a06af3c5c3e93bfbf4b8d3e4fd672","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/539ec2a7258a06af3c5c3e93bfbf4b8d3e4fd672"}},{"name":"v1.15.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.15.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.15.0","commit":{"sha":"e1c7052ff1ed27c28ea999cb1f9e1ba691eacfc1","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e1c7052ff1ed27c28ea999cb1f9e1ba691eacfc1"}},{"name":"v1.14.2","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.14.2","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.14.2","commit":{"sha":"446f0c94410e678662bb8770e8dc4d8c263b74e6","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/446f0c94410e678662bb8770e8dc4d8c263b74e6"}},{"name":"v1.14.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.14.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.14.1","commit":{"sha":"2d1c709062ec7bd132a7421429d7bcbf5dca20e4","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2d1c709062ec7bd132a7421429d7bcbf5dca20e4"}},{"name":"v1.14.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.14.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.14.0","commit":{"sha":"0a0fc8848167c7ad106a0feff93296c006b24fe6","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0a0fc8848167c7ad106a0feff93296c006b24fe6"}},{"name":"v1.13.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.13.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.13.1","commit":{"sha":"dc96fef052f2b5c6adb34da65169e8df3f35f611","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dc96fef052f2b5c6adb34da65169e8df3f35f611"}},{"name":"v1.13.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.13.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.13.0","commit":{"sha":"b7e4000450e89b8c6e947e3a1e52fb06da7c9621","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/b7e4000450e89b8c6e947e3a1e52fb06da7c9621"}}] https GET @@ -29,4 +29,4 @@ None null 200 [('content-length', '8154'), ('x-runtime-rack', '0.049311'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"335bb6d8e6561088f4733fa74a8d0022"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4943'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', '8F47:1D39A:5103938:5DFA1D9:59AE9093'), ('last-modified', 'Sun, 27 Nov 2016 13:31:42 GMT'), ('link', '; rel="first", ; rel="prev"'), ('date', 'Tue, 05 Sep 2017 11:55:00 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1504614271')] -[{"name":"v1.12.2","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.12.2","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.12.2","commit":{"sha":"03a256a4052cacea998d8205a83d5b5465f31e18","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/03a256a4052cacea998d8205a83d5b5465f31e18"}},{"name":"v1.12.1","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.12.1","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.12.1","commit":{"sha":"67bdf8c0be32dc195a4545bf90100a1b55eebf45","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/67bdf8c0be32dc195a4545bf90100a1b55eebf45"}},{"name":"v1.12.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.12.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.12.0","commit":{"sha":"c8553031178cbf221d95af1ecc7ffd4707ac5cc9","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c8553031178cbf221d95af1ecc7ffd4707ac5cc9"}},{"name":"v1.11.1","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.11.1","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.11.1","commit":{"sha":"392a422ec2b9b97f7b1ad41e04cc62ef67ad0e7f","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/392a422ec2b9b97f7b1ad41e04cc62ef67ad0e7f"}},{"name":"v1.11.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.11.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.11.0","commit":{"sha":"6b32e1cdf588d8c3c651d355ffc3451dd34284b9","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6b32e1cdf588d8c3c651d355ffc3451dd34284b9"}},{"name":"v1.10.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.10.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.10.0","commit":{"sha":"4400a24872e52ee488067a7d0d8522ca3764b4e5","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4400a24872e52ee488067a7d0d8522ca3764b4e5"}},{"name":"v1.9.1","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.9.1","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.9.1","commit":{"sha":"a922319db0037babe9919a83b8b69efebcf942ea","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a922319db0037babe9919a83b8b69efebcf942ea"}},{"name":"v1.9.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.9.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.9.0","commit":{"sha":"808fe92191d287bbad6131c5a8be78b4ded745fd","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/808fe92191d287bbad6131c5a8be78b4ded745fd"}},{"name":"v1.8.1","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.8.1","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.8.1","commit":{"sha":"e3d76fc3ec3dd4f4c3b3a440ff9e771f06d63a39","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e3d76fc3ec3dd4f4c3b3a440ff9e771f06d63a39"}},{"name":"v1.8.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.8.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.8.0","commit":{"sha":"31110327ec45f3138e58ed247b2cf420fee481ec","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/31110327ec45f3138e58ed247b2cf420fee481ec"}},{"name":"v1.7","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.7","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.7","commit":{"sha":"df3290644ad7846d4ca93ba94af943ae1431ee1c","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/df3290644ad7846d4ca93ba94af943ae1431ee1c"}},{"name":"v1.6","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.6","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.6","commit":{"sha":"cabc55dc3b858b7e02076e2c1041f242f05b9f1c","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cabc55dc3b858b7e02076e2c1041f242f05b9f1c"}},{"name":"v1.5","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.5","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.5","commit":{"sha":"ece857f70e19b69ebeda244da71f892c8b05f53a","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ece857f70e19b69ebeda244da71f892c8b05f53a"}},{"name":"v1.4","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.4","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.4","commit":{"sha":"bf1e3b588b2a91afcabb64d5d28476bdbf074912","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bf1e3b588b2a91afcabb64d5d28476bdbf074912"}},{"name":"v1.3","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.3","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.3","commit":{"sha":"e6c64ab31ea88229f0c81ae9f83496db34452db7","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e6c64ab31ea88229f0c81ae9f83496db34452db7"}},{"name":"v1.2","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.2","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.2","commit":{"sha":"d40bec470e30bac4175d62a880b42757939553c9","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d40bec470e30bac4175d62a880b42757939553c9"}},{"name":"v1.1","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.1","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.1","commit":{"sha":"6658713d2790d1d47886ed9cee84ba645f160877","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6658713d2790d1d47886ed9cee84ba645f160877"}},{"name":"v1.0","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v1.0","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v1.0","commit":{"sha":"0855be0a4db8537b313b370b2a4642b7971a8296","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0855be0a4db8537b313b370b2a4642b7971a8296"}},{"name":"v0.7","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v0.7","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v0.7","commit":{"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"}},{"name":"v0.6","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v0.6","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v0.6","commit":{"sha":"4303c5b90e2216d927155e9609436ccb8984c495","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495"}},{"name":"v0.5","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v0.5","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v0.5","commit":{"sha":"936f4a97f1a86392637ec002bbf89ff036a5062d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d"}},{"name":"v0.4","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v0.4","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v0.4","commit":{"sha":"a3be28756101370fbc689eec3a7825c4c385a6c9","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a3be28756101370fbc689eec3a7825c4c385a6c9"}},{"name":"v0.3","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v0.3","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v0.3","commit":{"sha":"636e6112deb72277b3bffcc3303cd7e8a7431a5d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/636e6112deb72277b3bffcc3303cd7e8a7431a5d"}},{"name":"v0.2","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v0.2","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v0.2","commit":{"sha":"9f0b05161f9d1962b9156e6c91fc04f382028240","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/9f0b05161f9d1962b9156e6c91fc04f382028240"}},{"name":"v0.1","zipball_url":"https://api.github.com/repos/jacquev6/PyGithub/zipball/v0.1","tarball_url":"https://api.github.com/repos/jacquev6/PyGithub/tarball/v0.1","commit":{"sha":"dbdcda3591980de42617814f792969126e6402c3","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dbdcda3591980de42617814f792969126e6402c3"}}] +[{"name":"v1.12.2","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.12.2","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.12.2","commit":{"sha":"03a256a4052cacea998d8205a83d5b5465f31e18","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/03a256a4052cacea998d8205a83d5b5465f31e18"}},{"name":"v1.12.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.12.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.12.1","commit":{"sha":"67bdf8c0be32dc195a4545bf90100a1b55eebf45","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/67bdf8c0be32dc195a4545bf90100a1b55eebf45"}},{"name":"v1.12.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.12.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.12.0","commit":{"sha":"c8553031178cbf221d95af1ecc7ffd4707ac5cc9","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c8553031178cbf221d95af1ecc7ffd4707ac5cc9"}},{"name":"v1.11.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.11.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.11.1","commit":{"sha":"392a422ec2b9b97f7b1ad41e04cc62ef67ad0e7f","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/392a422ec2b9b97f7b1ad41e04cc62ef67ad0e7f"}},{"name":"v1.11.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.11.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.11.0","commit":{"sha":"6b32e1cdf588d8c3c651d355ffc3451dd34284b9","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6b32e1cdf588d8c3c651d355ffc3451dd34284b9"}},{"name":"v1.10.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.10.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.10.0","commit":{"sha":"4400a24872e52ee488067a7d0d8522ca3764b4e5","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4400a24872e52ee488067a7d0d8522ca3764b4e5"}},{"name":"v1.9.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.9.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.9.1","commit":{"sha":"a922319db0037babe9919a83b8b69efebcf942ea","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a922319db0037babe9919a83b8b69efebcf942ea"}},{"name":"v1.9.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.9.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.9.0","commit":{"sha":"808fe92191d287bbad6131c5a8be78b4ded745fd","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/808fe92191d287bbad6131c5a8be78b4ded745fd"}},{"name":"v1.8.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.8.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.8.1","commit":{"sha":"e3d76fc3ec3dd4f4c3b3a440ff9e771f06d63a39","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e3d76fc3ec3dd4f4c3b3a440ff9e771f06d63a39"}},{"name":"v1.8.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.8.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.8.0","commit":{"sha":"31110327ec45f3138e58ed247b2cf420fee481ec","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/31110327ec45f3138e58ed247b2cf420fee481ec"}},{"name":"v1.7","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.7","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.7","commit":{"sha":"df3290644ad7846d4ca93ba94af943ae1431ee1c","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/df3290644ad7846d4ca93ba94af943ae1431ee1c"}},{"name":"v1.6","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.6","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.6","commit":{"sha":"cabc55dc3b858b7e02076e2c1041f242f05b9f1c","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cabc55dc3b858b7e02076e2c1041f242f05b9f1c"}},{"name":"v1.5","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.5","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.5","commit":{"sha":"ece857f70e19b69ebeda244da71f892c8b05f53a","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ece857f70e19b69ebeda244da71f892c8b05f53a"}},{"name":"v1.4","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.4","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.4","commit":{"sha":"bf1e3b588b2a91afcabb64d5d28476bdbf074912","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/bf1e3b588b2a91afcabb64d5d28476bdbf074912"}},{"name":"v1.3","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.3","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.3","commit":{"sha":"e6c64ab31ea88229f0c81ae9f83496db34452db7","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e6c64ab31ea88229f0c81ae9f83496db34452db7"}},{"name":"v1.2","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.2","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.2","commit":{"sha":"d40bec470e30bac4175d62a880b42757939553c9","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d40bec470e30bac4175d62a880b42757939553c9"}},{"name":"v1.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.1","commit":{"sha":"6658713d2790d1d47886ed9cee84ba645f160877","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6658713d2790d1d47886ed9cee84ba645f160877"}},{"name":"v1.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.0","commit":{"sha":"0855be0a4db8537b313b370b2a4642b7971a8296","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0855be0a4db8537b313b370b2a4642b7971a8296"}},{"name":"v0.7","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v0.7","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v0.7","commit":{"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"}},{"name":"v0.6","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v0.6","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v0.6","commit":{"sha":"4303c5b90e2216d927155e9609436ccb8984c495","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495"}},{"name":"v0.5","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v0.5","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v0.5","commit":{"sha":"936f4a97f1a86392637ec002bbf89ff036a5062d","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d"}},{"name":"v0.4","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v0.4","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v0.4","commit":{"sha":"a3be28756101370fbc689eec3a7825c4c385a6c9","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a3be28756101370fbc689eec3a7825c4c385a6c9"}},{"name":"v0.3","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v0.3","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v0.3","commit":{"sha":"636e6112deb72277b3bffcc3303cd7e8a7431a5d","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/636e6112deb72277b3bffcc3303cd7e8a7431a5d"}},{"name":"v0.2","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v0.2","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v0.2","commit":{"sha":"9f0b05161f9d1962b9156e6c91fc04f382028240","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/9f0b05161f9d1962b9156e6c91fc04f382028240"}},{"name":"v0.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v0.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v0.1","commit":{"sha":"dbdcda3591980de42617814f792969126e6402c3","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dbdcda3591980de42617814f792969126e6402c3"}}] diff --git a/tests/ReplayData/Repository.testCreateGitTag.txt b/tests/ReplayData/Repository.testCreateGitTag.txt index e9b6c38830..27f5c75654 100644 --- a/tests/ReplayData/Repository.testCreateGitTag.txt +++ b/tests/ReplayData/Repository.testCreateGitTag.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/git/tags +/repos/PyGithub/PyGithub/git/tags {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"message": "Tag created by PyGithub", "tag": "TaggedByPyGithub", "type": "commit", "object": "0b820628236ab8bab3890860fc414fa757ca15f4"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4925'), ('content-length', '512'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"9a9c1f293329ee4c63e8cfb08772e3a1"'), ('date', 'Sun, 27 May 2012 05:56:08 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/git/tags/5ba561eaa2b7ca9015662510157b15d8f3b0232a')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags/5ba561eaa2b7ca9015662510157b15d8f3b0232a","message":"Tag created by PyGithub","tag":"TaggedByPyGithub","object":{"type":"commit","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0b820628236ab8bab3890860fc414fa757ca15f4","sha":"0b820628236ab8bab3890860fc414fa757ca15f4"},"tagger":{"email":"github.com@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-26T22:56:07-07:00"},"sha":"5ba561eaa2b7ca9015662510157b15d8f3b0232a"} +[('status', '201 Created'), ('x-ratelimit-remaining', '4925'), ('content-length', '512'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"9a9c1f293329ee4c63e8cfb08772e3a1"'), ('date', 'Sun, 27 May 2012 05:56:08 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/git/tags/5ba561eaa2b7ca9015662510157b15d8f3b0232a')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags/5ba561eaa2b7ca9015662510157b15d8f3b0232a","message":"Tag created by PyGithub","tag":"TaggedByPyGithub","object":{"type":"commit","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0b820628236ab8bab3890860fc414fa757ca15f4","sha":"0b820628236ab8bab3890860fc414fa757ca15f4"},"tagger":{"email":"github.com@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-26T22:56:07-07:00"},"sha":"5ba561eaa2b7ca9015662510157b15d8f3b0232a"} diff --git a/tests/ReplayData/Repository.testCreateGitTagWithAllArguments.txt b/tests/ReplayData/Repository.testCreateGitTagWithAllArguments.txt index c477601c5f..8fbfd63342 100644 --- a/tests/ReplayData/Repository.testCreateGitTagWithAllArguments.txt +++ b/tests/ReplayData/Repository.testCreateGitTagWithAllArguments.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/git/tags +/repos/PyGithub/PyGithub/git/tags {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"tagger": {"date": "2008-07-09T16:13:30+12:00", "name": "John Doe", "email": "j.doe@vincent-jacques.net"}, "message": "Tag also created by PyGithub", "tag": "TaggedByPyGithub2", "type": "commit", "object": "526946197ae9da59c6507cacd13ad6f1cfb686ea"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4922'), ('content-length', '506'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"a7e5d9e4342e323fa513f880968b80f4"'), ('date', 'Sun, 27 May 2012 05:57:03 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/git/tags/f0e99a8335fbc84c53366c4a681118468f266625')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags/f0e99a8335fbc84c53366c4a681118468f266625","message":"Tag also created by PyGithub","tag":"TaggedByPyGithub2","object":{"type":"commit","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/526946197ae9da59c6507cacd13ad6f1cfb686ea","sha":"526946197ae9da59c6507cacd13ad6f1cfb686ea"},"tagger":{"email":"j.doe@vincent-jacques.net","name":"John Doe","date":"2008-07-08T21:13:30-07:00"},"sha":"f0e99a8335fbc84c53366c4a681118468f266625"} +[('status', '201 Created'), ('x-ratelimit-remaining', '4922'), ('content-length', '506'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"a7e5d9e4342e323fa513f880968b80f4"'), ('date', 'Sun, 27 May 2012 05:57:03 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/git/tags/f0e99a8335fbc84c53366c4a681118468f266625')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags/f0e99a8335fbc84c53366c4a681118468f266625","message":"Tag also created by PyGithub","tag":"TaggedByPyGithub2","object":{"type":"commit","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/526946197ae9da59c6507cacd13ad6f1cfb686ea","sha":"526946197ae9da59c6507cacd13ad6f1cfb686ea"},"tagger":{"email":"j.doe@vincent-jacques.net","name":"John Doe","date":"2008-07-08T21:13:30-07:00"},"sha":"f0e99a8335fbc84c53366c4a681118468f266625"} diff --git a/tests/ReplayData/Repository.testCreateGitTree.txt b/tests/ReplayData/Repository.testCreateGitTree.txt index 913a953541..ac3780152f 100644 --- a/tests/ReplayData/Repository.testCreateGitTree.txt +++ b/tests/ReplayData/Repository.testCreateGitTree.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/git/trees +/repos/PyGithub/PyGithub/git/trees {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"tree": [{"content": "File created by PyGithub", "path": "Foobar.txt", "type": "blob", "mode": "100644"}]} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4937'), ('content-length', '382'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"0446b5f676814b5801ab6744ef9b59f7"'), ('date', 'Sun, 27 May 2012 05:48:14 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/git/trees/41cf8c178c636a018d537cb20daae09391efd70b')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/41cf8c178c636a018d537cb20daae09391efd70b","sha":"41cf8c178c636a018d537cb20daae09391efd70b","tree":[{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197","size":24,"path":"Foobar.txt","sha":"73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197","mode":"100644"}]} +[('status', '201 Created'), ('x-ratelimit-remaining', '4937'), ('content-length', '382'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"0446b5f676814b5801ab6744ef9b59f7"'), ('date', 'Sun, 27 May 2012 05:48:14 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/git/trees/41cf8c178c636a018d537cb20daae09391efd70b')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/41cf8c178c636a018d537cb20daae09391efd70b","sha":"41cf8c178c636a018d537cb20daae09391efd70b","tree":[{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197","size":24,"path":"Foobar.txt","sha":"73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197","mode":"100644"}]} diff --git a/tests/ReplayData/Repository.testCreateGitTreeWithBaseTree.txt b/tests/ReplayData/Repository.testCreateGitTreeWithBaseTree.txt index 977f345f66..8fe93032df 100644 --- a/tests/ReplayData/Repository.testCreateGitTreeWithBaseTree.txt +++ b/tests/ReplayData/Repository.testCreateGitTreeWithBaseTree.txt @@ -2,20 +2,20 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/git/trees/41cf8c178c636a018d537cb20daae09391efd70b +/repos/PyGithub/PyGithub/git/trees/41cf8c178c636a018d537cb20daae09391efd70b {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '381'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f33782d7031ff19c5301bb52068533cf"'), ('date', 'Fri, 01 Jun 2012 20:02:40 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/41cf8c178c636a018d537cb20daae09391efd70b","sha":"41cf8c178c636a018d537cb20daae09391efd70b","tree":[{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/5dd930f591cd5188e9ea7200e308ad355182a1d8","sha":"5dd930f591cd5188e9ea7200e308ad355182a1d8","size":0,"path":"Barbaz.txt","mode":"100644"}]} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/41cf8c178c636a018d537cb20daae09391efd70b","sha":"41cf8c178c636a018d537cb20daae09391efd70b","tree":[{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/5dd930f591cd5188e9ea7200e308ad355182a1d8","sha":"5dd930f591cd5188e9ea7200e308ad355182a1d8","size":0,"path":"Barbaz.txt","mode":"100644"}]} https POST api.github.com None -/repos/jacquev6/PyGithub/git/trees +/repos/PyGithub/PyGithub/git/trees {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"tree": [{"content": "File also created by PyGithub", "path": "Barbaz.txt", "type": "blob", "mode": "100644"}], "base_tree": "41cf8c178c636a018d537cb20daae09391efd70b"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4934'), ('content-length', '599'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f04d90b327eaf7b7600bc22fd11a41a4"'), ('date', 'Sun, 27 May 2012 05:49:48 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528')] -{"tree":[{"type":"blob","sha":"92be1df4e473d2541c5c166ad145a39d0324de8b","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/92be1df4e473d2541c5c166ad145a39d0324de8b","size":29,"path":"Barbaz.txt","mode":"100644"},{"type":"blob","sha":"73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197","size":24,"path":"Foobar.txt","mode":"100644"}],"sha":"107139a922f33bab6fbeb9f9eb8787e7f19e0528","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528"} +[('status', '201 Created'), ('x-ratelimit-remaining', '4934'), ('content-length', '599'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f04d90b327eaf7b7600bc22fd11a41a4"'), ('date', 'Sun, 27 May 2012 05:49:48 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528')] +{"tree":[{"type":"blob","sha":"92be1df4e473d2541c5c166ad145a39d0324de8b","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/92be1df4e473d2541c5c166ad145a39d0324de8b","size":29,"path":"Barbaz.txt","mode":"100644"},{"type":"blob","sha":"73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197","size":24,"path":"Foobar.txt","mode":"100644"}],"sha":"107139a922f33bab6fbeb9f9eb8787e7f19e0528","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/107139a922f33bab6fbeb9f9eb8787e7f19e0528"} diff --git a/tests/ReplayData/Repository.testCreateGitTreeWithNullSha.txt b/tests/ReplayData/Repository.testCreateGitTreeWithNullSha.txt index 239fab6274..6bd83f9b3c 100644 --- a/tests/ReplayData/Repository.testCreateGitTreeWithNullSha.txt +++ b/tests/ReplayData/Repository.testCreateGitTreeWithNullSha.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/git/trees +/repos/PyGithub/PyGithub/git/trees {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"tree": [{"path": "Baz.bar", "type": "blob", "mode": "100644", "sha": null}]} 201 -[('date', 'Fri, 27 Dec 2019 00:51:47 GMT'), ('content-type', 'application/json; charset=utf-8'), ('content-length', '401'), ('server', 'GitHub.com'), ('status', '201 Created'), ('x-ratelimit-limit', '5000'), ('x-ratelimit-remaining', '4996'), ('x-ratelimit-reset', '1577411349'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('etag', '"92c715dcb38b27913fafb5f0b0033832"'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-accepted-oauth-scopes', ''), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/git/trees/9b8166fc80d0f0fe9192d4bf1dbaa87f194e012f'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type'), ('access-control-allow-origin', '*'), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('x-frame-options', 'deny'), ('x-content-type-options', 'nosniff'), ('x-xss-protection', '1; mode=block'), ('referrer-policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('content-security-policy', "default-src 'none'"), ('x-github-request-id', 'CDCA:2D1A:67EE9D:75F15E:5E0555A3')] -{"sha":"9b8166fc80d0f0fe9192d4bf1dbaa87f194e012f","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/9b8166fc80d0f0fe9192d4bf1dbaa87f194e012f","tree":[{"path":"README.md","mode":"100644","type":"blob","sha":"54f3a4bf0a60f29d7c4798b590f92ffd56dd6d21","size":12,"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/54f3a4bf0a60f29d7c4798b590f92ffd56dd6d21"}],"truncated":false} +[('date', 'Fri, 27 Dec 2019 00:51:47 GMT'), ('content-type', 'application/json; charset=utf-8'), ('content-length', '401'), ('server', 'GitHub.com'), ('status', '201 Created'), ('x-ratelimit-limit', '5000'), ('x-ratelimit-remaining', '4996'), ('x-ratelimit-reset', '1577411349'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('etag', '"92c715dcb38b27913fafb5f0b0033832"'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-accepted-oauth-scopes', ''), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/git/trees/9b8166fc80d0f0fe9192d4bf1dbaa87f194e012f'), ('x-github-media-type', 'github.v3; format=json'), ('access-control-expose-headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type'), ('access-control-allow-origin', '*'), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('x-frame-options', 'deny'), ('x-content-type-options', 'nosniff'), ('x-xss-protection', '1; mode=block'), ('referrer-policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('content-security-policy', "default-src 'none'"), ('x-github-request-id', 'CDCA:2D1A:67EE9D:75F15E:5E0555A3')] +{"sha":"9b8166fc80d0f0fe9192d4bf1dbaa87f194e012f","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/9b8166fc80d0f0fe9192d4bf1dbaa87f194e012f","tree":[{"path":"README.md","mode":"100644","type":"blob","sha":"54f3a4bf0a60f29d7c4798b590f92ffd56dd6d21","size":12,"url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/54f3a4bf0a60f29d7c4798b590f92ffd56dd6d21"}],"truncated":false} diff --git a/tests/ReplayData/Repository.testCreateGitTreeWithSha.txt b/tests/ReplayData/Repository.testCreateGitTreeWithSha.txt index d999349aee..8f5326b001 100644 --- a/tests/ReplayData/Repository.testCreateGitTreeWithSha.txt +++ b/tests/ReplayData/Repository.testCreateGitTreeWithSha.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/git/trees +/repos/PyGithub/PyGithub/git/trees {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"tree": [{"path": "Barbaz.txt", "type": "blob", "mode": "100644", "sha": "5dd930f591cd5188e9ea7200e308ad355182a1d8"}]} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4997'), ('content-length', '381'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f33782d7031ff19c5301bb52068533cf"'), ('date', 'Fri, 01 Jun 2012 17:51:04 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/git/trees/fae707821159639589bf94f3fb0a7154ec5d441b')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fae707821159639589bf94f3fb0a7154ec5d441b","sha":"fae707821159639589bf94f3fb0a7154ec5d441b","tree":[{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/5dd930f591cd5188e9ea7200e308ad355182a1d8","sha":"5dd930f591cd5188e9ea7200e308ad355182a1d8","size":0,"path":"Barbaz.txt","mode":"100644"}]} +[('status', '201 Created'), ('x-ratelimit-remaining', '4997'), ('content-length', '381'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f33782d7031ff19c5301bb52068533cf"'), ('date', 'Fri, 01 Jun 2012 17:51:04 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/git/trees/fae707821159639589bf94f3fb0a7154ec5d441b')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/fae707821159639589bf94f3fb0a7154ec5d441b","sha":"fae707821159639589bf94f3fb0a7154ec5d441b","tree":[{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/5dd930f591cd5188e9ea7200e308ad355182a1d8","sha":"5dd930f591cd5188e9ea7200e308ad355182a1d8","size":0,"path":"Barbaz.txt","mode":"100644"}]} diff --git a/tests/ReplayData/Repository.testCreateHookWithAllParameters.txt b/tests/ReplayData/Repository.testCreateHookWithAllParameters.txt index ed588f583b..0d79110df7 100644 --- a/tests/ReplayData/Repository.testCreateHookWithAllParameters.txt +++ b/tests/ReplayData/Repository.testCreateHookWithAllParameters.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/hooks +/repos/PyGithub/PyGithub/hooks {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"active": false, "config": {"url": "http://foobar.com"}, "name": "web", "events": ["fork"]} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4997'), ('content-length', '298'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c3b371e4de1a0ec350b3fcc0c458e0f9"'), ('date', 'Sat, 19 May 2012 06:01:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/hooks/257993')] -{"updated_at":"2012-05-19T06:01:45Z","last_response":{"status":"unused","message":null,"code":null},"events":["fork"],"url":"https://api.github.com/repos/jacquev6/PyGithub/hooks/257993","active":true,"name":"web","config":{"url":"http://foobar.com"},"id":257993,"created_at":"2012-05-19T06:01:45Z"} +[('status', '201 Created'), ('x-ratelimit-remaining', '4997'), ('content-length', '298'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c3b371e4de1a0ec350b3fcc0c458e0f9"'), ('date', 'Sat, 19 May 2012 06:01:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/hooks/257993')] +{"updated_at":"2012-05-19T06:01:45Z","last_response":{"status":"unused","message":null,"code":null},"events":["fork"],"url":"https://api.github.com/repos/PyGithub/PyGithub/hooks/257993","active":true,"name":"web","config":{"url":"http://foobar.com"},"id":257993,"created_at":"2012-05-19T06:01:45Z"} diff --git a/tests/ReplayData/Repository.testCreateHookWithMinimalParameters.txt b/tests/ReplayData/Repository.testCreateHookWithMinimalParameters.txt index 4ed5c51e15..e4fa2bb065 100644 --- a/tests/ReplayData/Repository.testCreateHookWithMinimalParameters.txt +++ b/tests/ReplayData/Repository.testCreateHookWithMinimalParameters.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/hooks +/repos/PyGithub/PyGithub/hooks {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"config": {"url": "http://foobar.com"}, "name": "web"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4994'), ('content-length', '298'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"276d18854081948260c44cf645c54bd0"'), ('date', 'Sat, 19 May 2012 05:03:14 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/hooks/257967')] -{"updated_at":"2012-05-19T05:03:14Z","url":"https://api.github.com/repos/jacquev6/PyGithub/hooks/257967","config":{"url":"http://foobar.com"},"last_response":{"status":"unused","message":null,"code":null},"active":true,"events":["push"],"name":"web","created_at":"2012-05-19T05:03:14Z","id":257967} +[('status', '201 Created'), ('x-ratelimit-remaining', '4994'), ('content-length', '298'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"276d18854081948260c44cf645c54bd0"'), ('date', 'Sat, 19 May 2012 05:03:14 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/hooks/257967')] +{"updated_at":"2012-05-19T05:03:14Z","url":"https://api.github.com/repos/PyGithub/PyGithub/hooks/257967","config":{"url":"http://foobar.com"},"last_response":{"status":"unused","message":null,"code":null},"active":true,"events":["push"],"name":"web","created_at":"2012-05-19T05:03:14Z","id":257967} diff --git a/tests/ReplayData/Repository.testCreateIssue.txt b/tests/ReplayData/Repository.testCreateIssue.txt index 57edcd3acb..23c59dfb81 100644 --- a/tests/ReplayData/Repository.testCreateIssue.txt +++ b/tests/ReplayData/Repository.testCreateIssue.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/issues +/repos/PyGithub/PyGithub/issues {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"title": "Issue created by PyGithub"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4935'), ('content-length', '748'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"26e2222fe8411843d3fd2b024d50c567"'), ('date', 'Sat, 19 May 2012 10:38:24 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/issues/28')] -{"closed_by":null,"state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Issue created by PyGithub","comments":0,"updated_at":"2012-05-19T10:38:23Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"closed_at":null,"body":null,"number":28,"milestone":null,"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","assignee":null,"labels":[],"id":4653757,"html_url":"https://github.com/jacquev6/PyGithub/issues/28","created_at":"2012-05-19T10:38:23Z"} +[('status', '201 Created'), ('x-ratelimit-remaining', '4935'), ('content-length', '748'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"26e2222fe8411843d3fd2b024d50c567"'), ('date', 'Sat, 19 May 2012 10:38:24 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/issues/28')] +{"closed_by":null,"state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Issue created by PyGithub","comments":0,"updated_at":"2012-05-19T10:38:23Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"closed_at":null,"body":null,"number":28,"milestone":null,"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","assignee":null,"labels":[],"id":4653757,"html_url":"https://github.com/PyGithub/PyGithub/issues/28","created_at":"2012-05-19T10:38:23Z"} diff --git a/tests/ReplayData/Repository.testCreateIssueWithAllArguments.txt b/tests/ReplayData/Repository.testCreateIssueWithAllArguments.txt index 941a9c4a6d..8146cdf8f3 100644 --- a/tests/ReplayData/Repository.testCreateIssueWithAllArguments.txt +++ b/tests/ReplayData/Repository.testCreateIssueWithAllArguments.txt @@ -13,31 +13,31 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/milestones/2 +/repos/PyGithub/PyGithub/milestones/2 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4990'), ('content-length', '899'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"5fc4dbe5fd444fd2ea9f90c698b432cf"'), ('date', 'Fri, 01 Jun 2012 20:09:24 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":6,"number":2,"id":93547} +{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":6,"number":2,"id":93547} https GET api.github.com None -/repos/jacquev6/PyGithub/labels/Question +/repos/PyGithub/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '107'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"931e58d337b2290717303141eda89cd7"'), ('date', 'Fri, 01 Jun 2012 20:09:25 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"color":"02e10c","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question"} +{"color":"02e10c","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question"} https POST api.github.com None -/repos/jacquev6/PyGithub/issues +/repos/PyGithub/PyGithub/issues {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"body": "Body created by PyGithub", "assignee": "jacquev6", "assignees": ["jacquev6", "stuglaser"], "labels": ["Question"], "milestone": 2, "title": "Issue also created by PyGithub"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4943'), ('content-length', '2069'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d131a11b793937127bf7d0ce56e2805e"'), ('date', 'Sun, 27 May 2012 05:40:15 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/issues/30')] -{"updated_at":"2012-05-27T05:40:15Z","body":"Body created by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/30","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547,"closed_issues":2},"number":30,"closed_by":null,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignees":[{"url":"https://api.github.com/users/stuglaser","gravatar_id":"","login":"stuglaser","avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","id":1527117},{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146}],"closed_at":null,"title":"Issue also created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-27T05:40:15Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":4769659,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/30"} +[('status', '201 Created'), ('x-ratelimit-remaining', '4943'), ('content-length', '2069'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d131a11b793937127bf7d0ce56e2805e"'), ('date', 'Sun, 27 May 2012 05:40:15 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/issues/30')] +{"updated_at":"2012-05-27T05:40:15Z","body":"Body created by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547,"closed_issues":2},"number":30,"closed_by":null,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignees":[{"url":"https://api.github.com/users/stuglaser","gravatar_id":"","login":"stuglaser","avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","id":1527117},{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146}],"closed_at":null,"title":"Issue also created by PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-27T05:40:15Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":4769659,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/30"} diff --git a/tests/ReplayData/Repository.testCreateIssueWithAllArgumentsStringLabel.txt b/tests/ReplayData/Repository.testCreateIssueWithAllArgumentsStringLabel.txt index cd0087dbf9..8f5dd98e01 100644 --- a/tests/ReplayData/Repository.testCreateIssueWithAllArgumentsStringLabel.txt +++ b/tests/ReplayData/Repository.testCreateIssueWithAllArgumentsStringLabel.txt @@ -13,20 +13,20 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/milestones/2 +/repos/PyGithub/PyGithub/milestones/2 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4990'), ('content-length', '899'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"5fc4dbe5fd444fd2ea9f90c698b432cf"'), ('date', 'Fri, 01 Jun 2012 20:09:24 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":6,"number":2,"id":93547} +{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":6,"number":2,"id":93547} https POST api.github.com None -/repos/jacquev6/PyGithub/issues +/repos/PyGithub/PyGithub/issues {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"body": "Body created by PyGithub", "assignee": "jacquev6", "assignees": ["jacquev6", "stuglaser"], "labels": ["Question"], "milestone": 2, "title": "Issue also created by PyGithub"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4943'), ('content-length', '2069'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d131a11b793937127bf7d0ce56e2805e"'), ('date', 'Sun, 27 May 2012 05:40:15 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/issues/30')] -{"updated_at":"2012-05-27T05:40:15Z","body":"Body created by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/30","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547,"closed_issues":2},"number":30,"closed_by":null,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignees":[{"url":"https://api.github.com/users/stuglaser","gravatar_id":"","login":"stuglaser","avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","id":1527117},{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146}],"closed_at":null,"title":"Issue also created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-27T05:40:15Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":4769659,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/30"} +[('status', '201 Created'), ('x-ratelimit-remaining', '4943'), ('content-length', '2069'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d131a11b793937127bf7d0ce56e2805e"'), ('date', 'Sun, 27 May 2012 05:40:15 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/issues/30')] +{"updated_at":"2012-05-27T05:40:15Z","body":"Body created by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547,"closed_issues":2},"number":30,"closed_by":null,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"assignees":[{"url":"https://api.github.com/users/stuglaser","gravatar_id":"","login":"stuglaser","avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","id":1527117},{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146}],"closed_at":null,"title":"Issue also created by PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-27T05:40:15Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":4769659,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/30"} diff --git a/tests/ReplayData/Repository.testCreateKey.txt b/tests/ReplayData/Repository.testCreateKey.txt index 67f35c3967..de73543ff7 100644 --- a/tests/ReplayData/Repository.testCreateKey.txt +++ b/tests/ReplayData/Repository.testCreateKey.txt @@ -2,7 +2,7 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/keys +/repos/PyGithub/PyGithub/keys {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw== vincent@IDEE", "read_only": false, "title": "Key added through PyGithub"} 201 diff --git a/tests/ReplayData/Repository.testCreateLabel.txt b/tests/ReplayData/Repository.testCreateLabel.txt index e70e9749e3..447aadb978 100644 --- a/tests/ReplayData/Repository.testCreateLabel.txt +++ b/tests/ReplayData/Repository.testCreateLabel.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/labels +/repos/PyGithub/PyGithub/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.symmetra-preview+json'} {"color": "00ff00", "name": "Label with silly name % * + created by PyGithub", "description": "Description of label with silly name"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4969'), ('content-length', '191'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"92b623552b1bac3f019d03c920305acd"'), ('date', 'Sat, 19 May 2012 10:17:36 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+silly+name+%25+%2A+%2B+created+by+PyGithub')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+silly+name+%25+%2A+%2B+created+by+PyGithub","name":"Label with silly name % * + created by PyGithub","color":"00ff00","description":"Description of label with silly name"} +[('status', '201 Created'), ('x-ratelimit-remaining', '4969'), ('content-length', '191'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"92b623552b1bac3f019d03c920305acd"'), ('date', 'Sat, 19 May 2012 10:17:36 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/labels/Label+with+silly+name+%25+%2A+%2B+created+by+PyGithub')] +{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Label+with+silly+name+%25+%2A+%2B+created+by+PyGithub","name":"Label with silly name % * + created by PyGithub","color":"00ff00","description":"Description of label with silly name"} diff --git a/tests/ReplayData/Repository.testCreateMilestone.txt b/tests/ReplayData/Repository.testCreateMilestone.txt index 531e041658..7d554887e3 100644 --- a/tests/ReplayData/Repository.testCreateMilestone.txt +++ b/tests/ReplayData/Repository.testCreateMilestone.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/milestones +/repos/PyGithub/PyGithub/milestones {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"due_on": "2012-06-15T00:00:00Z", "state": "open", "description": "Description created by PyGithub", "title": "Milestone created by PyGithub"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4958'), ('content-length', '604'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"bb5eb08c923020c102396cd0c9bfdbc5"'), ('date', 'Sat, 19 May 2012 10:24:13 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/milestones/5')] -{"closed_issues":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","due_on":"2012-06-15T07:00:00Z","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"number":5,"open_issues":0,"title":"Milestone created by PyGithub","created_at":"2012-05-19T10:24:13Z","state":"open","description":"Description created by PyGithub","id":121463} +[('status', '201 Created'), ('x-ratelimit-remaining', '4958'), ('content-length', '604'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"bb5eb08c923020c102396cd0c9bfdbc5"'), ('date', 'Sat, 19 May 2012 10:24:13 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/milestones/5')] +{"closed_issues":0,"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/5","due_on":"2012-06-15T07:00:00Z","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"number":5,"open_issues":0,"title":"Milestone created by PyGithub","created_at":"2012-05-19T10:24:13Z","state":"open","description":"Description created by PyGithub","id":121463} diff --git a/tests/ReplayData/Repository.testCreateMilestoneWithMinimalArguments.txt b/tests/ReplayData/Repository.testCreateMilestoneWithMinimalArguments.txt index fd3a21c675..d30c9d6b16 100644 --- a/tests/ReplayData/Repository.testCreateMilestoneWithMinimalArguments.txt +++ b/tests/ReplayData/Repository.testCreateMilestoneWithMinimalArguments.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/milestones +/repos/PyGithub/PyGithub/milestones {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"title": "Milestone also created by PyGithub"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4940'), ('content-length', '562'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"575796ba6077c16fdc79f4d38885aa5f"'), ('date', 'Sun, 27 May 2012 05:41:34 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/milestones/6')] -{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_issues":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/6","number":6,"title":"Milestone also created by PyGithub","due_on":null,"open_issues":0,"created_at":"2012-05-27T05:41:34Z","state":"open","description":null,"id":124480} +[('status', '201 Created'), ('x-ratelimit-remaining', '4940'), ('content-length', '562'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"575796ba6077c16fdc79f4d38885aa5f"'), ('date', 'Sun, 27 May 2012 05:41:34 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/milestones/6')] +{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_issues":0,"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/6","number":6,"title":"Milestone also created by PyGithub","due_on":null,"open_issues":0,"created_at":"2012-05-27T05:41:34Z","state":"open","description":null,"id":124480} diff --git a/tests/ReplayData/Repository.testCreateProject.txt b/tests/ReplayData/Repository.testCreateProject.txt index 206090c078..3489b29f17 100644 --- a/tests/ReplayData/Repository.testCreateProject.txt +++ b/tests/ReplayData/Repository.testCreateProject.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/projects +/repos/PyGithub/PyGithub/projects {'Content-Type': 'application/json', 'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"body": "Body of the project", "name": "Project created by PyGithub"} 201 [('Server', 'GitHub.com'), ('Date', 'Sun, 16 Dec 2018 21:19:42 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1380'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4796'), ('X-RateLimit-Reset', '1544995420'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', '"565a2dda7529a8155defb0167e21e577"'), ('Location', 'https://api.github.com/projects/2013820'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', '8E44:0E35:8F3000:194B9D1:5C16C16D')] -{"owner_url":"https://api.github.com/repos/jacquev6/PyGithub","url":"https://api.github.com/projects/2013820","html_url":"https://github.com/jacquev6/PyGithub/projects/1","columns_url":"https://api.github.com/projects/2013820/columns","id":2013820,"node_id":"MDc6UHJvamVjdDIwMTM4MjA=","name":"Project created by PyGithub","body":"Body of the project","number":1,"state":"open","creator":{"login":"jacquev6","id":1086629,"node_id":"MDQ6VXNlcjEwODY2Mjk=","avatar_url":"https://avatars0.githubusercontent.com/u/1086629?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"created_at":"2018-12-16T21:19:42Z","updated_at":"2018-12-16T21:19:42Z"} +{"owner_url":"https://api.github.com/repos/PyGithub/PyGithub","url":"https://api.github.com/projects/2013820","html_url":"https://github.com/PyGithub/PyGithub/projects/1","columns_url":"https://api.github.com/projects/2013820/columns","id":2013820,"node_id":"MDc6UHJvamVjdDIwMTM4MjA=","name":"Project created by PyGithub","body":"Body of the project","number":1,"state":"open","creator":{"login":"jacquev6","id":1086629,"node_id":"MDQ6VXNlcjEwODY2Mjk=","avatar_url":"https://avatars0.githubusercontent.com/u/1086629?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"created_at":"2018-12-16T21:19:42Z","updated_at":"2018-12-16T21:19:42Z"} diff --git a/tests/ReplayData/Repository.testCreatePull.txt b/tests/ReplayData/Repository.testCreatePull.txt index b1adc0a4e0..d0f1a4b1d1 100644 --- a/tests/ReplayData/Repository.testCreatePull.txt +++ b/tests/ReplayData/Repository.testCreatePull.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/pulls +/repos/PyGithub/PyGithub/pulls {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"body": "Body of the pull request", "head": "BeaverSoftware:master", "base": "topic/RewriteWithGeneratedCode", "maintainer_can_modify": true, "draft": false, "title": "Pull request created by PyGithub"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4963'), ('content-length', '4486'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1e069be7c3e3eb8b12afb1e1f5343dc9"'), ('date', 'Sun, 27 May 2012 09:25:37 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/pulls/31')] -{"merged":false,"patch_url":"https://github.com/jacquev6/PyGithub/pull/31.patch","mergeable":null,"head":{"ref":"master","label":"BeaverSoftware:master","repo":{"clone_url":"https://github.com/BeaverSoftware/PyGithub.git","has_downloads":true,"watchers":1,"updated_at":"2012-05-27T09:09:17Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":176,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/PyGithub","owner":{"url":"https://api.github.com/users/BeaverSoftware","gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","login":"BeaverSoftware","id":1424031,"avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:BeaverSoftware/PyGithub.git","pushed_at":"2012-05-27T09:09:17Z","created_at":"2012-05-27T08:50:04Z","id":4460787,"git_url":"git://github.com/BeaverSoftware/PyGithub.git","html_url":"https://github.com/BeaverSoftware/PyGithub","full_name":"BeaverSoftware/PyGithub"},"user":{"url":"https://api.github.com/users/BeaverSoftware","gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","login":"BeaverSoftware","id":1424031,"avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},"updated_at":"2012-05-27T09:25:36Z","issue_url":"https://github.com/jacquev6/PyGithub/issues/31","body":"Body of the pull request","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31","comments":0,"base":{"ref":"topic/RewriteWithGeneratedCode","label":"jacquev6:topic/RewriteWithGeneratedCode","repo":{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":15,"updated_at":"2012-05-27T08:50:04Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":3,"size":308,"private":false,"open_issues":16,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-27T07:29:24Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"git_url":"git://github.com/jacquev6/PyGithub.git","html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"},"user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"ed866fc43833802ab553e5ff8581c81bb00dd433"},"number":31,"merged_by":null,"closed_at":null,"title":"Pull request created by PyGithub","deletions":384,"merged_at":null,"diff_url":"https://github.com/jacquev6/PyGithub/pull/31.diff","additions":511,"_links":{"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31"},"comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/31/comments"},"issue":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/31"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/31"},"review_comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31/comments"}},"created_at":"2012-05-27T09:25:36Z","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"state":"open","id":1436215,"review_comments":0,"commits":3,"changed_files":45,"html_url":"https://github.com/jacquev6/PyGithub/pull/31"} +[('status', '201 Created'), ('x-ratelimit-remaining', '4963'), ('content-length', '4486'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1e069be7c3e3eb8b12afb1e1f5343dc9"'), ('date', 'Sun, 27 May 2012 09:25:37 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/pulls/31')] +{"merged":false,"patch_url":"https://github.com/PyGithub/PyGithub/pull/31.patch","mergeable":null,"head":{"ref":"master","label":"BeaverSoftware:master","repo":{"clone_url":"https://github.com/BeaverSoftware/PyGithub.git","has_downloads":true,"watchers":1,"updated_at":"2012-05-27T09:09:17Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":176,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/PyGithub","owner":{"url":"https://api.github.com/users/BeaverSoftware","gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","login":"BeaverSoftware","id":1424031,"avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:BeaverSoftware/PyGithub.git","pushed_at":"2012-05-27T09:09:17Z","created_at":"2012-05-27T08:50:04Z","id":4460787,"git_url":"git://github.com/BeaverSoftware/PyGithub.git","html_url":"https://github.com/BeaverSoftware/PyGithub","full_name":"BeaverSoftware/PyGithub"},"user":{"url":"https://api.github.com/users/BeaverSoftware","gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","login":"BeaverSoftware","id":1424031,"avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},"updated_at":"2012-05-27T09:25:36Z","issue_url":"https://github.com/PyGithub/PyGithub/issues/31","body":"Body of the pull request","url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31","comments":0,"base":{"ref":"topic/RewriteWithGeneratedCode","label":"jacquev6:topic/RewriteWithGeneratedCode","repo":{"clone_url":"https://github.com/PyGithub/PyGithub.git","has_downloads":true,"watchers":15,"updated_at":"2012-05-27T08:50:04Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":3,"size":308,"private":false,"open_issues":16,"svn_url":"https://github.com/PyGithub/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:PyGithub/PyGithub.git","pushed_at":"2012-05-27T07:29:24Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"git_url":"git://github.com/PyGithub/PyGithub.git","html_url":"https://github.com/PyGithub/PyGithub","full_name":"PyGithub/PyGithub"},"user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"ed866fc43833802ab553e5ff8581c81bb00dd433"},"number":31,"merged_by":null,"closed_at":null,"title":"Pull request created by PyGithub","deletions":384,"merged_at":null,"diff_url":"https://github.com/PyGithub/PyGithub/pull/31.diff","additions":511,"_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"},"comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/31/comments"},"issue":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/31"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/31"},"review_comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31/comments"}},"created_at":"2012-05-27T09:25:36Z","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"state":"open","id":1436215,"review_comments":0,"commits":3,"changed_files":45,"html_url":"https://github.com/PyGithub/PyGithub/pull/31"} diff --git a/tests/ReplayData/Repository.testCreatePullFromIssue.txt b/tests/ReplayData/Repository.testCreatePullFromIssue.txt index 3b0c58cdbb..4bf0007fac 100644 --- a/tests/ReplayData/Repository.testCreatePullFromIssue.txt +++ b/tests/ReplayData/Repository.testCreatePullFromIssue.txt @@ -2,20 +2,20 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/32 +/repos/PyGithub/PyGithub/issues/32 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4986'), ('content-length', '2141'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f88aca2b371ce28f651166ed9c5a2525"'), ('date', 'Fri, 01 Jun 2012 20:10:41 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"title":"Creation of a pull request from an issue is not covered by integration tests","pull_request":{"diff_url":"https://github.com/jacquev6/PyGithub/pull/32.diff","patch_url":"https://github.com/jacquev6/PyGithub/pull/32.patch","html_url":"https://github.com/jacquev6/PyGithub/pull/32"},"labels":[],"created_at":"2012-05-27T10:55:12Z","state":"closed","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/32","assignee":null,"closed_at":"2012-05-27T11:03:53Z","updated_at":"2012-05-27T11:03:53Z","body":"","comments":0,"number":32,"id":4770481,"html_url":"https://github.com/jacquev6/PyGithub/issues/32","closed_by":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":6,"number":2,"id":93547}} +{"title":"Creation of a pull request from an issue is not covered by integration tests","pull_request":{"diff_url":"https://github.com/PyGithub/PyGithub/pull/32.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/32.patch","html_url":"https://github.com/PyGithub/PyGithub/pull/32"},"labels":[],"created_at":"2012-05-27T10:55:12Z","state":"closed","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/32","assignee":null,"closed_at":"2012-05-27T11:03:53Z","updated_at":"2012-05-27T11:03:53Z","body":"","comments":0,"number":32,"id":4770481,"html_url":"https://github.com/PyGithub/PyGithub/issues/32","closed_by":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":6,"number":2,"id":93547}} https POST api.github.com None -/repos/jacquev6/PyGithub/pulls +/repos/PyGithub/PyGithub/pulls {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"head": "BeaverSoftware:master", "base": "topic/RewriteWithGeneratedCode", "issue": 32} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4933'), ('content-length', '4501'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"2b035f5260fe63dd611156fea3049af0"'), ('date', 'Sun, 27 May 2012 10:58:42 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/pulls/32')] -{"merged":false,"patch_url":"https://github.com/jacquev6/PyGithub/pull/32.patch","mergeable":null,"head":{"ref":"master","label":"BeaverSoftware:master","repo":{"clone_url":"https://github.com/BeaverSoftware/PyGithub.git","has_downloads":true,"watchers":1,"updated_at":"2012-05-27T10:58:08Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":176,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/PyGithub","owner":{"url":"https://api.github.com/users/BeaverSoftware","gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","login":"BeaverSoftware","id":1424031,"avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:BeaverSoftware/PyGithub.git","pushed_at":"2012-05-27T10:58:08Z","created_at":"2012-05-27T08:50:04Z","id":4460787,"git_url":"git://github.com/BeaverSoftware/PyGithub.git","html_url":"https://github.com/BeaverSoftware/PyGithub","full_name":"BeaverSoftware/PyGithub"},"user":{"url":"https://api.github.com/users/BeaverSoftware","gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","login":"BeaverSoftware","id":1424031,"avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"sha":"aff8a573a19f0a42380e1c0cbbc63b6dc719f38e"},"updated_at":"2012-05-27T10:58:41Z","issue_url":"https://github.com/jacquev6/PyGithub/issues/32","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/32","comments":0,"base":{"ref":"topic/RewriteWithGeneratedCode","label":"jacquev6:topic/RewriteWithGeneratedCode","repo":{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":15,"updated_at":"2012-05-27T10:54:09Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":3,"size":188,"private":false,"open_issues":17,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-27T10:54:09Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"git_url":"git://github.com/jacquev6/PyGithub.git","html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"},"user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"7ec473e793c0b63092d938707632639a41fd4369"},"number":32,"merged_by":null,"closed_at":null,"title":"Creation of a pull request from an issue is not covered by integration tests","deletions":0,"merged_at":null,"diff_url":"https://github.com/jacquev6/PyGithub/pull/32.diff","additions":0,"_links":{"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/32"},"comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/32/comments"},"issue":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/32"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/32"},"review_comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/32/comments"}},"created_at":"2012-05-27T10:58:41Z","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"state":"open","id":1436310,"review_comments":0,"commits":1,"changed_files":0,"html_url":"https://github.com/jacquev6/PyGithub/pull/32"} +[('status', '201 Created'), ('x-ratelimit-remaining', '4933'), ('content-length', '4501'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"2b035f5260fe63dd611156fea3049af0"'), ('date', 'Sun, 27 May 2012 10:58:42 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/pulls/32')] +{"merged":false,"patch_url":"https://github.com/PyGithub/PyGithub/pull/32.patch","mergeable":null,"head":{"ref":"master","label":"BeaverSoftware:master","repo":{"clone_url":"https://github.com/BeaverSoftware/PyGithub.git","has_downloads":true,"watchers":1,"updated_at":"2012-05-27T10:58:08Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":176,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/PyGithub","owner":{"url":"https://api.github.com/users/BeaverSoftware","gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","login":"BeaverSoftware","id":1424031,"avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:BeaverSoftware/PyGithub.git","pushed_at":"2012-05-27T10:58:08Z","created_at":"2012-05-27T08:50:04Z","id":4460787,"git_url":"git://github.com/BeaverSoftware/PyGithub.git","html_url":"https://github.com/BeaverSoftware/PyGithub","full_name":"BeaverSoftware/PyGithub"},"user":{"url":"https://api.github.com/users/BeaverSoftware","gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","login":"BeaverSoftware","id":1424031,"avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"sha":"aff8a573a19f0a42380e1c0cbbc63b6dc719f38e"},"updated_at":"2012-05-27T10:58:41Z","issue_url":"https://github.com/PyGithub/PyGithub/issues/32","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/32","comments":0,"base":{"ref":"topic/RewriteWithGeneratedCode","label":"jacquev6:topic/RewriteWithGeneratedCode","repo":{"clone_url":"https://github.com/PyGithub/PyGithub.git","has_downloads":true,"watchers":15,"updated_at":"2012-05-27T10:54:09Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":3,"size":188,"private":false,"open_issues":17,"svn_url":"https://github.com/PyGithub/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:PyGithub/PyGithub.git","pushed_at":"2012-05-27T10:54:09Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"git_url":"git://github.com/PyGithub/PyGithub.git","html_url":"https://github.com/PyGithub/PyGithub","full_name":"PyGithub/PyGithub"},"user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"7ec473e793c0b63092d938707632639a41fd4369"},"number":32,"merged_by":null,"closed_at":null,"title":"Creation of a pull request from an issue is not covered by integration tests","deletions":0,"merged_at":null,"diff_url":"https://github.com/PyGithub/PyGithub/pull/32.diff","additions":0,"_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/32"},"comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/32/comments"},"issue":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/32"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/32"},"review_comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/32/comments"}},"created_at":"2012-05-27T10:58:41Z","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"state":"open","id":1436310,"review_comments":0,"commits":1,"changed_files":0,"html_url":"https://github.com/PyGithub/PyGithub/pull/32"} diff --git a/tests/ReplayData/Repository.testCreateRepositoryDispatch.txt b/tests/ReplayData/Repository.testCreateRepositoryDispatch.txt index 066d3427cf..cbd762f789 100644 --- a/tests/ReplayData/Repository.testCreateRepositoryDispatch.txt +++ b/tests/ReplayData/Repository.testCreateRepositoryDispatch.txt @@ -2,7 +2,7 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/dispatches +/repos/PyGithub/PyGithub/dispatches {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"event_type": "type", "client_payload": {"foo": "bar"}} 204 @@ -13,7 +13,7 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/dispatches +/repos/PyGithub/PyGithub/dispatches {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"event_type": "type"} 204 diff --git a/tests/ReplayData/Repository.testDeleteFile.txt b/tests/ReplayData/Repository.testDeleteFile.txt index 604dac1c57..023f804493 100644 --- a/tests/ReplayData/Repository.testDeleteFile.txt +++ b/tests/ReplayData/Repository.testDeleteFile.txt @@ -2,20 +2,20 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/contents/doc/testCreateUpdateDeleteFile.md +/repos/PyGithub/PyGithub/contents/doc/testCreateUpdateDeleteFile.md {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('content-length', '16'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4997'), ('server', 'nginx/1.0.13'), ('last-modified', 'Wed, 05 Sep 2012 17:54:40 GMT'), ('connection', 'keep-alive'), ('etag', '"71786feb5f476112c5a8aa894ee7ca6c"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Sat, 08 Sep 2012 10:43:48 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"type":"file","sha":"5628799a7d517a4aaa0c1a7004d07569cd154df0","path":"doc/testCreateUpdateDeleteFile.md","encoding":"base64","_links":{"self":"https://api.github.com/repos/jacquev6/PyGithub/contents/doc/testCreateUpdateDeleteFile.md","html":"https://github.com/jacquev6/PyGithub/blob/master/doc/testCreateUpdateDeleteFile.md","git":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/5628799a7d517a4aaa0c1a7004d07569cd154df0"},"content":"SGVsbG8gd29ybGQ=","size":16,"name":"doc/testCreateUpdateDeleteFile.md"} +{"type":"file","sha":"5628799a7d517a4aaa0c1a7004d07569cd154df0","path":"doc/testCreateUpdateDeleteFile.md","encoding":"base64","_links":{"self":"https://api.github.com/repos/PyGithub/PyGithub/contents/doc/testCreateUpdateDeleteFile.md","html":"https://github.com/PyGithub/PyGithub/blob/master/doc/testCreateUpdateDeleteFile.md","git":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/5628799a7d517a4aaa0c1a7004d07569cd154df0"},"content":"SGVsbG8gd29ybGQ=","size":16,"name":"doc/testCreateUpdateDeleteFile.md"} https DELETE api.github.com None -/repos/jacquev6/PyGithub/contents/doc/testCreateUpdateDeleteFile.md +/repos/PyGithub/PyGithub/contents/doc/testCreateUpdateDeleteFile.md {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"branch": "master", "message": "Delete file for testDeleteFile", "sha": "5628799a7d517a4aaa0c1a7004d07569cd154df0"} 200 [('status', '200 OK'), ('content-length', '16'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4997'), ('server', 'nginx/1.0.13'), ('last-modified', 'Wed, 05 Sep 2012 17:54:40 GMT'), ('connection', 'keep-alive'), ('etag', '"71786feb5f476112c5a8aa894ee7ca6c"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Sat, 08 Sep 2012 10:43:48 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"content": null, "commit": {"committer": {"date": "2014-11-07T22:01:45Z", "name": "Scott Chacon", "email": "schacon@gmail.com"}, "author": {"date": "2014-11-07T22:01:45Z", "name": "Scott Chacon", "email": "schacon@gmail.com"}, "url": "https://api.github.com/repos/jacquev6/PyGithub/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", "tree": {"url": "https://api.github.com/repos/jacquev6/PyGithub/git/trees/691272480426f78a0138979dd3ce63b77f706feb", "sha": "691272480426f78a0138979dd3ce63b77f706feb"}, "html_url": "https://github.com/jacquev6/PyGithub/git/commit/7638417db6d59f3c431d3e1f261cc637155684cd", "sha": "7638417db6d59f3c431d3e1f261cc637155684cd", "parents": [{"url": "https://api.github.com/repos/jacquev6/PyGithub/git/commits/1acc419d4d6a9ce985db7be48c6349a0475975b5", "sha": "1acc419d4d6a9ce985db7be48c6349a0475975b5", "html_url": "https://github.com/jacquev6/PyGithub/git/commit/1acc419d4d6a9ce985db7be48c6349a0475975b5"}], "message": "Delete file for testDeleteFile"}} +{"content": null, "commit": {"committer": {"date": "2014-11-07T22:01:45Z", "name": "Scott Chacon", "email": "schacon@gmail.com"}, "author": {"date": "2014-11-07T22:01:45Z", "name": "Scott Chacon", "email": "schacon@gmail.com"}, "url": "https://api.github.com/repos/PyGithub/PyGithub/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", "tree": {"url": "https://api.github.com/repos/PyGithub/PyGithub/git/trees/691272480426f78a0138979dd3ce63b77f706feb", "sha": "691272480426f78a0138979dd3ce63b77f706feb"}, "html_url": "https://github.com/PyGithub/PyGithub/git/commit/7638417db6d59f3c431d3e1f261cc637155684cd", "sha": "7638417db6d59f3c431d3e1f261cc637155684cd", "parents": [{"url": "https://api.github.com/repos/PyGithub/PyGithub/git/commits/1acc419d4d6a9ce985db7be48c6349a0475975b5", "sha": "1acc419d4d6a9ce985db7be48c6349a0475975b5", "html_url": "https://github.com/PyGithub/PyGithub/git/commit/1acc419d4d6a9ce985db7be48c6349a0475975b5"}], "message": "Delete file for testDeleteFile"}} diff --git a/tests/ReplayData/Repository.testDeleteSecret.txt b/tests/ReplayData/Repository.testDeleteSecret.txt index 51dc3afe01..10b0f29f6b 100644 --- a/tests/ReplayData/Repository.testDeleteSecret.txt +++ b/tests/ReplayData/Repository.testDeleteSecret.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/actions/secrets/secret_name +/repos/PyGithub/PyGithub/actions/secrets/secret_name {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/Repository.testEditWithAllArguments.txt b/tests/ReplayData/Repository.testEditWithAllArguments.txt index 31b899ebf8..d5b662f3b8 100644 --- a/tests/ReplayData/Repository.testEditWithAllArguments.txt +++ b/tests/ReplayData/Repository.testEditWithAllArguments.txt @@ -2,20 +2,20 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"has_wiki": false, "name": "PyGithub", "has_issues": true, "homepage": "http://vincent-jacques.net/PyGithub", "private": true, "description": "Description edited by PyGithub", "has_projects": false, "allow_auto_merge": true, "allow_update_branch": true, "allow_forking": true, "allow_squash_merge": true, "allow_merge_commit": true, "allow_rebase_merge": true, "delete_branch_on_merge": true, "is_template": true, "use_squash_pr_title_as_default": true, "squash_merge_commit_title": "PR_TITLE", "squash_merge_commit_message": "COMMIT_MESSAGES", "merge_commit_title": "PR_TITLE", "merge_commit_message": "PR_BODY", "web_commit_signoff_required": true, "has_discussions": false} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4953'), ('content-length', '1109'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"749313ec2d171323deb61f9f4c85e84f"'), ('date', 'Sat, 26 May 2012 11:22:13 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"clone_url":"https://github.com/jacquev6/PyGithub.git","watchers":13,"updated_at":"2012-05-26T11:22:13Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","has_wiki":false,"has_issues":true,"fork":false,"forks":2,"size":412,"git_url":"git://github.com/jacquev6/PyGithub.git","private":false,"open_issues":16,"mirror_url":null,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"PyGithub","language":"Python","description":"Description edited by PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-26T10:01:38Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub", "has_projects": false, "allow_auto_merge": true, "allow_update_branch": true, "allow_forking": true, "allow_squash_merge": true, "allow_merge_commit": true, "allow_rebase_merge": true, "delete_branch_on_merge": true, "is_template": true, "use_squash_pr_title_as_default": true, "squash_merge_commit_title": "PR_TITLE", "squash_merge_commit_message": "COMMIT_MESSAGES", "merge_commit_title": "PR_TITLE", "merge_commit_message": "PR_BODY", "web_commit_signoff_required": true, "has_discussions": false} +{"clone_url":"https://github.com/PyGithub/PyGithub.git","watchers":13,"updated_at":"2012-05-26T11:22:13Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub","has_wiki":false,"has_issues":true,"fork":false,"forks":2,"size":412,"git_url":"git://github.com/PyGithub/PyGithub.git","private":false,"open_issues":16,"mirror_url":null,"svn_url":"https://github.com/PyGithub/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"PyGithub","language":"Python","description":"Description edited by PyGithub","ssh_url":"git@github.com:PyGithub/PyGithub.git","pushed_at":"2012-05-26T10:01:38Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/PyGithub/PyGithub","full_name":"PyGithub/PyGithub", "has_projects": false, "allow_auto_merge": true, "allow_update_branch": true, "allow_forking": true, "allow_squash_merge": true, "allow_merge_commit": true, "allow_rebase_merge": true, "delete_branch_on_merge": true, "is_template": true, "use_squash_pr_title_as_default": true, "squash_merge_commit_title": "PR_TITLE", "squash_merge_commit_message": "COMMIT_MESSAGES", "merge_commit_title": "PR_TITLE", "merge_commit_message": "PR_BODY", "web_commit_signoff_required": true, "has_discussions": false} https PATCH api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"name": "PyGithub", "description": "Python library implementing the full Github API v3"} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4952'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c1328d95af7d85267acb5754968b2c0b"'), ('date', 'Sat, 26 May 2012 11:22:13 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"clone_url":"https://github.com/jacquev6/PyGithub.git","watchers":13,"updated_at":"2012-05-26T11:22:13Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":2,"size":412,"private":false,"open_issues":16,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-26T10:01:38Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"git_url":"git://github.com/jacquev6/PyGithub.git","html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub", "has_discussions": false} +{"clone_url":"https://github.com/PyGithub/PyGithub.git","watchers":13,"updated_at":"2012-05-26T11:22:13Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":2,"size":412,"private":false,"open_issues":16,"svn_url":"https://github.com/PyGithub/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:PyGithub/PyGithub.git","pushed_at":"2012-05-26T10:01:38Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"git_url":"git://github.com/PyGithub/PyGithub.git","html_url":"https://github.com/PyGithub/PyGithub","full_name":"PyGithub/PyGithub", "has_discussions": false} diff --git a/tests/ReplayData/Repository.testEditWithDefaultBranch.txt b/tests/ReplayData/Repository.testEditWithDefaultBranch.txt index 0b98640355..3e6382d574 100644 --- a/tests/ReplayData/Repository.testEditWithDefaultBranch.txt +++ b/tests/ReplayData/Repository.testEditWithDefaultBranch.txt @@ -2,9 +2,9 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"default_branch": "master", "name": "PyGithub"} 200 [('status', '200 OK'), ('content-length', '1264'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-remaining', '4971'), ('server', 'nginx'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4493662efd70c37f486a910d29ef99c1"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Sat, 03 Nov 2012 08:41:07 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"master_branch":"master","watchers":97,"pushed_at":"2012-11-03T08:25:58Z","watchers_count":97,"forks":27,"svn_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","id":327146},"open_issues":11,"open_issues_count":11,"url":"https://api.github.com/repos/jacquev6/PyGithub","updated_at":"2012-11-03T08:41:07Z","permissions":{"push":true,"pull":true,"admin":true},"default_branch":"master","html_url":"https://github.com/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","language":"Python","has_downloads":true,"ssh_url":"git@github.com:jacquev6/PyGithub.git","size":256,"mirror_url":null,"fork":false,"full_name":"jacquev6/PyGithub","forks_count":27,"name":"PyGithub","created_at":"2012-02-25T12:53:47Z","git_url":"git://github.com/jacquev6/PyGithub.git","homepage":"http://vincent-jacques.net/PyGithub","has_issues":true,"private":false,"id":3544490,"network_count":27,"has_wiki":true} +{"master_branch":"master","watchers":97,"pushed_at":"2012-11-03T08:25:58Z","watchers_count":97,"forks":27,"svn_url":"https://github.com/PyGithub/PyGithub","description":"Python library implementing the full Github API v3","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","id":327146},"open_issues":11,"open_issues_count":11,"url":"https://api.github.com/repos/PyGithub/PyGithub","updated_at":"2012-11-03T08:41:07Z","permissions":{"push":true,"pull":true,"admin":true},"default_branch":"master","html_url":"https://github.com/PyGithub/PyGithub","clone_url":"https://github.com/PyGithub/PyGithub.git","language":"Python","has_downloads":true,"ssh_url":"git@github.com:PyGithub/PyGithub.git","size":256,"mirror_url":null,"fork":false,"full_name":"PyGithub/PyGithub","forks_count":27,"name":"PyGithub","created_at":"2012-02-25T12:53:47Z","git_url":"git://github.com/PyGithub/PyGithub.git","homepage":"http://vincent-jacques.net/PyGithub","has_issues":true,"private":false,"id":3544490,"network_count":27,"has_wiki":true} diff --git a/tests/ReplayData/Repository.testEditWithoutArguments.txt b/tests/ReplayData/Repository.testEditWithoutArguments.txt index 871a1d8773..d76132794c 100644 --- a/tests/ReplayData/Repository.testEditWithoutArguments.txt +++ b/tests/ReplayData/Repository.testEditWithoutArguments.txt @@ -2,9 +2,9 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"name": "PyGithub"} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4956'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"97977b426859a02f4d2a3fa4764b1a8e"'), ('date', 'Sat, 26 May 2012 11:21:43 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T10:01:38Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":16,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T10:01:38Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":13,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"permissions":{"admin":true,"pull":true,"push":true},"created_at":"2012-02-25T12:53:47Z"} +{"description":"Python library implementing the full Github API v3","full_name":"PyGithub/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T10:01:38Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:PyGithub/PyGithub.git","open_issues":16,"fork":false,"svn_url":"https://github.com/PyGithub/PyGithub","pushed_at":"2012-05-26T10:01:38Z","size":412,"html_url":"https://github.com/PyGithub/PyGithub","private":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","clone_url":"https://github.com/PyGithub/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":13,"git_url":"git://github.com/PyGithub/PyGithub.git","id":3544490,"permissions":{"admin":true,"pull":true,"push":true},"created_at":"2012-02-25T12:53:47Z"} diff --git a/tests/ReplayData/Repository.testGetArchiveLink.txt b/tests/ReplayData/Repository.testGetArchiveLink.txt index 9430c4e4e8..91ab9aef0c 100644 --- a/tests/ReplayData/Repository.testGetArchiveLink.txt +++ b/tests/ReplayData/Repository.testGetArchiveLink.txt @@ -2,41 +2,41 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/tarball +/repos/PyGithub/PyGithub/tarball {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 302 -[('status', '302 Found'), ('content-length', '0'), ('x-content-type-options', 'nosniff'), ('expires', 'Sat, 08 Sep 2012 11:03:00 GMT'), ('x-ratelimit-remaining', '4990'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://nodeload.github.com/jacquev6/PyGithub/tarball/master'), ('cache-control', 'public, must-revalidate, max-age=0'), ('date', 'Sat, 08 Sep 2012 11:03:00 GMT'), ('content-type', 'text/html;charset=utf-8')] +[('status', '302 Found'), ('content-length', '0'), ('x-content-type-options', 'nosniff'), ('expires', 'Sat, 08 Sep 2012 11:03:00 GMT'), ('x-ratelimit-remaining', '4990'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://nodeload.github.com/PyGithub/PyGithub/tarball/master'), ('cache-control', 'public, must-revalidate, max-age=0'), ('date', 'Sat, 08 Sep 2012 11:03:00 GMT'), ('content-type', 'text/html;charset=utf-8')] https GET api.github.com None -/repos/jacquev6/PyGithub/zipball +/repos/PyGithub/PyGithub/zipball {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 302 -[('status', '302 Found'), ('x-ratelimit-remaining', '4989'), ('x-content-type-options', 'nosniff'), ('expires', 'Sat, 08 Sep 2012 11:03:01 GMT'), ('content-length', '0'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://nodeload.github.com/jacquev6/PyGithub/zipball/master'), ('cache-control', 'public, must-revalidate, max-age=0'), ('date', 'Sat, 08 Sep 2012 11:03:01 GMT'), ('content-type', 'text/html;charset=utf-8')] +[('status', '302 Found'), ('x-ratelimit-remaining', '4989'), ('x-content-type-options', 'nosniff'), ('expires', 'Sat, 08 Sep 2012 11:03:01 GMT'), ('content-length', '0'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://nodeload.github.com/PyGithub/PyGithub/zipball/master'), ('cache-control', 'public, must-revalidate, max-age=0'), ('date', 'Sat, 08 Sep 2012 11:03:01 GMT'), ('content-type', 'text/html;charset=utf-8')] https GET api.github.com None -/repos/jacquev6/PyGithub/zipball/master +/repos/PyGithub/PyGithub/zipball/master {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 302 -[('status', '302 Found'), ('content-length', '0'), ('x-content-type-options', 'nosniff'), ('expires', 'Sat, 08 Sep 2012 11:03:01 GMT'), ('x-ratelimit-remaining', '4988'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://nodeload.github.com/jacquev6/PyGithub/zipball/master'), ('cache-control', 'public, must-revalidate, max-age=0'), ('date', 'Sat, 08 Sep 2012 11:03:01 GMT'), ('content-type', 'text/html;charset=utf-8')] +[('status', '302 Found'), ('content-length', '0'), ('x-content-type-options', 'nosniff'), ('expires', 'Sat, 08 Sep 2012 11:03:01 GMT'), ('x-ratelimit-remaining', '4988'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://nodeload.github.com/PyGithub/PyGithub/zipball/master'), ('cache-control', 'public, must-revalidate, max-age=0'), ('date', 'Sat, 08 Sep 2012 11:03:01 GMT'), ('content-type', 'text/html;charset=utf-8')] https GET api.github.com None -/repos/jacquev6/PyGithub/tarball/develop +/repos/PyGithub/PyGithub/tarball/develop {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 302 -[('status', '302 Found'), ('x-ratelimit-remaining', '4987'), ('x-content-type-options', 'nosniff'), ('expires', 'Sat, 08 Sep 2012 11:03:01 GMT'), ('content-length', '0'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://nodeload.github.com/jacquev6/PyGithub/tarball/develop'), ('cache-control', 'public, must-revalidate, max-age=0'), ('date', 'Sat, 08 Sep 2012 11:03:01 GMT'), ('content-type', 'text/html;charset=utf-8')] +[('status', '302 Found'), ('x-ratelimit-remaining', '4987'), ('x-content-type-options', 'nosniff'), ('expires', 'Sat, 08 Sep 2012 11:03:01 GMT'), ('content-length', '0'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://nodeload.github.com/PyGithub/PyGithub/tarball/develop'), ('cache-control', 'public, must-revalidate, max-age=0'), ('date', 'Sat, 08 Sep 2012 11:03:01 GMT'), ('content-type', 'text/html;charset=utf-8')] diff --git a/tests/ReplayData/Repository.testGetAutolinks.txt b/tests/ReplayData/Repository.testGetAutolinks.txt index 3eeadfec20..62be6ad979 100644 --- a/tests/ReplayData/Repository.testGetAutolinks.txt +++ b/tests/ReplayData/Repository.testGetAutolinks.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/autolinks +/repos/PyGithub/PyGithub/autolinks {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testGetBranch.txt b/tests/ReplayData/Repository.testGetBranch.txt index 8c6af2d44d..13c6cbc3a4 100644 --- a/tests/ReplayData/Repository.testGetBranch.txt +++ b/tests/ReplayData/Repository.testGetBranch.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/branches/develop +/repos/PyGithub/PyGithub/branches/develop {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4997'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('content-length', '1679'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"b604c4203d816dfb31c48acf4171ed76"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Sat, 08 Sep 2012 12:06:47 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"_links":{"self":"https://api.github.com/repos/jacquev6/PyGithub/branches/develop","html":"https://github.com/jacquev6/PyGithub/tree/develop"},"commit":{"sha":"03058a36164d2a7d946db205f25538434fa27d94","author":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"commit":{"message":"Commit statuses (issue #67)","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-09-08T04:41:15-07:00"},"comment_count":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/03058a36164d2a7d946db205f25538434fa27d94","tree":{"sha":"b1b660dc63a2de976b7c5aa1e303adce299bbeb8","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b1b660dc63a2de976b7c5aa1e303adce299bbeb8"},"committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-09-08T04:41:15-07:00"}},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/03058a36164d2a7d946db205f25538434fa27d94","parents":[{"sha":"f109c644fddee5512f8e88a4a22d9c3aac68a306","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f109c644fddee5512f8e88a4a22d9c3aac68a306"}],"committer":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}},"name":"develop"} +{"_links":{"self":"https://api.github.com/repos/PyGithub/PyGithub/branches/develop","html":"https://github.com/PyGithub/PyGithub/tree/develop"},"commit":{"sha":"03058a36164d2a7d946db205f25538434fa27d94","author":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"commit":{"message":"Commit statuses (issue #67)","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-09-08T04:41:15-07:00"},"comment_count":0,"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/03058a36164d2a7d946db205f25538434fa27d94","tree":{"sha":"b1b660dc63a2de976b7c5aa1e303adce299bbeb8","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b1b660dc63a2de976b7c5aa1e303adce299bbeb8"},"committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-09-08T04:41:15-07:00"}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/03058a36164d2a7d946db205f25538434fa27d94","parents":[{"sha":"f109c644fddee5512f8e88a4a22d9c3aac68a306","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f109c644fddee5512f8e88a4a22d9c3aac68a306"}],"committer":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}},"name":"develop"} diff --git a/tests/ReplayData/Repository.testGetComments.txt b/tests/ReplayData/Repository.testGetComments.txt index 0fde6a59b1..45ba067f93 100644 --- a/tests/ReplayData/Repository.testGetComments.txt +++ b/tests/ReplayData/Repository.testGetComments.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/comments +/repos/PyGithub/PyGithub/comments {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '4307'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"2664cb68cf94b65a884d6867aa13e7d2"'), ('date', 'Sun, 27 May 2012 06:42:01 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"updated_at":"2012-05-18T08:46:09Z","position":null,"body":"probably a noob question: does this completion refer to autocompletion in IDE's/editors? \nI have observed that this is pretty erratic sometimes. I'm using PyDev+Eclipse.\nFor example, in the tutorial from the readme, `g.get_u` gets autocompleted correctly, but `g.get_user().get_r` (or any method or attribute applicable to NamedUsers/AuthenticatedUser, really) does not show autocompletion to `g.get_user().get_repo()`. Is that by design? It makes exploring the library/API a bit cumbersome. ","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1347033","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","created_at":"2012-05-18T08:46:09Z","path":null,"line":null,"user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":1347033,"html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1347033"},{"updated_at":"2012-05-18T09:03:40Z","position":null,"body":"No, it has nothing to do with auto-completion in IDEs :D\n\nGithub API v3 sends only the main part of objects in reply to some requests. So, if the user wants an attribute that has not been received yet, I have to do another request to complete the object.\n\nYet, in version 1.0 (see the milesone), my library will be much more readable for IDEs and their auto-completion mechanisms, because I am giving up the meta-description that I used until 0.6, and I'm now generating much more traditional code, that you will be able to explore as if it was written manually.\n\nIf you want to take the time to open an issue about auto-completion in IDEs, I'll deal with it in milestone 1.0.\n\nThanks !","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1347083","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","created_at":"2012-05-18T08:59:28Z","path":null,"line":null,"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":1347083,"html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1347083"},{"updated_at":"2012-05-18T10:55:55Z","position":null,"body":"Ah, thanks for the clarification. :blush:\n\nI made issue #27 for the autocompletion. I already suspected something like this meta-description magic, since I tried to read some of the code and it was pretty arcane. I attributed that to my pythonic noobness, though. Thank you. ","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1347397","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","created_at":"2012-05-18T10:54:23Z","path":null,"line":null,"user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":1347397,"html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1347397"},{"updated_at":"2012-05-22T18:49:34Z","position":null,"body":"Comment created by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1362000","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","created_at":"2012-05-22T18:49:34Z","path":"codegen/templates/GithubObject.MethodBody.UseResult.py","line":26,"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":1362000,"html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362000"}] +[{"updated_at":"2012-05-18T08:46:09Z","position":null,"body":"probably a noob question: does this completion refer to autocompletion in IDE's/editors? \nI have observed that this is pretty erratic sometimes. I'm using PyDev+Eclipse.\nFor example, in the tutorial from the readme, `g.get_u` gets autocompleted correctly, but `g.get_user().get_r` (or any method or attribute applicable to NamedUsers/AuthenticatedUser, really) does not show autocompletion to `g.get_user().get_repo()`. Is that by design? It makes exploring the library/API a bit cumbersome. ","url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1347033","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","created_at":"2012-05-18T08:46:09Z","path":null,"line":null,"user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":1347033,"html_url":"https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1347033"},{"updated_at":"2012-05-18T09:03:40Z","position":null,"body":"No, it has nothing to do with auto-completion in IDEs :D\n\nGithub API v3 sends only the main part of objects in reply to some requests. So, if the user wants an attribute that has not been received yet, I have to do another request to complete the object.\n\nYet, in version 1.0 (see the milesone), my library will be much more readable for IDEs and their auto-completion mechanisms, because I am giving up the meta-description that I used until 0.6, and I'm now generating much more traditional code, that you will be able to explore as if it was written manually.\n\nIf you want to take the time to open an issue about auto-completion in IDEs, I'll deal with it in milestone 1.0.\n\nThanks !","url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1347083","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","created_at":"2012-05-18T08:59:28Z","path":null,"line":null,"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":1347083,"html_url":"https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1347083"},{"updated_at":"2012-05-18T10:55:55Z","position":null,"body":"Ah, thanks for the clarification. :blush:\n\nI made issue #27 for the autocompletion. I already suspected something like this meta-description magic, since I tried to read some of the code and it was pretty arcane. I attributed that to my pythonic noobness, though. Thank you. ","url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1347397","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","created_at":"2012-05-18T10:54:23Z","path":null,"line":null,"user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":1347397,"html_url":"https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1347397"},{"updated_at":"2012-05-22T18:49:34Z","position":null,"body":"Comment created by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1362000","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","created_at":"2012-05-22T18:49:34Z","path":"codegen/templates/GithubObject.MethodBody.UseResult.py","line":26,"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":1362000,"html_url":"https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362000"}] diff --git a/tests/ReplayData/Repository.testGetCommits.txt b/tests/ReplayData/Repository.testGetCommits.txt index 940d1832a6..462ac5db1d 100644 --- a/tests/ReplayData/Repository.testGetCommits.txt +++ b/tests/ReplayData/Repository.testGetCommits.txt @@ -2,31 +2,31 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/commits +/repos/PyGithub/PyGithub/commits {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4979'), ('content-length', '46151'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"5443e5772e0bda0813a09a3620a8f7c2"'), ('date', 'Sun, 27 May 2012 06:45:57 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:14:34-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:14:34-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/78735573611521bb3ade95921c668097e2a4dc5e","sha":"78735573611521bb3ade95921c668097e2a4dc5e"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","sha":"cb0313157bf904f2d364377d35d9397b269547a5"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:13:33-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","message":"Publish version 0.7","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:13:33-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/78735573611521bb3ade95921c668097e2a4dc5e","sha":"78735573611521bb3ade95921c668097e2a4dc5e"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"cb0313157bf904f2d364377d35d9397b269547a5","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:04:22-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/cb0313157bf904f2d364377d35d9397b269547a5","message":"Merge branch 'topic/Authentication' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:04:22-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/59d755d95bc2e2de4dcef70a7c73e81e677f610b","sha":"59d755d95bc2e2de4dcef70a7c73e81e677f610b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T05:10:54-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","message":"Implement the three authentication schemes","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T05:10:54-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/59d755d95bc2e2de4dcef70a7c73e81e677f610b","sha":"59d755d95bc2e2de4dcef70a7c73e81e677f610b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"4303c5b90e2216d927155e9609436ccb8984c495","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","sha":"936f4a97f1a86392637ec002bbf89ff036a5062d"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","sha":"2a7e80e6421c5d4d201d60619068dea6bae612cb"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad","sha":"f492784d8ca837779650d1fb406a1a3587a764ad"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"2a7e80e6421c5d4d201d60619068dea6bae612cb","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0af24499a98e85f8ab2191898e8b809e5cebd4c5","sha":"0af24499a98e85f8ab2191898e8b809e5cebd4c5"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:02-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","message":"Publish version 0.6","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:02-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad","sha":"f492784d8ca837779650d1fb406a1a3587a764ad"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0af24499a98e85f8ab2191898e8b809e5cebd4c5","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"0af24499a98e85f8ab2191898e8b809e5cebd4c5","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e7dca9143a23b8e2045a4a910a4a329007b10086","sha":"e7dca9143a23b8e2045a4a910a4a329007b10086"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e5ae923a68a9ae295ce5aa20b1227253de60e918","sha":"e5ae923a68a9ae295ce5aa20b1227253de60e918"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:47:43-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0af24499a98e85f8ab2191898e8b809e5cebd4c5","message":"Merge branch 'topic/issue_21' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:47:43-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e323899d50915b1b8bfca859ceaaa4a24db5d442","sha":"e323899d50915b1b8bfca859ceaaa4a24db5d442"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e5ae923a68a9ae295ce5aa20b1227253de60e918","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"e5ae923a68a9ae295ce5aa20b1227253de60e918","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2f64b625f7e2afc9bef61d0decb459e2ef65c550","sha":"2f64b625f7e2afc9bef61d0decb459e2ef65c550"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:47:11-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/e5ae923a68a9ae295ce5aa20b1227253de60e918","message":"Add facilities for uniform debug printing","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:47:11-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e323899d50915b1b8bfca859ceaaa4a24db5d442","sha":"e323899d50915b1b8bfca859ceaaa4a24db5d442"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2f64b625f7e2afc9bef61d0decb459e2ef65c550","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"2f64b625f7e2afc9bef61d0decb459e2ef65c550","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/590798d349cba7de6e83b43aa5d4f8b0a38e685d","sha":"590798d349cba7de6e83b43aa5d4f8b0a38e685d"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:21:36-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/2f64b625f7e2afc9bef61d0decb459e2ef65c550","message":"Repository.permissions","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:28:18-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/23140a7b5cd3a7e6f70181775c8f56411223cf13","sha":"23140a7b5cd3a7e6f70181775c8f56411223cf13"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/590798d349cba7de6e83b43aa5d4f8b0a38e685d","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"590798d349cba7de6e83b43aa5d4f8b0a38e685d","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e7dca9143a23b8e2045a4a910a4a329007b10086","sha":"e7dca9143a23b8e2045a4a910a4a329007b10086"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:18:09-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/590798d349cba7de6e83b43aa5d4f8b0a38e685d","message":"Do not fail if Github adds an attribute in an object","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:28:17-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/2eb1bde5d5aec4c8e146cba6dbadfa862062fe59","sha":"2eb1bde5d5aec4c8e146cba6dbadfa862062fe59"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e7dca9143a23b8e2045a4a910a4a329007b10086","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"e7dca9143a23b8e2045a4a910a4a329007b10086","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/64c6a1e975e61b9c1449bed016cd19f33ee4b1c5","sha":"64c6a1e975e61b9c1449bed016cd19f33ee4b1c5"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ab3f9b422cb3043d35cf6002fc9c042f8ead8c2a","sha":"ab3f9b422cb3043d35cf6002fc9c042f8ead8c2a"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T05:03:15-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/e7dca9143a23b8e2045a4a910a4a329007b10086","message":"Merge branch 'topic/Recomplete' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T05:03:15-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/68028c858bce6e56a0123f1c7e71be5b0c0ac7f5","sha":"68028c858bce6e56a0123f1c7e71be5b0c0ac7f5"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ab3f9b422cb3043d35cf6002fc9c042f8ead8c2a","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"ab3f9b422cb3043d35cf6002fc9c042f8ead8c2a","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/632d8b63c32a2b79e87eb3b93e1ad228724de4bd","sha":"632d8b63c32a2b79e87eb3b93e1ad228724de4bd"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T05:02:43-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ab3f9b422cb3043d35cf6002fc9c042f8ead8c2a","message":"NamedUser.create_gist","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T05:02:43-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/68028c858bce6e56a0123f1c7e71be5b0c0ac7f5","sha":"68028c858bce6e56a0123f1c7e71be5b0c0ac7f5"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/632d8b63c32a2b79e87eb3b93e1ad228724de4bd","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"632d8b63c32a2b79e87eb3b93e1ad228724de4bd","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/64c6a1e975e61b9c1449bed016cd19f33ee4b1c5","sha":"64c6a1e975e61b9c1449bed016cd19f33ee4b1c5"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:13:08-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/632d8b63c32a2b79e87eb3b93e1ad228724de4bd","message":"GitRef.delete","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:13:08-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b733d1dab08609c2049a8490fdda25f9e68ae2bc","sha":"b733d1dab08609c2049a8490fdda25f9e68ae2bc"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/64c6a1e975e61b9c1449bed016cd19f33ee4b1c5","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"64c6a1e975e61b9c1449bed016cd19f33ee4b1c5","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","sha":"936f4a97f1a86392637ec002bbf89ff036a5062d"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/99963536fc81db3b9986c761b9dd08de22089aa2","sha":"99963536fc81db3b9986c761b9dd08de22089aa2"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:10:06-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/64c6a1e975e61b9c1449bed016cd19f33ee4b1c5","message":"Merge branch 'topic/GenerateReferenceOfApis' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:10:06-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/623fd43b5299b8707a3b10def154f6725b31361c","sha":"623fd43b5299b8707a3b10def154f6725b31361c"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/99963536fc81db3b9986c761b9dd08de22089aa2","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"99963536fc81db3b9986c761b9dd08de22089aa2","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8d57522bbd15d1fb6b616fae795cd8721deb1c4d","sha":"8d57522bbd15d1fb6b616fae795cd8721deb1c4d"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:09:05-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/99963536fc81db3b9986c761b9dd08de22089aa2","message":"GenerateReferenceOfApis.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:09:05-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/623fd43b5299b8707a3b10def154f6725b31361c","sha":"623fd43b5299b8707a3b10def154f6725b31361c"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8d57522bbd15d1fb6b616fae795cd8721deb1c4d","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"8d57522bbd15d1fb6b616fae795cd8721deb1c4d","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1140a91f3e45d09bc15463724f178a7ebf8e3149","sha":"1140a91f3e45d09bc15463724f178a7ebf8e3149"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:08:51-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8d57522bbd15d1fb6b616fae795cd8721deb1c4d","message":"Rename GenerateDocumentation.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:08:51-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/8eafa52103271d36b1a46e056716f29af46ccb41","sha":"8eafa52103271d36b1a46e056716f29af46ccb41"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1140a91f3e45d09bc15463724f178a7ebf8e3149","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"1140a91f3e45d09bc15463724f178a7ebf8e3149","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","sha":"936f4a97f1a86392637ec002bbf89ff036a5062d"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:07:51-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1140a91f3e45d09bc15463724f178a7ebf8e3149","message":"Normalize ReferenceOfApis.md","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:07:51-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/6621cb8c710645471b3235cfa7e34eaf1a424320","sha":"6621cb8c710645471b3235cfa7e34eaf1a424320"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"936f4a97f1a86392637ec002bbf89ff036a5062d","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a3be28756101370fbc689eec3a7825c4c385a6c9","sha":"a3be28756101370fbc689eec3a7825c4c385a6c9"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e10470481795506e2c232720e2a9ecf588c8b567","sha":"e10470481795506e2c232720e2a9ecf588c8b567"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T13:50:17-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T13:50:17-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f315f93b637cbd7883c1aed5b58f12d4a812ff26","sha":"f315f93b637cbd7883c1aed5b58f12d4a812ff26"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e10470481795506e2c232720e2a9ecf588c8b567","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"e10470481795506e2c232720e2a9ecf588c8b567","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e456549e5265406f8090ae5145255c8ca9ea5e4e","sha":"e456549e5265406f8090ae5145255c8ca9ea5e4e"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T13:49:21-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/e10470481795506e2c232720e2a9ecf588c8b567","message":"Publish version 0.5","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T13:49:21-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f315f93b637cbd7883c1aed5b58f12d4a812ff26","sha":"f315f93b637cbd7883c1aed5b58f12d4a812ff26"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e456549e5265406f8090ae5145255c8ca9ea5e4e","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"e456549e5265406f8090ae5145255c8ca9ea5e4e","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2469c6e1aeb7919126a8271f6980b555b167e8b0","sha":"2469c6e1aeb7919126a8271f6980b555b167e8b0"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a91131be42eb328ae030f584af500f56aa08424b","sha":"a91131be42eb328ae030f584af500f56aa08424b"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T12:02:07-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/e456549e5265406f8090ae5145255c8ca9ea5e4e","message":"Merge branch 'topic/CompleteImplementation' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T12:02:07-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/c11065b6df8d201a09bd24f1b3e4b2f9f57a8321","sha":"c11065b6df8d201a09bd24f1b3e4b2f9f57a8321"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a91131be42eb328ae030f584af500f56aa08424b","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"a91131be42eb328ae030f584af500f56aa08424b","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2469c6e1aeb7919126a8271f6980b555b167e8b0","sha":"2469c6e1aeb7919126a8271f6980b555b167e8b0"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T12:00:36-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a91131be42eb328ae030f584af500f56aa08424b","message":"Finaly do a poor implementation of Github.get_gists","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T12:01:46-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/c11065b6df8d201a09bd24f1b3e4b2f9f57a8321","sha":"c11065b6df8d201a09bd24f1b3e4b2f9f57a8321"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2469c6e1aeb7919126a8271f6980b555b167e8b0","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"2469c6e1aeb7919126a8271f6980b555b167e8b0","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a0cc821c1beada4aa9ca0d5218664c5372720936","sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a655d0424135befd3a0d53f3f7eff2d1c754854f","sha":"a655d0424135befd3a0d53f3f7eff2d1c754854f"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T12:01:32-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/2469c6e1aeb7919126a8271f6980b555b167e8b0","message":"Merge branch 'topic/RestoreTests' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T12:01:32-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b88afa928c59940b2c88faa1a9a9826e50ea83ef","sha":"b88afa928c59940b2c88faa1a9a9826e50ea83ef"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a655d0424135befd3a0d53f3f7eff2d1c754854f","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"a655d0424135befd3a0d53f3f7eff2d1c754854f","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ce62e91268aa34dad0ba0dbee4769933e3a71e50","sha":"ce62e91268aa34dad0ba0dbee4769933e3a71e50"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:49:56-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a655d0424135befd3a0d53f3f7eff2d1c754854f","message":"Improve integration tests coverage","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:49:56-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b88afa928c59940b2c88faa1a9a9826e50ea83ef","sha":"b88afa928c59940b2c88faa1a9a9826e50ea83ef"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ce62e91268aa34dad0ba0dbee4769933e3a71e50","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"ce62e91268aa34dad0ba0dbee4769933e3a71e50","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c88ee221b7f995855a1fdfac7d0ba19db918739","sha":"1c88ee221b7f995855a1fdfac7d0ba19db918739"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:37:57-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ce62e91268aa34dad0ba0dbee4769933e3a71e50","message":"Cosmetic change in integration test","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:37:57-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/9e0956f8808d6a07d610e08ad585fb6593527f39","sha":"9e0956f8808d6a07d610e08ad585fb6593527f39"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c88ee221b7f995855a1fdfac7d0ba19db918739","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"1c88ee221b7f995855a1fdfac7d0ba19db918739","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bd1a5dff3c547c634b2d89f5847218820e343883","sha":"bd1a5dff3c547c634b2d89f5847218820e343883"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:35:44-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1c88ee221b7f995855a1fdfac7d0ba19db918739","message":"Commit replay data for integration test","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:35:44-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/14fa47c5e331f1ebdc164ff341c70fc7dcfd2d83","sha":"14fa47c5e331f1ebdc164ff341c70fc7dcfd2d83"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bd1a5dff3c547c634b2d89f5847218820e343883","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"bd1a5dff3c547c634b2d89f5847218820e343883","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b226b5b4e2f44107dde674e7a5d3e88d4e3518df","sha":"b226b5b4e2f44107dde674e7a5d3e88d4e3518df"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:35:11-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/bd1a5dff3c547c634b2d89f5847218820e343883","message":"Fix integration tests","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:35:11-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/0cedd1c9f1986fc05f5bbfaa689d5a7fa7c7f424","sha":"0cedd1c9f1986fc05f5bbfaa689d5a7fa7c7f424"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b226b5b4e2f44107dde674e7a5d3e88d4e3518df","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"b226b5b4e2f44107dde674e7a5d3e88d4e3518df","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/25dbd4053e982402c7d92139f167dbe46008c932","sha":"25dbd4053e982402c7d92139f167dbe46008c932"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:17:26-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/b226b5b4e2f44107dde674e7a5d3e88d4e3518df","message":"Restore test coverage","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:17:26-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/35bac621cbeebac930faeb2a5d0ae01647027b57","sha":"35bac621cbeebac930faeb2a5d0ae01647027b57"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/25dbd4053e982402c7d92139f167dbe46008c932","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"25dbd4053e982402c7d92139f167dbe46008c932","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a0cc821c1beada4aa9ca0d5218664c5372720936","sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:05:18-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/25dbd4053e982402c7d92139f167dbe46008c932","message":"Fix unit tests","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:05:18-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/21fa30dc9c099a96fb3d3018ca04934206702931","sha":"21fa30dc9c099a96fb3d3018ca04934206702931"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a0cc821c1beada4aa9ca0d5218664c5372720936","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c1440bdf20bfeb62684c6d1779448719dce9d2df","sha":"c1440bdf20bfeb62684c6d1779448719dce9d2df"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:45:20-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a0cc821c1beada4aa9ca0d5218664c5372720936","message":"Fix documentation","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:45:20-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/df309b8e8b9359740688f6ecdec4e16a946eedac","sha":"df309b8e8b9359740688f6ecdec4e16a946eedac"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c1440bdf20bfeb62684c6d1779448719dce9d2df","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"c1440bdf20bfeb62684c6d1779448719dce9d2df","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0909fec395bb1f97e2580d6a029cfc64b352aff9","sha":"0909fec395bb1f97e2580d6a029cfc64b352aff9"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1095d304b7fab3818dcb4c42093c8c56d3ac05e4","sha":"1095d304b7fab3818dcb4c42093c8c56d3ac05e4"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:36:28-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/c1440bdf20bfeb62684c6d1779448719dce9d2df","message":"Merge branch 'topic/CompleteImplementation' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:36:28-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/62acfc5826055bea7623e35982768674fb672bff","sha":"62acfc5826055bea7623e35982768674fb672bff"}}}] +[('status', '200 OK'), ('x-ratelimit-remaining', '4979'), ('content-length', '46151'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"5443e5772e0bda0813a09a3620a8f7c2"'), ('date', 'Sun, 27 May 2012 06:45:57 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:14:34-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:14:34-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/78735573611521bb3ade95921c668097e2a4dc5e","sha":"78735573611521bb3ade95921c668097e2a4dc5e"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","sha":"cb0313157bf904f2d364377d35d9397b269547a5"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:13:33-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","message":"Publish version 0.7","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:13:33-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/78735573611521bb3ade95921c668097e2a4dc5e","sha":"78735573611521bb3ade95921c668097e2a4dc5e"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"cb0313157bf904f2d364377d35d9397b269547a5","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:04:22-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/cb0313157bf904f2d364377d35d9397b269547a5","message":"Merge branch 'topic/Authentication' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:04:22-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/59d755d95bc2e2de4dcef70a7c73e81e677f610b","sha":"59d755d95bc2e2de4dcef70a7c73e81e677f610b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T05:10:54-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","message":"Implement the three authentication schemes","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T05:10:54-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/59d755d95bc2e2de4dcef70a7c73e81e677f610b","sha":"59d755d95bc2e2de4dcef70a7c73e81e677f610b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"4303c5b90e2216d927155e9609436ccb8984c495","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","sha":"936f4a97f1a86392637ec002bbf89ff036a5062d"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","sha":"2a7e80e6421c5d4d201d60619068dea6bae612cb"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad","sha":"f492784d8ca837779650d1fb406a1a3587a764ad"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"2a7e80e6421c5d4d201d60619068dea6bae612cb","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0af24499a98e85f8ab2191898e8b809e5cebd4c5","sha":"0af24499a98e85f8ab2191898e8b809e5cebd4c5"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:02-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","message":"Publish version 0.6","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:02-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad","sha":"f492784d8ca837779650d1fb406a1a3587a764ad"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0af24499a98e85f8ab2191898e8b809e5cebd4c5","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"0af24499a98e85f8ab2191898e8b809e5cebd4c5","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e7dca9143a23b8e2045a4a910a4a329007b10086","sha":"e7dca9143a23b8e2045a4a910a4a329007b10086"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e5ae923a68a9ae295ce5aa20b1227253de60e918","sha":"e5ae923a68a9ae295ce5aa20b1227253de60e918"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:47:43-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0af24499a98e85f8ab2191898e8b809e5cebd4c5","message":"Merge branch 'topic/issue_21' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:47:43-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/e323899d50915b1b8bfca859ceaaa4a24db5d442","sha":"e323899d50915b1b8bfca859ceaaa4a24db5d442"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e5ae923a68a9ae295ce5aa20b1227253de60e918","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"e5ae923a68a9ae295ce5aa20b1227253de60e918","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2f64b625f7e2afc9bef61d0decb459e2ef65c550","sha":"2f64b625f7e2afc9bef61d0decb459e2ef65c550"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:47:11-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/e5ae923a68a9ae295ce5aa20b1227253de60e918","message":"Add facilities for uniform debug printing","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:47:11-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/e323899d50915b1b8bfca859ceaaa4a24db5d442","sha":"e323899d50915b1b8bfca859ceaaa4a24db5d442"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2f64b625f7e2afc9bef61d0decb459e2ef65c550","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"2f64b625f7e2afc9bef61d0decb459e2ef65c550","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/590798d349cba7de6e83b43aa5d4f8b0a38e685d","sha":"590798d349cba7de6e83b43aa5d4f8b0a38e685d"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:21:36-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/2f64b625f7e2afc9bef61d0decb459e2ef65c550","message":"Repository.permissions","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:28:18-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/23140a7b5cd3a7e6f70181775c8f56411223cf13","sha":"23140a7b5cd3a7e6f70181775c8f56411223cf13"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/590798d349cba7de6e83b43aa5d4f8b0a38e685d","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"590798d349cba7de6e83b43aa5d4f8b0a38e685d","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e7dca9143a23b8e2045a4a910a4a329007b10086","sha":"e7dca9143a23b8e2045a4a910a4a329007b10086"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:18:09-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/590798d349cba7de6e83b43aa5d4f8b0a38e685d","message":"Do not fail if Github adds an attribute in an object","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:28:17-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/2eb1bde5d5aec4c8e146cba6dbadfa862062fe59","sha":"2eb1bde5d5aec4c8e146cba6dbadfa862062fe59"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e7dca9143a23b8e2045a4a910a4a329007b10086","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"e7dca9143a23b8e2045a4a910a4a329007b10086","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/64c6a1e975e61b9c1449bed016cd19f33ee4b1c5","sha":"64c6a1e975e61b9c1449bed016cd19f33ee4b1c5"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ab3f9b422cb3043d35cf6002fc9c042f8ead8c2a","sha":"ab3f9b422cb3043d35cf6002fc9c042f8ead8c2a"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T05:03:15-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/e7dca9143a23b8e2045a4a910a4a329007b10086","message":"Merge branch 'topic/Recomplete' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T05:03:15-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/68028c858bce6e56a0123f1c7e71be5b0c0ac7f5","sha":"68028c858bce6e56a0123f1c7e71be5b0c0ac7f5"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ab3f9b422cb3043d35cf6002fc9c042f8ead8c2a","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"ab3f9b422cb3043d35cf6002fc9c042f8ead8c2a","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/632d8b63c32a2b79e87eb3b93e1ad228724de4bd","sha":"632d8b63c32a2b79e87eb3b93e1ad228724de4bd"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T05:02:43-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/ab3f9b422cb3043d35cf6002fc9c042f8ead8c2a","message":"NamedUser.create_gist","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T05:02:43-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/68028c858bce6e56a0123f1c7e71be5b0c0ac7f5","sha":"68028c858bce6e56a0123f1c7e71be5b0c0ac7f5"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/632d8b63c32a2b79e87eb3b93e1ad228724de4bd","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"632d8b63c32a2b79e87eb3b93e1ad228724de4bd","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/64c6a1e975e61b9c1449bed016cd19f33ee4b1c5","sha":"64c6a1e975e61b9c1449bed016cd19f33ee4b1c5"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:13:08-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/632d8b63c32a2b79e87eb3b93e1ad228724de4bd","message":"GitRef.delete","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:13:08-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b733d1dab08609c2049a8490fdda25f9e68ae2bc","sha":"b733d1dab08609c2049a8490fdda25f9e68ae2bc"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/64c6a1e975e61b9c1449bed016cd19f33ee4b1c5","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"64c6a1e975e61b9c1449bed016cd19f33ee4b1c5","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","sha":"936f4a97f1a86392637ec002bbf89ff036a5062d"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/99963536fc81db3b9986c761b9dd08de22089aa2","sha":"99963536fc81db3b9986c761b9dd08de22089aa2"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:10:06-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/64c6a1e975e61b9c1449bed016cd19f33ee4b1c5","message":"Merge branch 'topic/GenerateReferenceOfApis' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:10:06-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/623fd43b5299b8707a3b10def154f6725b31361c","sha":"623fd43b5299b8707a3b10def154f6725b31361c"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/99963536fc81db3b9986c761b9dd08de22089aa2","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"99963536fc81db3b9986c761b9dd08de22089aa2","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8d57522bbd15d1fb6b616fae795cd8721deb1c4d","sha":"8d57522bbd15d1fb6b616fae795cd8721deb1c4d"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:09:05-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/99963536fc81db3b9986c761b9dd08de22089aa2","message":"GenerateReferenceOfApis.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:09:05-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/623fd43b5299b8707a3b10def154f6725b31361c","sha":"623fd43b5299b8707a3b10def154f6725b31361c"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8d57522bbd15d1fb6b616fae795cd8721deb1c4d","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"8d57522bbd15d1fb6b616fae795cd8721deb1c4d","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1140a91f3e45d09bc15463724f178a7ebf8e3149","sha":"1140a91f3e45d09bc15463724f178a7ebf8e3149"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:08:51-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/8d57522bbd15d1fb6b616fae795cd8721deb1c4d","message":"Rename GenerateDocumentation.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:08:51-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/8eafa52103271d36b1a46e056716f29af46ccb41","sha":"8eafa52103271d36b1a46e056716f29af46ccb41"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1140a91f3e45d09bc15463724f178a7ebf8e3149","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"1140a91f3e45d09bc15463724f178a7ebf8e3149","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","sha":"936f4a97f1a86392637ec002bbf89ff036a5062d"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:07:51-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/1140a91f3e45d09bc15463724f178a7ebf8e3149","message":"Normalize ReferenceOfApis.md","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-30T03:07:51-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/6621cb8c710645471b3235cfa7e34eaf1a424320","sha":"6621cb8c710645471b3235cfa7e34eaf1a424320"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"936f4a97f1a86392637ec002bbf89ff036a5062d","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a3be28756101370fbc689eec3a7825c4c385a6c9","sha":"a3be28756101370fbc689eec3a7825c4c385a6c9"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e10470481795506e2c232720e2a9ecf588c8b567","sha":"e10470481795506e2c232720e2a9ecf588c8b567"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T13:50:17-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T13:50:17-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/f315f93b637cbd7883c1aed5b58f12d4a812ff26","sha":"f315f93b637cbd7883c1aed5b58f12d4a812ff26"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e10470481795506e2c232720e2a9ecf588c8b567","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"e10470481795506e2c232720e2a9ecf588c8b567","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e456549e5265406f8090ae5145255c8ca9ea5e4e","sha":"e456549e5265406f8090ae5145255c8ca9ea5e4e"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T13:49:21-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/e10470481795506e2c232720e2a9ecf588c8b567","message":"Publish version 0.5","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T13:49:21-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/f315f93b637cbd7883c1aed5b58f12d4a812ff26","sha":"f315f93b637cbd7883c1aed5b58f12d4a812ff26"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e456549e5265406f8090ae5145255c8ca9ea5e4e","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"e456549e5265406f8090ae5145255c8ca9ea5e4e","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2469c6e1aeb7919126a8271f6980b555b167e8b0","sha":"2469c6e1aeb7919126a8271f6980b555b167e8b0"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a91131be42eb328ae030f584af500f56aa08424b","sha":"a91131be42eb328ae030f584af500f56aa08424b"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T12:02:07-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/e456549e5265406f8090ae5145255c8ca9ea5e4e","message":"Merge branch 'topic/CompleteImplementation' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T12:02:07-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/c11065b6df8d201a09bd24f1b3e4b2f9f57a8321","sha":"c11065b6df8d201a09bd24f1b3e4b2f9f57a8321"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a91131be42eb328ae030f584af500f56aa08424b","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"a91131be42eb328ae030f584af500f56aa08424b","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2469c6e1aeb7919126a8271f6980b555b167e8b0","sha":"2469c6e1aeb7919126a8271f6980b555b167e8b0"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T12:00:36-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/a91131be42eb328ae030f584af500f56aa08424b","message":"Finaly do a poor implementation of Github.get_gists","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T12:01:46-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/c11065b6df8d201a09bd24f1b3e4b2f9f57a8321","sha":"c11065b6df8d201a09bd24f1b3e4b2f9f57a8321"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2469c6e1aeb7919126a8271f6980b555b167e8b0","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"2469c6e1aeb7919126a8271f6980b555b167e8b0","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a0cc821c1beada4aa9ca0d5218664c5372720936","sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a655d0424135befd3a0d53f3f7eff2d1c754854f","sha":"a655d0424135befd3a0d53f3f7eff2d1c754854f"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T12:01:32-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/2469c6e1aeb7919126a8271f6980b555b167e8b0","message":"Merge branch 'topic/RestoreTests' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T12:01:32-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b88afa928c59940b2c88faa1a9a9826e50ea83ef","sha":"b88afa928c59940b2c88faa1a9a9826e50ea83ef"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a655d0424135befd3a0d53f3f7eff2d1c754854f","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"a655d0424135befd3a0d53f3f7eff2d1c754854f","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ce62e91268aa34dad0ba0dbee4769933e3a71e50","sha":"ce62e91268aa34dad0ba0dbee4769933e3a71e50"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:49:56-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/a655d0424135befd3a0d53f3f7eff2d1c754854f","message":"Improve integration tests coverage","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:49:56-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b88afa928c59940b2c88faa1a9a9826e50ea83ef","sha":"b88afa928c59940b2c88faa1a9a9826e50ea83ef"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ce62e91268aa34dad0ba0dbee4769933e3a71e50","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"ce62e91268aa34dad0ba0dbee4769933e3a71e50","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1c88ee221b7f995855a1fdfac7d0ba19db918739","sha":"1c88ee221b7f995855a1fdfac7d0ba19db918739"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:37:57-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/ce62e91268aa34dad0ba0dbee4769933e3a71e50","message":"Cosmetic change in integration test","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:37:57-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/9e0956f8808d6a07d610e08ad585fb6593527f39","sha":"9e0956f8808d6a07d610e08ad585fb6593527f39"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1c88ee221b7f995855a1fdfac7d0ba19db918739","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"1c88ee221b7f995855a1fdfac7d0ba19db918739","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/bd1a5dff3c547c634b2d89f5847218820e343883","sha":"bd1a5dff3c547c634b2d89f5847218820e343883"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:35:44-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/1c88ee221b7f995855a1fdfac7d0ba19db918739","message":"Commit replay data for integration test","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:35:44-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/14fa47c5e331f1ebdc164ff341c70fc7dcfd2d83","sha":"14fa47c5e331f1ebdc164ff341c70fc7dcfd2d83"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/bd1a5dff3c547c634b2d89f5847218820e343883","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"bd1a5dff3c547c634b2d89f5847218820e343883","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/b226b5b4e2f44107dde674e7a5d3e88d4e3518df","sha":"b226b5b4e2f44107dde674e7a5d3e88d4e3518df"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:35:11-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/bd1a5dff3c547c634b2d89f5847218820e343883","message":"Fix integration tests","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:35:11-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/0cedd1c9f1986fc05f5bbfaa689d5a7fa7c7f424","sha":"0cedd1c9f1986fc05f5bbfaa689d5a7fa7c7f424"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/b226b5b4e2f44107dde674e7a5d3e88d4e3518df","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"b226b5b4e2f44107dde674e7a5d3e88d4e3518df","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/25dbd4053e982402c7d92139f167dbe46008c932","sha":"25dbd4053e982402c7d92139f167dbe46008c932"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:17:26-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/b226b5b4e2f44107dde674e7a5d3e88d4e3518df","message":"Restore test coverage","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:17:26-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/35bac621cbeebac930faeb2a5d0ae01647027b57","sha":"35bac621cbeebac930faeb2a5d0ae01647027b57"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/25dbd4053e982402c7d92139f167dbe46008c932","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"25dbd4053e982402c7d92139f167dbe46008c932","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a0cc821c1beada4aa9ca0d5218664c5372720936","sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:05:18-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/25dbd4053e982402c7d92139f167dbe46008c932","message":"Fix unit tests","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T11:05:18-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/21fa30dc9c099a96fb3d3018ca04934206702931","sha":"21fa30dc9c099a96fb3d3018ca04934206702931"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a0cc821c1beada4aa9ca0d5218664c5372720936","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c1440bdf20bfeb62684c6d1779448719dce9d2df","sha":"c1440bdf20bfeb62684c6d1779448719dce9d2df"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:45:20-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/a0cc821c1beada4aa9ca0d5218664c5372720936","message":"Fix documentation","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:45:20-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/df309b8e8b9359740688f6ecdec4e16a946eedac","sha":"df309b8e8b9359740688f6ecdec4e16a946eedac"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c1440bdf20bfeb62684c6d1779448719dce9d2df","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"c1440bdf20bfeb62684c6d1779448719dce9d2df","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0909fec395bb1f97e2580d6a029cfc64b352aff9","sha":"0909fec395bb1f97e2580d6a029cfc64b352aff9"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1095d304b7fab3818dcb4c42093c8c56d3ac05e4","sha":"1095d304b7fab3818dcb4c42093c8c56d3ac05e4"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:36:28-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/c1440bdf20bfeb62684c6d1779448719dce9d2df","message":"Merge branch 'topic/CompleteImplementation' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:36:28-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/62acfc5826055bea7623e35982768674fb672bff","sha":"62acfc5826055bea7623e35982768674fb672bff"}}}] https GET api.github.com None -/repos/jacquev6/PyGithub/commits?last_sha=c1440bdf20bfeb62684c6d1779448719dce9d2df&top=master +/repos/PyGithub/PyGithub/commits?last_sha=c1440bdf20bfeb62684c6d1779448719dce9d2df&top=master {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4978'), ('content-length', '44844'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"b1e58b63cf08fef49b20ee7682f4eadb"'), ('date', 'Sun, 27 May 2012 06:45:59 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1095d304b7fab3818dcb4c42093c8c56d3ac05e4","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"1095d304b7fab3818dcb4c42093c8c56d3ac05e4","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bd39726f7cf86ea7ffb33b5718241fdab5fc8f53","sha":"bd39726f7cf86ea7ffb33b5718241fdab5fc8f53"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:28:03-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1095d304b7fab3818dcb4c42093c8c56d3ac05e4","message":"Repository.compare","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:28:03-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/62acfc5826055bea7623e35982768674fb672bff","sha":"62acfc5826055bea7623e35982768674fb672bff"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bd39726f7cf86ea7ffb33b5718241fdab5fc8f53","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"bd39726f7cf86ea7ffb33b5718241fdab5fc8f53","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d2b27824d20612066d84be42d6691c66bb18ef4","sha":"1d2b27824d20612066d84be42d6691c66bb18ef4"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-18T23:40:52-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/bd39726f7cf86ea7ffb33b5718241fdab5fc8f53","message":"AuthenticatedUser.get_issues","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-18T23:40:52-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e0cf809423855e97a1c418cd0574aceaea673e7c","sha":"e0cf809423855e97a1c418cd0574aceaea673e7c"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d2b27824d20612066d84be42d6691c66bb18ef4","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"1d2b27824d20612066d84be42d6691c66bb18ef4","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297","sha":"6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-18T23:32:34-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1d2b27824d20612066d84be42d6691c66bb18ef4","message":"Repository.get_git_tree with 'recursive'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-18T23:32:34-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/eece2904086e172c103a3f6c72d72577947d69af","sha":"eece2904086e172c103a3f6c72d72577947d69af"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a475d685d8ae709095d09094ea0962ac182d33f0","sha":"a475d685d8ae709095d09094ea0962ac182d33f0"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-16T23:42:54-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297","message":"Optional parameter for Repository.create_git_tree","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-16T23:42:54-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/a07df55d4e61292bfd4d344221a744bdeb837cef","sha":"a07df55d4e61292bfd4d344221a744bdeb837cef"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a475d685d8ae709095d09094ea0962ac182d33f0","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"a475d685d8ae709095d09094ea0962ac182d33f0","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a85de99ea5b5e7b38bd68e076d09c49207b8687e","sha":"a85de99ea5b5e7b38bd68e076d09c49207b8687e"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-16T00:11:07-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a475d685d8ae709095d09094ea0962ac182d33f0","message":"On the way to alternative inputs. Still needs unit and integration testing","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-16T00:11:07-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/929c7826e4116ccc48860420e96448c0b2dba912","sha":"929c7826e4116ccc48860420e96448c0b2dba912"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a85de99ea5b5e7b38bd68e076d09c49207b8687e","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"a85de99ea5b5e7b38bd68e076d09c49207b8687e","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d24cf209ddd1758188c5f35344f76df818d09a46","sha":"d24cf209ddd1758188c5f35344f76df818d09a46"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-15T23:54:19-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a85de99ea5b5e7b38bd68e076d09c49207b8687e","message":"dos2unix","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-15T23:54:19-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/45ab612f324d934efd24d37ec8a1a829ae9c819c","sha":"45ab612f324d934efd24d37ec8a1a829ae9c819c"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d24cf209ddd1758188c5f35344f76df818d09a46","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"d24cf209ddd1758188c5f35344f76df818d09a46","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0909fec395bb1f97e2580d6a029cfc64b352aff9","sha":"0909fec395bb1f97e2580d6a029cfc64b352aff9"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-15T23:53:33-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/d24cf209ddd1758188c5f35344f76df818d09a46","message":"Be explicit about argumentChecker object","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-15T23:53:33-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/1737a3881dfa9524447b8841f441efa4d57b2e57","sha":"1737a3881dfa9524447b8841f441efa4d57b2e57"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0909fec395bb1f97e2580d6a029cfc64b352aff9","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"0909fec395bb1f97e2580d6a029cfc64b352aff9","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/50ac55b25ceba555b84709839f80447552450697","sha":"50ac55b25ceba555b84709839f80447552450697"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6e421e9e85e12008758870bc046bc2c6120af72a","sha":"6e421e9e85e12008758870bc046bc2c6120af72a"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:26:35-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0909fec395bb1f97e2580d6a029cfc64b352aff9","message":"Merge branch 'topic/MoveGithubObjects' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:26:35-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/5e1db9b1002e45cbcde2f17253233b3cf50496ad","sha":"5e1db9b1002e45cbcde2f17253233b3cf50496ad"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6e421e9e85e12008758870bc046bc2c6120af72a","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"6e421e9e85e12008758870bc046bc2c6120af72a","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/32ed0ebc377efbed5b482b3d49ff54bf1715d55a","sha":"32ed0ebc377efbed5b482b3d49ff54bf1715d55a"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:24:49-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/6e421e9e85e12008758870bc046bc2c6120af72a","message":"Separate the three distributed classes","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:24:49-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/5e1db9b1002e45cbcde2f17253233b3cf50496ad","sha":"5e1db9b1002e45cbcde2f17253233b3cf50496ad"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/32ed0ebc377efbed5b482b3d49ff54bf1715d55a","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"32ed0ebc377efbed5b482b3d49ff54bf1715d55a","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8213df1d744f251aa8e52229643a9f6ce352f3c0","sha":"8213df1d744f251aa8e52229643a9f6ce352f3c0"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:13:37-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/32ed0ebc377efbed5b482b3d49ff54bf1715d55a","message":"Move GithubObject","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:13:37-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/4836c31ec1b75e4b0145bae29cda338318b583a0","sha":"4836c31ec1b75e4b0145bae29cda338318b583a0"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8213df1d744f251aa8e52229643a9f6ce352f3c0","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"8213df1d744f251aa8e52229643a9f6ce352f3c0","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/69cc298fd159f19eb204dd09f17d31dc4abc3d41","sha":"69cc298fd159f19eb204dd09f17d31dc4abc3d41"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:07:21-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8213df1d744f251aa8e52229643a9f6ce352f3c0","message":"Simplify internal imports","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:07:21-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e2cd74e9c3cf6ff69da96f8fad7e1e4120db56fb","sha":"e2cd74e9c3cf6ff69da96f8fad7e1e4120db56fb"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/69cc298fd159f19eb204dd09f17d31dc4abc3d41","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"69cc298fd159f19eb204dd09f17d31dc4abc3d41","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/85eef756353e13efcb24c726320cd2617c2a7bd8","sha":"85eef756353e13efcb24c726320cd2617c2a7bd8"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T14:55:06-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/69cc298fd159f19eb204dd09f17d31dc4abc3d41","message":"Make sure only three class definitions are distributed","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T14:56:12-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/a1d3e1193b5eeb668b0a9e4ec0286adeee2bfc98","sha":"a1d3e1193b5eeb668b0a9e4ec0286adeee2bfc98"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/85eef756353e13efcb24c726320cd2617c2a7bd8","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"85eef756353e13efcb24c726320cd2617c2a7bd8","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/50ac55b25ceba555b84709839f80447552450697","sha":"50ac55b25ceba555b84709839f80447552450697"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T14:31:32-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/85eef756353e13efcb24c726320cd2617c2a7bd8","message":"Move classes around","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T14:56:08-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b0eadbf0e94e5098c5e4324f92e1546b3fe97ae2","sha":"b0eadbf0e94e5098c5e4324f92e1546b3fe97ae2"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/50ac55b25ceba555b84709839f80447552450697","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"50ac55b25ceba555b84709839f80447552450697","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/58b4396aa0e7cb72911b75cb035798143a06e0ee","sha":"58b4396aa0e7cb72911b75cb035798143a06e0ee"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/767d75a580279e457f9bc52bc308a17ff8ea0509","sha":"767d75a580279e457f9bc52bc308a17ff8ea0509"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:26:20-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/50ac55b25ceba555b84709839f80447552450697","message":"Merge branch 'topic/SplitGithubObjects' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:26:20-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/9541dc30b6f7eb32a0eeb99661974efc2bc2b2e0","sha":"9541dc30b6f7eb32a0eeb99661974efc2bc2b2e0"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/767d75a580279e457f9bc52bc308a17ff8ea0509","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"767d75a580279e457f9bc52bc308a17ff8ea0509","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/75e72ffa3066693291f7da03070666e8f885097a","sha":"75e72ffa3066693291f7da03070666e8f885097a"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:24:39-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/767d75a580279e457f9bc52bc308a17ff8ea0509","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:24:39-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/9541dc30b6f7eb32a0eeb99661974efc2bc2b2e0","sha":"9541dc30b6f7eb32a0eeb99661974efc2bc2b2e0"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/75e72ffa3066693291f7da03070666e8f885097a","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"75e72ffa3066693291f7da03070666e8f885097a","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/504047e218e6b34a3828ccc408431634f17b9504","sha":"504047e218e6b34a3828ccc408431634f17b9504"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:23:47-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/75e72ffa3066693291f7da03070666e8f885097a","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:23:47-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/ef565463ba492225543f538ddc2ac31d93301a3e","sha":"ef565463ba492225543f538ddc2ac31d93301a3e"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/504047e218e6b34a3828ccc408431634f17b9504","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"504047e218e6b34a3828ccc408431634f17b9504","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/960db1d5c9853e9f5fbbc9237c2c166ceef1f080","sha":"960db1d5c9853e9f5fbbc9237c2c166ceef1f080"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:19:54-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/504047e218e6b34a3828ccc408431634f17b9504","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:19:54-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/64a98d6a5045debec1ab928d49989c7f0f666be2","sha":"64a98d6a5045debec1ab928d49989c7f0f666be2"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/960db1d5c9853e9f5fbbc9237c2c166ceef1f080","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"960db1d5c9853e9f5fbbc9237c2c166ceef1f080","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/877dde23e140bbf038f9a2d8f0f07b4e3a965c61","sha":"877dde23e140bbf038f9a2d8f0f07b4e3a965c61"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:18:02-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/960db1d5c9853e9f5fbbc9237c2c166ceef1f080","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:18:02-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b16b7a597ab3aa1876b1797426367114d4421642","sha":"b16b7a597ab3aa1876b1797426367114d4421642"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/877dde23e140bbf038f9a2d8f0f07b4e3a965c61","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"877dde23e140bbf038f9a2d8f0f07b4e3a965c61","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e","sha":"1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:13:04-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/877dde23e140bbf038f9a2d8f0f07b4e3a965c61","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:13:04-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/307d8dc221f2a6097a520636f60238621e966f58","sha":"307d8dc221f2a6097a520636f60238621e966f58"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/99564c1cab139d1e4678f5f83f60d26f1210db7e","sha":"99564c1cab139d1e4678f5f83f60d26f1210db7e"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:11:37-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:11:37-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/26e23b86645628acb3f1764e8d81a213b9f3443f","sha":"26e23b86645628acb3f1764e8d81a213b9f3443f"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/99564c1cab139d1e4678f5f83f60d26f1210db7e","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"99564c1cab139d1e4678f5f83f60d26f1210db7e","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/231926207709ceaa61e87b64e34e17d85adecd9c","sha":"231926207709ceaa61e87b64e34e17d85adecd9c"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:04:42-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/99564c1cab139d1e4678f5f83f60d26f1210db7e","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:04:42-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/2824e5fdbb2811bb05eab1a225a9e64d4974b880","sha":"2824e5fdbb2811bb05eab1a225a9e64d4974b880"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/231926207709ceaa61e87b64e34e17d85adecd9c","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"231926207709ceaa61e87b64e34e17d85adecd9c","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fb722625dddb9a32f75190723f7da12683b7c4b2","sha":"fb722625dddb9a32f75190723f7da12683b7c4b2"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:01:07-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/231926207709ceaa61e87b64e34e17d85adecd9c","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:01:07-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/54f99bd97e9223673a5947bdb8bd8dcafd9878d8","sha":"54f99bd97e9223673a5947bdb8bd8dcafd9878d8"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fb722625dddb9a32f75190723f7da12683b7c4b2","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"fb722625dddb9a32f75190723f7da12683b7c4b2","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cab9d71603e127bdd1f600a759dccea1781fa1ab","sha":"cab9d71603e127bdd1f600a759dccea1781fa1ab"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:59:48-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/fb722625dddb9a32f75190723f7da12683b7c4b2","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:59:48-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/bd492ae3de0943fa17cf91c3840361855b38814d","sha":"bd492ae3de0943fa17cf91c3840361855b38814d"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cab9d71603e127bdd1f600a759dccea1781fa1ab","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"cab9d71603e127bdd1f600a759dccea1781fa1ab","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a","sha":"e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:42:20-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/cab9d71603e127bdd1f600a759dccea1781fa1ab","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:42:20-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/3a4160a7930e855165662640ab9ac0b284930602","sha":"3a4160a7930e855165662640ab9ac0b284930602"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4a5cf98e7f959f1b5d9af484760c25cd27d9180d","sha":"4a5cf98e7f959f1b5d9af484760c25cd27d9180d"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:40:44-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:40:44-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/860a56be6edc3335b3f1d7c05163ce6c88d86d97","sha":"860a56be6edc3335b3f1d7c05163ce6c88d86d97"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4a5cf98e7f959f1b5d9af484760c25cd27d9180d","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"4a5cf98e7f959f1b5d9af484760c25cd27d9180d","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5d1add448e0b0b1dadb8c6094a9e5e19b255f67e","sha":"5d1add448e0b0b1dadb8c6094a9e5e19b255f67e"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:37:23-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4a5cf98e7f959f1b5d9af484760c25cd27d9180d","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:37:23-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/27c76f8754af9bfc0bd2f285a9034a2a267f3f6b","sha":"27c76f8754af9bfc0bd2f285a9034a2a267f3f6b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5d1add448e0b0b1dadb8c6094a9e5e19b255f67e","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"5d1add448e0b0b1dadb8c6094a9e5e19b255f67e","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0d9fc99a4b5d1ec6473c9c81c888917c132ffa65","sha":"0d9fc99a4b5d1ec6473c9c81c888917c132ffa65"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:36:15-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/5d1add448e0b0b1dadb8c6094a9e5e19b255f67e","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:36:15-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/c220b5fe6708feed4646e08f66cbd191d3074318","sha":"c220b5fe6708feed4646e08f66cbd191d3074318"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0d9fc99a4b5d1ec6473c9c81c888917c132ffa65","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"0d9fc99a4b5d1ec6473c9c81c888917c132ffa65","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b56aa09011378b014221f86dffb8304957a9e6bd","sha":"b56aa09011378b014221f86dffb8304957a9e6bd"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:35:28-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0d9fc99a4b5d1ec6473c9c81c888917c132ffa65","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:35:28-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/df0cf9d9d9db0389f96d0448baaea45528983486","sha":"df0cf9d9d9db0389f96d0448baaea45528983486"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b56aa09011378b014221f86dffb8304957a9e6bd","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"b56aa09011378b014221f86dffb8304957a9e6bd","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3e8169c0a98ce1e2c6a32ae1256ae0f735065df5","sha":"3e8169c0a98ce1e2c6a32ae1256ae0f735065df5"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:26:13-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/b56aa09011378b014221f86dffb8304957a9e6bd","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:26:13-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/5683cd9759e70f12141fb579a729e1c5d72256ad","sha":"5683cd9759e70f12141fb579a729e1c5d72256ad"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3e8169c0a98ce1e2c6a32ae1256ae0f735065df5","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"3e8169c0a98ce1e2c6a32ae1256ae0f735065df5","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/378558f6cac6183b4a7100c0ce5eaad1cfff6717","sha":"378558f6cac6183b4a7100c0ce5eaad1cfff6717"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:18:28-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/3e8169c0a98ce1e2c6a32ae1256ae0f735065df5","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:18:28-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e9bced97139773dcfbbefc6a4091e4458ee1fe23","sha":"e9bced97139773dcfbbefc6a4091e4458ee1fe23"}}}] +[('status', '200 OK'), ('x-ratelimit-remaining', '4978'), ('content-length', '44844'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"b1e58b63cf08fef49b20ee7682f4eadb"'), ('date', 'Sun, 27 May 2012 06:45:59 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1095d304b7fab3818dcb4c42093c8c56d3ac05e4","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"1095d304b7fab3818dcb4c42093c8c56d3ac05e4","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/bd39726f7cf86ea7ffb33b5718241fdab5fc8f53","sha":"bd39726f7cf86ea7ffb33b5718241fdab5fc8f53"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:28:03-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/1095d304b7fab3818dcb4c42093c8c56d3ac05e4","message":"Repository.compare","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:28:03-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/62acfc5826055bea7623e35982768674fb672bff","sha":"62acfc5826055bea7623e35982768674fb672bff"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/bd39726f7cf86ea7ffb33b5718241fdab5fc8f53","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"bd39726f7cf86ea7ffb33b5718241fdab5fc8f53","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1d2b27824d20612066d84be42d6691c66bb18ef4","sha":"1d2b27824d20612066d84be42d6691c66bb18ef4"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-18T23:40:52-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/bd39726f7cf86ea7ffb33b5718241fdab5fc8f53","message":"AuthenticatedUser.get_issues","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-18T23:40:52-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/e0cf809423855e97a1c418cd0574aceaea673e7c","sha":"e0cf809423855e97a1c418cd0574aceaea673e7c"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1d2b27824d20612066d84be42d6691c66bb18ef4","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"1d2b27824d20612066d84be42d6691c66bb18ef4","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297","sha":"6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-18T23:32:34-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/1d2b27824d20612066d84be42d6691c66bb18ef4","message":"Repository.get_git_tree with 'recursive'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-18T23:32:34-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/eece2904086e172c103a3f6c72d72577947d69af","sha":"eece2904086e172c103a3f6c72d72577947d69af"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a475d685d8ae709095d09094ea0962ac182d33f0","sha":"a475d685d8ae709095d09094ea0962ac182d33f0"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-16T23:42:54-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297","message":"Optional parameter for Repository.create_git_tree","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-16T23:42:54-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/a07df55d4e61292bfd4d344221a744bdeb837cef","sha":"a07df55d4e61292bfd4d344221a744bdeb837cef"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a475d685d8ae709095d09094ea0962ac182d33f0","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"a475d685d8ae709095d09094ea0962ac182d33f0","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a85de99ea5b5e7b38bd68e076d09c49207b8687e","sha":"a85de99ea5b5e7b38bd68e076d09c49207b8687e"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-16T00:11:07-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/a475d685d8ae709095d09094ea0962ac182d33f0","message":"On the way to alternative inputs. Still needs unit and integration testing","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-16T00:11:07-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/929c7826e4116ccc48860420e96448c0b2dba912","sha":"929c7826e4116ccc48860420e96448c0b2dba912"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a85de99ea5b5e7b38bd68e076d09c49207b8687e","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"a85de99ea5b5e7b38bd68e076d09c49207b8687e","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d24cf209ddd1758188c5f35344f76df818d09a46","sha":"d24cf209ddd1758188c5f35344f76df818d09a46"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-15T23:54:19-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/a85de99ea5b5e7b38bd68e076d09c49207b8687e","message":"dos2unix","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-15T23:54:19-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/45ab612f324d934efd24d37ec8a1a829ae9c819c","sha":"45ab612f324d934efd24d37ec8a1a829ae9c819c"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d24cf209ddd1758188c5f35344f76df818d09a46","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"d24cf209ddd1758188c5f35344f76df818d09a46","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0909fec395bb1f97e2580d6a029cfc64b352aff9","sha":"0909fec395bb1f97e2580d6a029cfc64b352aff9"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-15T23:53:33-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/d24cf209ddd1758188c5f35344f76df818d09a46","message":"Be explicit about argumentChecker object","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-15T23:53:33-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/1737a3881dfa9524447b8841f441efa4d57b2e57","sha":"1737a3881dfa9524447b8841f441efa4d57b2e57"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0909fec395bb1f97e2580d6a029cfc64b352aff9","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"0909fec395bb1f97e2580d6a029cfc64b352aff9","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/50ac55b25ceba555b84709839f80447552450697","sha":"50ac55b25ceba555b84709839f80447552450697"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6e421e9e85e12008758870bc046bc2c6120af72a","sha":"6e421e9e85e12008758870bc046bc2c6120af72a"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:26:35-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0909fec395bb1f97e2580d6a029cfc64b352aff9","message":"Merge branch 'topic/MoveGithubObjects' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:26:35-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/5e1db9b1002e45cbcde2f17253233b3cf50496ad","sha":"5e1db9b1002e45cbcde2f17253233b3cf50496ad"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6e421e9e85e12008758870bc046bc2c6120af72a","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"6e421e9e85e12008758870bc046bc2c6120af72a","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/32ed0ebc377efbed5b482b3d49ff54bf1715d55a","sha":"32ed0ebc377efbed5b482b3d49ff54bf1715d55a"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:24:49-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/6e421e9e85e12008758870bc046bc2c6120af72a","message":"Separate the three distributed classes","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:24:49-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/5e1db9b1002e45cbcde2f17253233b3cf50496ad","sha":"5e1db9b1002e45cbcde2f17253233b3cf50496ad"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/32ed0ebc377efbed5b482b3d49ff54bf1715d55a","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"32ed0ebc377efbed5b482b3d49ff54bf1715d55a","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8213df1d744f251aa8e52229643a9f6ce352f3c0","sha":"8213df1d744f251aa8e52229643a9f6ce352f3c0"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:13:37-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/32ed0ebc377efbed5b482b3d49ff54bf1715d55a","message":"Move GithubObject","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:13:37-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/4836c31ec1b75e4b0145bae29cda338318b583a0","sha":"4836c31ec1b75e4b0145bae29cda338318b583a0"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8213df1d744f251aa8e52229643a9f6ce352f3c0","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"8213df1d744f251aa8e52229643a9f6ce352f3c0","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/69cc298fd159f19eb204dd09f17d31dc4abc3d41","sha":"69cc298fd159f19eb204dd09f17d31dc4abc3d41"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:07:21-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/8213df1d744f251aa8e52229643a9f6ce352f3c0","message":"Simplify internal imports","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:07:21-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/e2cd74e9c3cf6ff69da96f8fad7e1e4120db56fb","sha":"e2cd74e9c3cf6ff69da96f8fad7e1e4120db56fb"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/69cc298fd159f19eb204dd09f17d31dc4abc3d41","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"69cc298fd159f19eb204dd09f17d31dc4abc3d41","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/85eef756353e13efcb24c726320cd2617c2a7bd8","sha":"85eef756353e13efcb24c726320cd2617c2a7bd8"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T14:55:06-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/69cc298fd159f19eb204dd09f17d31dc4abc3d41","message":"Make sure only three class definitions are distributed","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T14:56:12-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/a1d3e1193b5eeb668b0a9e4ec0286adeee2bfc98","sha":"a1d3e1193b5eeb668b0a9e4ec0286adeee2bfc98"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/85eef756353e13efcb24c726320cd2617c2a7bd8","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"85eef756353e13efcb24c726320cd2617c2a7bd8","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/50ac55b25ceba555b84709839f80447552450697","sha":"50ac55b25ceba555b84709839f80447552450697"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T14:31:32-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/85eef756353e13efcb24c726320cd2617c2a7bd8","message":"Move classes around","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T14:56:08-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b0eadbf0e94e5098c5e4324f92e1546b3fe97ae2","sha":"b0eadbf0e94e5098c5e4324f92e1546b3fe97ae2"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/50ac55b25ceba555b84709839f80447552450697","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"50ac55b25ceba555b84709839f80447552450697","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/58b4396aa0e7cb72911b75cb035798143a06e0ee","sha":"58b4396aa0e7cb72911b75cb035798143a06e0ee"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/767d75a580279e457f9bc52bc308a17ff8ea0509","sha":"767d75a580279e457f9bc52bc308a17ff8ea0509"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:26:20-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/50ac55b25ceba555b84709839f80447552450697","message":"Merge branch 'topic/SplitGithubObjects' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:26:20-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/9541dc30b6f7eb32a0eeb99661974efc2bc2b2e0","sha":"9541dc30b6f7eb32a0eeb99661974efc2bc2b2e0"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/767d75a580279e457f9bc52bc308a17ff8ea0509","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"767d75a580279e457f9bc52bc308a17ff8ea0509","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/75e72ffa3066693291f7da03070666e8f885097a","sha":"75e72ffa3066693291f7da03070666e8f885097a"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:24:39-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/767d75a580279e457f9bc52bc308a17ff8ea0509","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:24:39-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/9541dc30b6f7eb32a0eeb99661974efc2bc2b2e0","sha":"9541dc30b6f7eb32a0eeb99661974efc2bc2b2e0"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/75e72ffa3066693291f7da03070666e8f885097a","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"75e72ffa3066693291f7da03070666e8f885097a","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/504047e218e6b34a3828ccc408431634f17b9504","sha":"504047e218e6b34a3828ccc408431634f17b9504"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:23:47-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/75e72ffa3066693291f7da03070666e8f885097a","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:23:47-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/ef565463ba492225543f538ddc2ac31d93301a3e","sha":"ef565463ba492225543f538ddc2ac31d93301a3e"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/504047e218e6b34a3828ccc408431634f17b9504","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"504047e218e6b34a3828ccc408431634f17b9504","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/960db1d5c9853e9f5fbbc9237c2c166ceef1f080","sha":"960db1d5c9853e9f5fbbc9237c2c166ceef1f080"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:19:54-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/504047e218e6b34a3828ccc408431634f17b9504","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:19:54-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/64a98d6a5045debec1ab928d49989c7f0f666be2","sha":"64a98d6a5045debec1ab928d49989c7f0f666be2"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/960db1d5c9853e9f5fbbc9237c2c166ceef1f080","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"960db1d5c9853e9f5fbbc9237c2c166ceef1f080","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/877dde23e140bbf038f9a2d8f0f07b4e3a965c61","sha":"877dde23e140bbf038f9a2d8f0f07b4e3a965c61"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:18:02-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/960db1d5c9853e9f5fbbc9237c2c166ceef1f080","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:18:02-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b16b7a597ab3aa1876b1797426367114d4421642","sha":"b16b7a597ab3aa1876b1797426367114d4421642"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/877dde23e140bbf038f9a2d8f0f07b4e3a965c61","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"877dde23e140bbf038f9a2d8f0f07b4e3a965c61","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e","sha":"1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:13:04-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/877dde23e140bbf038f9a2d8f0f07b4e3a965c61","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:13:04-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/307d8dc221f2a6097a520636f60238621e966f58","sha":"307d8dc221f2a6097a520636f60238621e966f58"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/99564c1cab139d1e4678f5f83f60d26f1210db7e","sha":"99564c1cab139d1e4678f5f83f60d26f1210db7e"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:11:37-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:11:37-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/26e23b86645628acb3f1764e8d81a213b9f3443f","sha":"26e23b86645628acb3f1764e8d81a213b9f3443f"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/99564c1cab139d1e4678f5f83f60d26f1210db7e","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"99564c1cab139d1e4678f5f83f60d26f1210db7e","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/231926207709ceaa61e87b64e34e17d85adecd9c","sha":"231926207709ceaa61e87b64e34e17d85adecd9c"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:04:42-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/99564c1cab139d1e4678f5f83f60d26f1210db7e","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:04:42-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/2824e5fdbb2811bb05eab1a225a9e64d4974b880","sha":"2824e5fdbb2811bb05eab1a225a9e64d4974b880"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/231926207709ceaa61e87b64e34e17d85adecd9c","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"231926207709ceaa61e87b64e34e17d85adecd9c","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/fb722625dddb9a32f75190723f7da12683b7c4b2","sha":"fb722625dddb9a32f75190723f7da12683b7c4b2"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:01:07-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/231926207709ceaa61e87b64e34e17d85adecd9c","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:01:07-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/54f99bd97e9223673a5947bdb8bd8dcafd9878d8","sha":"54f99bd97e9223673a5947bdb8bd8dcafd9878d8"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/fb722625dddb9a32f75190723f7da12683b7c4b2","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"fb722625dddb9a32f75190723f7da12683b7c4b2","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cab9d71603e127bdd1f600a759dccea1781fa1ab","sha":"cab9d71603e127bdd1f600a759dccea1781fa1ab"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:59:48-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/fb722625dddb9a32f75190723f7da12683b7c4b2","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:59:48-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/bd492ae3de0943fa17cf91c3840361855b38814d","sha":"bd492ae3de0943fa17cf91c3840361855b38814d"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cab9d71603e127bdd1f600a759dccea1781fa1ab","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"cab9d71603e127bdd1f600a759dccea1781fa1ab","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a","sha":"e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:42:20-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/cab9d71603e127bdd1f600a759dccea1781fa1ab","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:42:20-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/3a4160a7930e855165662640ab9ac0b284930602","sha":"3a4160a7930e855165662640ab9ac0b284930602"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4a5cf98e7f959f1b5d9af484760c25cd27d9180d","sha":"4a5cf98e7f959f1b5d9af484760c25cd27d9180d"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:40:44-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:40:44-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/860a56be6edc3335b3f1d7c05163ce6c88d86d97","sha":"860a56be6edc3335b3f1d7c05163ce6c88d86d97"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4a5cf98e7f959f1b5d9af484760c25cd27d9180d","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"4a5cf98e7f959f1b5d9af484760c25cd27d9180d","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5d1add448e0b0b1dadb8c6094a9e5e19b255f67e","sha":"5d1add448e0b0b1dadb8c6094a9e5e19b255f67e"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:37:23-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/4a5cf98e7f959f1b5d9af484760c25cd27d9180d","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:37:23-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/27c76f8754af9bfc0bd2f285a9034a2a267f3f6b","sha":"27c76f8754af9bfc0bd2f285a9034a2a267f3f6b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5d1add448e0b0b1dadb8c6094a9e5e19b255f67e","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"5d1add448e0b0b1dadb8c6094a9e5e19b255f67e","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0d9fc99a4b5d1ec6473c9c81c888917c132ffa65","sha":"0d9fc99a4b5d1ec6473c9c81c888917c132ffa65"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:36:15-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/5d1add448e0b0b1dadb8c6094a9e5e19b255f67e","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:36:15-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/c220b5fe6708feed4646e08f66cbd191d3074318","sha":"c220b5fe6708feed4646e08f66cbd191d3074318"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0d9fc99a4b5d1ec6473c9c81c888917c132ffa65","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"0d9fc99a4b5d1ec6473c9c81c888917c132ffa65","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/b56aa09011378b014221f86dffb8304957a9e6bd","sha":"b56aa09011378b014221f86dffb8304957a9e6bd"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:35:28-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0d9fc99a4b5d1ec6473c9c81c888917c132ffa65","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:35:28-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/df0cf9d9d9db0389f96d0448baaea45528983486","sha":"df0cf9d9d9db0389f96d0448baaea45528983486"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/b56aa09011378b014221f86dffb8304957a9e6bd","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"b56aa09011378b014221f86dffb8304957a9e6bd","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/3e8169c0a98ce1e2c6a32ae1256ae0f735065df5","sha":"3e8169c0a98ce1e2c6a32ae1256ae0f735065df5"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:26:13-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/b56aa09011378b014221f86dffb8304957a9e6bd","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:26:13-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/5683cd9759e70f12141fb579a729e1c5d72256ad","sha":"5683cd9759e70f12141fb579a729e1c5d72256ad"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/3e8169c0a98ce1e2c6a32ae1256ae0f735065df5","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"3e8169c0a98ce1e2c6a32ae1256ae0f735065df5","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/378558f6cac6183b4a7100c0ce5eaad1cfff6717","sha":"378558f6cac6183b4a7100c0ce5eaad1cfff6717"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:18:28-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/3e8169c0a98ce1e2c6a32ae1256ae0f735065df5","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:18:28-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/e9bced97139773dcfbbefc6a4091e4458ee1fe23","sha":"e9bced97139773dcfbbefc6a4091e4458ee1fe23"}}}] https GET api.github.com None -/repos/jacquev6/PyGithub/commits?last_sha=3e8169c0a98ce1e2c6a32ae1256ae0f735065df5&top=master +/repos/PyGithub/PyGithub/commits?last_sha=3e8169c0a98ce1e2c6a32ae1256ae0f735065df5&top=master {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4977'), ('content-length', '45317'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"b341665cd46d642b2e6045772eb3278b"'), ('date', 'Sun, 27 May 2012 06:46:00 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/378558f6cac6183b4a7100c0ce5eaad1cfff6717","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"378558f6cac6183b4a7100c0ce5eaad1cfff6717","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/58b4396aa0e7cb72911b75cb035798143a06e0ee","sha":"58b4396aa0e7cb72911b75cb035798143a06e0ee"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:14:56-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/378558f6cac6183b4a7100c0ce5eaad1cfff6717","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:14:56-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/980bf3f66b3cbeec03a37db5263cbbc883b54681","sha":"980bf3f66b3cbeec03a37db5263cbbc883b54681"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/58b4396aa0e7cb72911b75cb035798143a06e0ee","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"58b4396aa0e7cb72911b75cb035798143a06e0ee","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a3be28756101370fbc689eec3a7825c4c385a6c9","sha":"a3be28756101370fbc689eec3a7825c4c385a6c9"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T23:30:43-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/58b4396aa0e7cb72911b75cb035798143a06e0ee","message":"Remove totos, add them as github.com issues","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T23:30:43-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/202a101db80163b980fff6ae1ccebd8e985778e1","sha":"202a101db80163b980fff6ae1ccebd8e985778e1"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a3be28756101370fbc689eec3a7825c4c385a6c9","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"a3be28756101370fbc689eec3a7825c4c385a6c9","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3d6bd49ce229243fea4bb46a937622d0ec7d4d1c","sha":"3d6bd49ce229243fea4bb46a937622d0ec7d4d1c"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T15:09:06-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a3be28756101370fbc689eec3a7825c4c385a6c9","message":"Publish version 0.4","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T15:09:06-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/5c6e0289868fe3bc6bff49b0c33bd27c4dd07e2d","sha":"5c6e0289868fe3bc6bff49b0c33bd27c4dd07e2d"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3d6bd49ce229243fea4bb46a937622d0ec7d4d1c","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"3d6bd49ce229243fea4bb46a937622d0ec7d4d1c","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/636e6112deb72277b3bffcc3303cd7e8a7431a5d","sha":"636e6112deb72277b3bffcc3303cd7e8a7431a5d"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/58cb0dbdef9765e0e913c726f923a47315aaf80e","sha":"58cb0dbdef9765e0e913c726f923a47315aaf80e"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:53:18-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/3d6bd49ce229243fea4bb46a937622d0ec7d4d1c","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:53:18-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/2cabc3bd4e00227b053ddf867dec199b15503c41","sha":"2cabc3bd4e00227b053ddf867dec199b15503c41"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/58cb0dbdef9765e0e913c726f923a47315aaf80e","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"58cb0dbdef9765e0e913c726f923a47315aaf80e","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cc6d0fc044eadf2e6fde5da699f61654c1e691f3","sha":"cc6d0fc044eadf2e6fde5da699f61654c1e691f3"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7b7ac20c6fa27f72a24483c73ab1bf4deffc89f0","sha":"7b7ac20c6fa27f72a24483c73ab1bf4deffc89f0"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:37:15-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/58cb0dbdef9765e0e913c726f923a47315aaf80e","message":"Merge branch 'topic/FixBaseUrl' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:37:15-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/2cabc3bd4e00227b053ddf867dec199b15503c41","sha":"2cabc3bd4e00227b053ddf867dec199b15503c41"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7b7ac20c6fa27f72a24483c73ab1bf4deffc89f0","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"7b7ac20c6fa27f72a24483c73ab1bf4deffc89f0","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/97f308e67383368a2d15788cac28e126c8528bb2","sha":"97f308e67383368a2d15788cac28e126c8528bb2"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:36:59-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/7b7ac20c6fa27f72a24483c73ab1bf4deffc89f0","message":"Add a unit test with a changing _baseUrl","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:36:59-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/2cabc3bd4e00227b053ddf867dec199b15503c41","sha":"2cabc3bd4e00227b053ddf867dec199b15503c41"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/97f308e67383368a2d15788cac28e126c8528bb2","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"97f308e67383368a2d15788cac28e126c8528bb2","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fc33a6de4f0e08d7ff2de05935517ec3932d212e","sha":"fc33a6de4f0e08d7ff2de05935517ec3932d212e"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:31:09-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/97f308e67383368a2d15788cac28e126c8528bb2","message":"Restore integration test after bugfix","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:31:09-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/2905b7707c427bff575def862c26cb05507bfa9c","sha":"2905b7707c427bff575def862c26cb05507bfa9c"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fc33a6de4f0e08d7ff2de05935517ec3932d212e","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"fc33a6de4f0e08d7ff2de05935517ec3932d212e","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cc6d0fc044eadf2e6fde5da699f61654c1e691f3","sha":"cc6d0fc044eadf2e6fde5da699f61654c1e691f3"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:28:06-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/fc33a6de4f0e08d7ff2de05935517ec3932d212e","message":"Fix bug: _baseUrl is now a method\n\nThis handles modification of attributes creating the base url","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:28:06-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/7f985c8693602ccc884ecfd9fece11a2a7d3fdef","sha":"7f985c8693602ccc884ecfd9fece11a2a7d3fdef"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cc6d0fc044eadf2e6fde5da699f61654c1e691f3","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"cc6d0fc044eadf2e6fde5da699f61654c1e691f3","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/157f9c13275738b6b39b8d7a874f5f0aee47cb18","sha":"157f9c13275738b6b39b8d7a874f5f0aee47cb18"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2dd71f3777b87f2ba61cb20d2c67f10401e3eb2c","sha":"2dd71f3777b87f2ba61cb20d2c67f10401e3eb2c"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:12:06-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/cc6d0fc044eadf2e6fde5da699f61654c1e691f3","message":"Merge branch 'topic/MergeMergeRequest' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:12:06-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/4138e1bdfbc5130fe957589d9b68bb053c8305c5","sha":"4138e1bdfbc5130fe957589d9b68bb053c8305c5"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2dd71f3777b87f2ba61cb20d2c67f10401e3eb2c","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"2dd71f3777b87f2ba61cb20d2c67f10401e3eb2c","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/366ca58ca004b9129f9d435db8204ce0f5bc57c3","sha":"366ca58ca004b9129f9d435db8204ce0f5bc57c3"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:11:40-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/2dd71f3777b87f2ba61cb20d2c67f10401e3eb2c","message":"Restore test coverage","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:11:40-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/4138e1bdfbc5130fe957589d9b68bb053c8305c5","sha":"4138e1bdfbc5130fe957589d9b68bb053c8305c5"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/366ca58ca004b9129f9d435db8204ce0f5bc57c3","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"366ca58ca004b9129f9d435db8204ce0f5bc57c3","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0d3b3ffd1e5c143af8725fdee808101f626f683d","sha":"0d3b3ffd1e5c143af8725fdee808101f626f683d"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:08:22-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/366ca58ca004b9129f9d435db8204ce0f5bc57c3","message":"PullRequest.is_merged and PullRequest.merge","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:08:22-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/cff64747ea7fc0957b502839f3a54cb8dd9b7002","sha":"cff64747ea7fc0957b502839f3a54cb8dd9b7002"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0d3b3ffd1e5c143af8725fdee808101f626f683d","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"0d3b3ffd1e5c143af8725fdee808101f626f683d","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/157f9c13275738b6b39b8d7a874f5f0aee47cb18","sha":"157f9c13275738b6b39b8d7a874f5f0aee47cb18"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:51:50-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0d3b3ffd1e5c143af8725fdee808101f626f683d","message":"Improve coverage analysis","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:51:50-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/091f983c6aa0b097677a5b1d1e4a2b6417bb953d","sha":"091f983c6aa0b097677a5b1d1e4a2b6417bb953d"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/157f9c13275738b6b39b8d7a874f5f0aee47cb18","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"157f9c13275738b6b39b8d7a874f5f0aee47cb18","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/924aef7d9f3a21145492ea165c9268ab0030cbab","sha":"924aef7d9f3a21145492ea165c9268ab0030cbab"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b12b6ffdfa6f1cca89459438eff6d3420ed199e9","sha":"b12b6ffdfa6f1cca89459438eff6d3420ed199e9"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:48:47-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/157f9c13275738b6b39b8d7a874f5f0aee47cb18","message":"Merge branch 'topic/AddHooksAndEvents' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:48:47-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/014f6c1b5278352ba1bc974914e3a76c17590479","sha":"014f6c1b5278352ba1bc974914e3a76c17590479"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b12b6ffdfa6f1cca89459438eff6d3420ed199e9","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"b12b6ffdfa6f1cca89459438eff6d3420ed199e9","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/236fcaead6addd284722e4b5fde2e24f6f4ae63b","sha":"236fcaead6addd284722e4b5fde2e24f6f4ae63b"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:48:27-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/b12b6ffdfa6f1cca89459438eff6d3420ed199e9","message":"AuthenticatedUser.get_organization_events","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:48:27-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/014f6c1b5278352ba1bc974914e3a76c17590479","sha":"014f6c1b5278352ba1bc974914e3a76c17590479"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/236fcaead6addd284722e4b5fde2e24f6f4ae63b","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"236fcaead6addd284722e4b5fde2e24f6f4ae63b","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/43369be99710f4386d31daa87db9b5cc48f0544d","sha":"43369be99710f4386d31daa87db9b5cc48f0544d"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:28:26-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/236fcaead6addd284722e4b5fde2e24f6f4ae63b","message":"Restore test coverage","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:28:26-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/484f40761d22be9a4a815e010c52e43c12e49f02","sha":"484f40761d22be9a4a815e010c52e43c12e49f02"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/43369be99710f4386d31daa87db9b5cc48f0544d","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"43369be99710f4386d31daa87db9b5cc48f0544d","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/07b6b437d741df9c94cf34e36045fc78868b63ba","sha":"07b6b437d741df9c94cf34e36045fc78868b63ba"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:22:10-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/43369be99710f4386d31daa87db9b5cc48f0544d","message":"Repository.get_issues_event + coverage","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:22:10-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/656b268fdf8d0ce1e48037f8a546eecdf0dc5ef9","sha":"656b268fdf8d0ce1e48037f8a546eecdf0dc5ef9"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/07b6b437d741df9c94cf34e36045fc78868b63ba","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"07b6b437d741df9c94cf34e36045fc78868b63ba","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6d51a955d922e92dacf37106a3c52d185fb18423","sha":"6d51a955d922e92dacf37106a3c52d185fb18423"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T12:43:20-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/07b6b437d741df9c94cf34e36045fc78868b63ba","message":"Remove two 'MethodFromCallable'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T12:43:20-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fb26540cb902379e02897890f8e79df032fa4657","sha":"fb26540cb902379e02897890f8e79df032fa4657"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6d51a955d922e92dacf37106a3c52d185fb18423","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"6d51a955d922e92dacf37106a3c52d185fb18423","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/44911bf0906912d468cb88001907955ee318fdf7","sha":"44911bf0906912d468cb88001907955ee318fdf7"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T11:59:56-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/6d51a955d922e92dacf37106a3c52d185fb18423","message":"Fix and add integration tests about events","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T11:59:56-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/c1619a5fa4c612b9d7455bbd4111e074c1110967","sha":"c1619a5fa4c612b9d7455bbd4111e074c1110967"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/44911bf0906912d468cb88001907955ee318fdf7","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"44911bf0906912d468cb88001907955ee318fdf7","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/01fa4d803b4a541759ba906d194f1fa9bc29faa9","sha":"01fa4d803b4a541759ba906d194f1fa9bc29faa9"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T12:54:56-08:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/44911bf0906912d468cb88001907955ee318fdf7","message":"Events: step 1","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T12:54:56-08:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/8e82325aa70d2d0c5dd15c138d44c729a097d7df","sha":"8e82325aa70d2d0c5dd15c138d44c729a097d7df"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/01fa4d803b4a541759ba906d194f1fa9bc29faa9","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"01fa4d803b4a541759ba906d194f1fa9bc29faa9","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/25c76b4b759173fa42cdf3ebd0214a5ce958b2e4","sha":"25c76b4b759173fa42cdf3ebd0214a5ce958b2e4"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T02:12:15-08:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/01fa4d803b4a541759ba906d194f1fa9bc29faa9","message":"Regenerate reference of classes","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T02:12:15-08:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/deae54c27d31b4d5f21daeb48451cdbed301d386","sha":"deae54c27d31b4d5f21daeb48451cdbed301d386"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/25c76b4b759173fa42cdf3ebd0214a5ce958b2e4","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"25c76b4b759173fa42cdf3ebd0214a5ce958b2e4","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/00a832e6d519dac96142f650d6363f24459f9145","sha":"00a832e6d519dac96142f650d6363f24459f9145"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-03T23:56:48-08:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/25c76b4b759173fa42cdf3ebd0214a5ce958b2e4","message":"Restore test coverage","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:46:20-08:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/9ad7d85371d98b8cc50686cc0591e98935d7917d","sha":"9ad7d85371d98b8cc50686cc0591e98935d7917d"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/00a832e6d519dac96142f650d6363f24459f9145","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"00a832e6d519dac96142f650d6363f24459f9145","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f03d86c46e4d5b337514277620dc9adbdc68dba2","sha":"f03d86c46e4d5b337514277620dc9adbdc68dba2"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-03T04:44:54-08:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/00a832e6d519dac96142f650d6363f24459f9145","message":"Hook testing","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:46:19-08:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/88beba1a00e40bea9da1c02b613e3859df4105de","sha":"88beba1a00e40bea9da1c02b613e3859df4105de"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f03d86c46e4d5b337514277620dc9adbdc68dba2","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"f03d86c46e4d5b337514277620dc9adbdc68dba2","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0b8ffcc14c6200dda4f9b11c47d6949b5cd3240b","sha":"0b8ffcc14c6200dda4f9b11c47d6949b5cd3240b"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-03T04:36:01-08:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/f03d86c46e4d5b337514277620dc9adbdc68dba2","message":"Hooks: step 2","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:46:18-08:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/a2d2473d5b9f12020bcba798849206c4636fec2f","sha":"a2d2473d5b9f12020bcba798849206c4636fec2f"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0b8ffcc14c6200dda4f9b11c47d6949b5cd3240b","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"0b8ffcc14c6200dda4f9b11c47d6949b5cd3240b","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f2d89a565f5eb19af605d78762169daec9a701e0","sha":"f2d89a565f5eb19af605d78762169daec9a701e0"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-01T08:35:13-08:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0b8ffcc14c6200dda4f9b11c47d6949b5cd3240b","message":"Hooks: step 1","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:46:17-08:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/122bf2a07918c500e15ae7b9a5ae6eba4c4abf34","sha":"122bf2a07918c500e15ae7b9a5ae6eba4c4abf34"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f2d89a565f5eb19af605d78762169daec9a701e0","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"f2d89a565f5eb19af605d78762169daec9a701e0","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/924aef7d9f3a21145492ea165c9268ab0030cbab","sha":"924aef7d9f3a21145492ea165c9268ab0030cbab"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-02-23T13:32:44-08:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/f2d89a565f5eb19af605d78762169daec9a701e0","message":"Totos for hooks and events","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:46:16-08:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/6c010d7ccbfbb6a0f44c829c08753dc19b71c29e","sha":"6c010d7ccbfbb6a0f44c829c08753dc19b71c29e"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/924aef7d9f3a21145492ea165c9268ab0030cbab","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"924aef7d9f3a21145492ea165c9268ab0030cbab","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cf3f792b16d2e9e56ba6562e9db55663d4443d87","sha":"cf3f792b16d2e9e56ba6562e9db55663d4443d87"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:45:59-08:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/924aef7d9f3a21145492ea165c9268ab0030cbab","message":"Typo...","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:45:59-08:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/c2d94eeeeb8eab5793762db56b9d6bdf3070c639","sha":"c2d94eeeeb8eab5793762db56b9d6bdf3070c639"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cf3f792b16d2e9e56ba6562e9db55663d4443d87","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"cf3f792b16d2e9e56ba6562e9db55663d4443d87","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5c17275366efd3bc9414958d661d9a017022be6b","sha":"5c17275366efd3bc9414958d661d9a017022be6b"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3a83cc0b1e40788483398eb89e3671b91d648251","sha":"3a83cc0b1e40788483398eb89e3671b91d648251"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:39:25-08:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/cf3f792b16d2e9e56ba6562e9db55663d4443d87","message":"Merge branch 'topic/Coverage' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:39:25-08:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/ff1c6594a40331fca68b664d400269b343360fdd","sha":"ff1c6594a40331fca68b664d400269b343360fdd"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3a83cc0b1e40788483398eb89e3671b91d648251","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"3a83cc0b1e40788483398eb89e3671b91d648251","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e0c04877a9a00766d099251512a8bb512a1d37c2","sha":"e0c04877a9a00766d099251512a8bb512a1d37c2"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:38:09-08:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/3a83cc0b1e40788483398eb89e3671b91d648251","message":"RepositoryDetails","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:38:09-08:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/ff1c6594a40331fca68b664d400269b343360fdd","sha":"ff1c6594a40331fca68b664d400269b343360fdd"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e0c04877a9a00766d099251512a8bb512a1d37c2","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"e0c04877a9a00766d099251512a8bb512a1d37c2","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6b89c02872cbcb179d79cb4ceb2436fee02425d0","sha":"6b89c02872cbcb179d79cb4ceb2436fee02425d0"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:34:02-08:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/e0c04877a9a00766d099251512a8bb512a1d37c2","message":"AuthenticatedUserDetails","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:34:02-08:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/5f178bdb7fdd0f30d84b33e99e41b16a32fa0d9b","sha":"5f178bdb7fdd0f30d84b33e99e41b16a32fa0d9b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6b89c02872cbcb179d79cb4ceb2436fee02425d0","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"6b89c02872cbcb179d79cb4ceb2436fee02425d0","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/231ae0778e0bebaac3dc87fa8f602c1560b8164f","sha":"231ae0778e0bebaac3dc87fa8f602c1560b8164f"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:21:59-08:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/6b89c02872cbcb179d79cb4ceb2436fee02425d0","message":"Downloads","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:21:59-08:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/047599e78ad35674ee8b0ac51d232b2c71b40a6f","sha":"047599e78ad35674ee8b0ac51d232b2c71b40a6f"}}}] +[('status', '200 OK'), ('x-ratelimit-remaining', '4977'), ('content-length', '45317'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"b341665cd46d642b2e6045772eb3278b"'), ('date', 'Sun, 27 May 2012 06:46:00 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/378558f6cac6183b4a7100c0ce5eaad1cfff6717","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"378558f6cac6183b4a7100c0ce5eaad1cfff6717","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/58b4396aa0e7cb72911b75cb035798143a06e0ee","sha":"58b4396aa0e7cb72911b75cb035798143a06e0ee"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:14:56-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/378558f6cac6183b4a7100c0ce5eaad1cfff6717","message":"Spliting GithubObjects.py","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:14:56-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/980bf3f66b3cbeec03a37db5263cbbc883b54681","sha":"980bf3f66b3cbeec03a37db5263cbbc883b54681"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/58b4396aa0e7cb72911b75cb035798143a06e0ee","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"58b4396aa0e7cb72911b75cb035798143a06e0ee","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a3be28756101370fbc689eec3a7825c4c385a6c9","sha":"a3be28756101370fbc689eec3a7825c4c385a6c9"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T23:30:43-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/58b4396aa0e7cb72911b75cb035798143a06e0ee","message":"Remove totos, add them as github.com issues","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T23:30:43-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/202a101db80163b980fff6ae1ccebd8e985778e1","sha":"202a101db80163b980fff6ae1ccebd8e985778e1"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a3be28756101370fbc689eec3a7825c4c385a6c9","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"a3be28756101370fbc689eec3a7825c4c385a6c9","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/3d6bd49ce229243fea4bb46a937622d0ec7d4d1c","sha":"3d6bd49ce229243fea4bb46a937622d0ec7d4d1c"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T15:09:06-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/a3be28756101370fbc689eec3a7825c4c385a6c9","message":"Publish version 0.4","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T15:09:06-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/5c6e0289868fe3bc6bff49b0c33bd27c4dd07e2d","sha":"5c6e0289868fe3bc6bff49b0c33bd27c4dd07e2d"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/3d6bd49ce229243fea4bb46a937622d0ec7d4d1c","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"3d6bd49ce229243fea4bb46a937622d0ec7d4d1c","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/636e6112deb72277b3bffcc3303cd7e8a7431a5d","sha":"636e6112deb72277b3bffcc3303cd7e8a7431a5d"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/58cb0dbdef9765e0e913c726f923a47315aaf80e","sha":"58cb0dbdef9765e0e913c726f923a47315aaf80e"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:53:18-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/3d6bd49ce229243fea4bb46a937622d0ec7d4d1c","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:53:18-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/2cabc3bd4e00227b053ddf867dec199b15503c41","sha":"2cabc3bd4e00227b053ddf867dec199b15503c41"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/58cb0dbdef9765e0e913c726f923a47315aaf80e","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"58cb0dbdef9765e0e913c726f923a47315aaf80e","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cc6d0fc044eadf2e6fde5da699f61654c1e691f3","sha":"cc6d0fc044eadf2e6fde5da699f61654c1e691f3"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/7b7ac20c6fa27f72a24483c73ab1bf4deffc89f0","sha":"7b7ac20c6fa27f72a24483c73ab1bf4deffc89f0"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:37:15-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/58cb0dbdef9765e0e913c726f923a47315aaf80e","message":"Merge branch 'topic/FixBaseUrl' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:37:15-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/2cabc3bd4e00227b053ddf867dec199b15503c41","sha":"2cabc3bd4e00227b053ddf867dec199b15503c41"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/7b7ac20c6fa27f72a24483c73ab1bf4deffc89f0","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"7b7ac20c6fa27f72a24483c73ab1bf4deffc89f0","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/97f308e67383368a2d15788cac28e126c8528bb2","sha":"97f308e67383368a2d15788cac28e126c8528bb2"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:36:59-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/7b7ac20c6fa27f72a24483c73ab1bf4deffc89f0","message":"Add a unit test with a changing _baseUrl","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:36:59-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/2cabc3bd4e00227b053ddf867dec199b15503c41","sha":"2cabc3bd4e00227b053ddf867dec199b15503c41"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/97f308e67383368a2d15788cac28e126c8528bb2","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"97f308e67383368a2d15788cac28e126c8528bb2","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/fc33a6de4f0e08d7ff2de05935517ec3932d212e","sha":"fc33a6de4f0e08d7ff2de05935517ec3932d212e"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:31:09-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/97f308e67383368a2d15788cac28e126c8528bb2","message":"Restore integration test after bugfix","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:31:09-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/2905b7707c427bff575def862c26cb05507bfa9c","sha":"2905b7707c427bff575def862c26cb05507bfa9c"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/fc33a6de4f0e08d7ff2de05935517ec3932d212e","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"fc33a6de4f0e08d7ff2de05935517ec3932d212e","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cc6d0fc044eadf2e6fde5da699f61654c1e691f3","sha":"cc6d0fc044eadf2e6fde5da699f61654c1e691f3"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:28:06-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/fc33a6de4f0e08d7ff2de05935517ec3932d212e","message":"Fix bug: _baseUrl is now a method\n\nThis handles modification of attributes creating the base url","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:28:06-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/7f985c8693602ccc884ecfd9fece11a2a7d3fdef","sha":"7f985c8693602ccc884ecfd9fece11a2a7d3fdef"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cc6d0fc044eadf2e6fde5da699f61654c1e691f3","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"cc6d0fc044eadf2e6fde5da699f61654c1e691f3","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/157f9c13275738b6b39b8d7a874f5f0aee47cb18","sha":"157f9c13275738b6b39b8d7a874f5f0aee47cb18"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2dd71f3777b87f2ba61cb20d2c67f10401e3eb2c","sha":"2dd71f3777b87f2ba61cb20d2c67f10401e3eb2c"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:12:06-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/cc6d0fc044eadf2e6fde5da699f61654c1e691f3","message":"Merge branch 'topic/MergeMergeRequest' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:12:06-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/4138e1bdfbc5130fe957589d9b68bb053c8305c5","sha":"4138e1bdfbc5130fe957589d9b68bb053c8305c5"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2dd71f3777b87f2ba61cb20d2c67f10401e3eb2c","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"2dd71f3777b87f2ba61cb20d2c67f10401e3eb2c","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/366ca58ca004b9129f9d435db8204ce0f5bc57c3","sha":"366ca58ca004b9129f9d435db8204ce0f5bc57c3"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:11:40-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/2dd71f3777b87f2ba61cb20d2c67f10401e3eb2c","message":"Restore test coverage","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:11:40-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/4138e1bdfbc5130fe957589d9b68bb053c8305c5","sha":"4138e1bdfbc5130fe957589d9b68bb053c8305c5"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/366ca58ca004b9129f9d435db8204ce0f5bc57c3","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"366ca58ca004b9129f9d435db8204ce0f5bc57c3","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0d3b3ffd1e5c143af8725fdee808101f626f683d","sha":"0d3b3ffd1e5c143af8725fdee808101f626f683d"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:08:22-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/366ca58ca004b9129f9d435db8204ce0f5bc57c3","message":"PullRequest.is_merged and PullRequest.merge","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T14:08:22-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/cff64747ea7fc0957b502839f3a54cb8dd9b7002","sha":"cff64747ea7fc0957b502839f3a54cb8dd9b7002"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0d3b3ffd1e5c143af8725fdee808101f626f683d","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"0d3b3ffd1e5c143af8725fdee808101f626f683d","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/157f9c13275738b6b39b8d7a874f5f0aee47cb18","sha":"157f9c13275738b6b39b8d7a874f5f0aee47cb18"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:51:50-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0d3b3ffd1e5c143af8725fdee808101f626f683d","message":"Improve coverage analysis","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:51:50-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/091f983c6aa0b097677a5b1d1e4a2b6417bb953d","sha":"091f983c6aa0b097677a5b1d1e4a2b6417bb953d"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/157f9c13275738b6b39b8d7a874f5f0aee47cb18","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"157f9c13275738b6b39b8d7a874f5f0aee47cb18","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/924aef7d9f3a21145492ea165c9268ab0030cbab","sha":"924aef7d9f3a21145492ea165c9268ab0030cbab"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/b12b6ffdfa6f1cca89459438eff6d3420ed199e9","sha":"b12b6ffdfa6f1cca89459438eff6d3420ed199e9"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:48:47-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/157f9c13275738b6b39b8d7a874f5f0aee47cb18","message":"Merge branch 'topic/AddHooksAndEvents' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:48:47-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/014f6c1b5278352ba1bc974914e3a76c17590479","sha":"014f6c1b5278352ba1bc974914e3a76c17590479"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/b12b6ffdfa6f1cca89459438eff6d3420ed199e9","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"b12b6ffdfa6f1cca89459438eff6d3420ed199e9","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/236fcaead6addd284722e4b5fde2e24f6f4ae63b","sha":"236fcaead6addd284722e4b5fde2e24f6f4ae63b"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:48:27-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/b12b6ffdfa6f1cca89459438eff6d3420ed199e9","message":"AuthenticatedUser.get_organization_events","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:48:27-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/014f6c1b5278352ba1bc974914e3a76c17590479","sha":"014f6c1b5278352ba1bc974914e3a76c17590479"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/236fcaead6addd284722e4b5fde2e24f6f4ae63b","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"236fcaead6addd284722e4b5fde2e24f6f4ae63b","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/43369be99710f4386d31daa87db9b5cc48f0544d","sha":"43369be99710f4386d31daa87db9b5cc48f0544d"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:28:26-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/236fcaead6addd284722e4b5fde2e24f6f4ae63b","message":"Restore test coverage","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:28:26-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/484f40761d22be9a4a815e010c52e43c12e49f02","sha":"484f40761d22be9a4a815e010c52e43c12e49f02"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/43369be99710f4386d31daa87db9b5cc48f0544d","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"43369be99710f4386d31daa87db9b5cc48f0544d","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/07b6b437d741df9c94cf34e36045fc78868b63ba","sha":"07b6b437d741df9c94cf34e36045fc78868b63ba"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:22:10-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/43369be99710f4386d31daa87db9b5cc48f0544d","message":"Repository.get_issues_event + coverage","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T13:22:10-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/656b268fdf8d0ce1e48037f8a546eecdf0dc5ef9","sha":"656b268fdf8d0ce1e48037f8a546eecdf0dc5ef9"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/07b6b437d741df9c94cf34e36045fc78868b63ba","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"07b6b437d741df9c94cf34e36045fc78868b63ba","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6d51a955d922e92dacf37106a3c52d185fb18423","sha":"6d51a955d922e92dacf37106a3c52d185fb18423"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T12:43:20-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/07b6b437d741df9c94cf34e36045fc78868b63ba","message":"Remove two 'MethodFromCallable'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T12:43:20-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/fb26540cb902379e02897890f8e79df032fa4657","sha":"fb26540cb902379e02897890f8e79df032fa4657"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6d51a955d922e92dacf37106a3c52d185fb18423","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"6d51a955d922e92dacf37106a3c52d185fb18423","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/44911bf0906912d468cb88001907955ee318fdf7","sha":"44911bf0906912d468cb88001907955ee318fdf7"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T11:59:56-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/6d51a955d922e92dacf37106a3c52d185fb18423","message":"Fix and add integration tests about events","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T11:59:56-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/c1619a5fa4c612b9d7455bbd4111e074c1110967","sha":"c1619a5fa4c612b9d7455bbd4111e074c1110967"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/44911bf0906912d468cb88001907955ee318fdf7","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"44911bf0906912d468cb88001907955ee318fdf7","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/01fa4d803b4a541759ba906d194f1fa9bc29faa9","sha":"01fa4d803b4a541759ba906d194f1fa9bc29faa9"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T12:54:56-08:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/44911bf0906912d468cb88001907955ee318fdf7","message":"Events: step 1","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T12:54:56-08:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/8e82325aa70d2d0c5dd15c138d44c729a097d7df","sha":"8e82325aa70d2d0c5dd15c138d44c729a097d7df"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/01fa4d803b4a541759ba906d194f1fa9bc29faa9","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"01fa4d803b4a541759ba906d194f1fa9bc29faa9","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/25c76b4b759173fa42cdf3ebd0214a5ce958b2e4","sha":"25c76b4b759173fa42cdf3ebd0214a5ce958b2e4"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T02:12:15-08:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/01fa4d803b4a541759ba906d194f1fa9bc29faa9","message":"Regenerate reference of classes","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T02:12:15-08:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/deae54c27d31b4d5f21daeb48451cdbed301d386","sha":"deae54c27d31b4d5f21daeb48451cdbed301d386"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/25c76b4b759173fa42cdf3ebd0214a5ce958b2e4","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"25c76b4b759173fa42cdf3ebd0214a5ce958b2e4","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/00a832e6d519dac96142f650d6363f24459f9145","sha":"00a832e6d519dac96142f650d6363f24459f9145"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-03T23:56:48-08:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/25c76b4b759173fa42cdf3ebd0214a5ce958b2e4","message":"Restore test coverage","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:46:20-08:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/9ad7d85371d98b8cc50686cc0591e98935d7917d","sha":"9ad7d85371d98b8cc50686cc0591e98935d7917d"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/00a832e6d519dac96142f650d6363f24459f9145","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"00a832e6d519dac96142f650d6363f24459f9145","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f03d86c46e4d5b337514277620dc9adbdc68dba2","sha":"f03d86c46e4d5b337514277620dc9adbdc68dba2"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-03T04:44:54-08:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/00a832e6d519dac96142f650d6363f24459f9145","message":"Hook testing","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:46:19-08:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/88beba1a00e40bea9da1c02b613e3859df4105de","sha":"88beba1a00e40bea9da1c02b613e3859df4105de"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f03d86c46e4d5b337514277620dc9adbdc68dba2","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"f03d86c46e4d5b337514277620dc9adbdc68dba2","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0b8ffcc14c6200dda4f9b11c47d6949b5cd3240b","sha":"0b8ffcc14c6200dda4f9b11c47d6949b5cd3240b"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-03T04:36:01-08:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/f03d86c46e4d5b337514277620dc9adbdc68dba2","message":"Hooks: step 2","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:46:18-08:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/a2d2473d5b9f12020bcba798849206c4636fec2f","sha":"a2d2473d5b9f12020bcba798849206c4636fec2f"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0b8ffcc14c6200dda4f9b11c47d6949b5cd3240b","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"0b8ffcc14c6200dda4f9b11c47d6949b5cd3240b","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f2d89a565f5eb19af605d78762169daec9a701e0","sha":"f2d89a565f5eb19af605d78762169daec9a701e0"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-01T08:35:13-08:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0b8ffcc14c6200dda4f9b11c47d6949b5cd3240b","message":"Hooks: step 1","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:46:17-08:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/122bf2a07918c500e15ae7b9a5ae6eba4c4abf34","sha":"122bf2a07918c500e15ae7b9a5ae6eba4c4abf34"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f2d89a565f5eb19af605d78762169daec9a701e0","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"f2d89a565f5eb19af605d78762169daec9a701e0","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/924aef7d9f3a21145492ea165c9268ab0030cbab","sha":"924aef7d9f3a21145492ea165c9268ab0030cbab"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-02-23T13:32:44-08:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/f2d89a565f5eb19af605d78762169daec9a701e0","message":"Totos for hooks and events","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:46:16-08:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/6c010d7ccbfbb6a0f44c829c08753dc19b71c29e","sha":"6c010d7ccbfbb6a0f44c829c08753dc19b71c29e"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/924aef7d9f3a21145492ea165c9268ab0030cbab","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"924aef7d9f3a21145492ea165c9268ab0030cbab","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cf3f792b16d2e9e56ba6562e9db55663d4443d87","sha":"cf3f792b16d2e9e56ba6562e9db55663d4443d87"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:45:59-08:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/924aef7d9f3a21145492ea165c9268ab0030cbab","message":"Typo...","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:45:59-08:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/c2d94eeeeb8eab5793762db56b9d6bdf3070c639","sha":"c2d94eeeeb8eab5793762db56b9d6bdf3070c639"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cf3f792b16d2e9e56ba6562e9db55663d4443d87","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"cf3f792b16d2e9e56ba6562e9db55663d4443d87","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5c17275366efd3bc9414958d661d9a017022be6b","sha":"5c17275366efd3bc9414958d661d9a017022be6b"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/3a83cc0b1e40788483398eb89e3671b91d648251","sha":"3a83cc0b1e40788483398eb89e3671b91d648251"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:39:25-08:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/cf3f792b16d2e9e56ba6562e9db55663d4443d87","message":"Merge branch 'topic/Coverage' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:39:25-08:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/ff1c6594a40331fca68b664d400269b343360fdd","sha":"ff1c6594a40331fca68b664d400269b343360fdd"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/3a83cc0b1e40788483398eb89e3671b91d648251","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"3a83cc0b1e40788483398eb89e3671b91d648251","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e0c04877a9a00766d099251512a8bb512a1d37c2","sha":"e0c04877a9a00766d099251512a8bb512a1d37c2"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:38:09-08:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/3a83cc0b1e40788483398eb89e3671b91d648251","message":"RepositoryDetails","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:38:09-08:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/ff1c6594a40331fca68b664d400269b343360fdd","sha":"ff1c6594a40331fca68b664d400269b343360fdd"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e0c04877a9a00766d099251512a8bb512a1d37c2","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"e0c04877a9a00766d099251512a8bb512a1d37c2","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6b89c02872cbcb179d79cb4ceb2436fee02425d0","sha":"6b89c02872cbcb179d79cb4ceb2436fee02425d0"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:34:02-08:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/e0c04877a9a00766d099251512a8bb512a1d37c2","message":"AuthenticatedUserDetails","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:34:02-08:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/5f178bdb7fdd0f30d84b33e99e41b16a32fa0d9b","sha":"5f178bdb7fdd0f30d84b33e99e41b16a32fa0d9b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6b89c02872cbcb179d79cb4ceb2436fee02425d0","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"6b89c02872cbcb179d79cb4ceb2436fee02425d0","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/231ae0778e0bebaac3dc87fa8f602c1560b8164f","sha":"231ae0778e0bebaac3dc87fa8f602c1560b8164f"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:21:59-08:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/6b89c02872cbcb179d79cb4ceb2436fee02425d0","message":"Downloads","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-04T01:21:59-08:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/047599e78ad35674ee8b0ac51d232b2c71b40a6f","sha":"047599e78ad35674ee8b0ac51d232b2c71b40a6f"}}}] diff --git a/tests/ReplayData/Repository.testGetCommitsWithArguments.txt b/tests/ReplayData/Repository.testGetCommitsWithArguments.txt index a758a7c843..0116aeb64d 100644 --- a/tests/ReplayData/Repository.testGetCommitsWithArguments.txt +++ b/tests/ReplayData/Repository.testGetCommitsWithArguments.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/commits?sha=topic%2FRewriteWithGeneratedCode&path=codegen%2FGenerateCode.py +/repos/PyGithub/PyGithub/commits?sha=topic%2FRewriteWithGeneratedCode&path=codegen%2FGenerateCode.py {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4940'), ('content-length', '10375'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"230272c14df3176a86fe041ec1370c1d"'), ('date', 'Tue, 29 May 2012 18:24:41 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/de386d5dc9cf103c90c4128eeca0e6abdd382065","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"de386d5dc9cf103c90c4128eeca0e6abdd382065","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5b44982f6111bff2454243869df2e1c3086ccbba","sha":"5b44982f6111bff2454243869df2e1c3086ccbba"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-28T10:21:42-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/de386d5dc9cf103c90c4128eeca0e6abdd382065","message":"Rename","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-28T10:21:42-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/1aff37f9b6c7c67f5984c4cf4bff68374a2c6943","sha":"1aff37f9b6c7c67f5984c4cf4bff68374a2c6943"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5b44982f6111bff2454243869df2e1c3086ccbba","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"5b44982f6111bff2454243869df2e1c3086ccbba","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d6835ff949141957a733c8ddfa147026515ae493","sha":"d6835ff949141957a733c8ddfa147026515ae493"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-28T10:18:34-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/5b44982f6111bff2454243869df2e1c3086ccbba","message":"Generate code with Unix line endings even on Windows","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-28T10:18:34-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b62a41a33cf46d342f92783df84d91bab0ff05ea","sha":"b62a41a33cf46d342f92783df84d91bab0ff05ea"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d6835ff949141957a733c8ddfa147026515ae493","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"d6835ff949141957a733c8ddfa147026515ae493","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/821ac669f212b1e8868567517f8b85f8a7eb04cf","sha":"821ac669f212b1e8868567517f8b85f8a7eb04cf"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-28T09:29:08-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/d6835ff949141957a733c8ddfa147026515ae493","message":"dos2unix","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-28T09:29:08-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/2017a36dd1340a30b24ffcf402fe4dfee28470ef","sha":"2017a36dd1340a30b24ffcf402fe4dfee28470ef"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/075d3d961d4614a2a0835d5583248adfc0687a7d","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"075d3d961d4614a2a0835d5583248adfc0687a7d","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4bf2e31da745b4857ef7779b8af7de04aca713c2","sha":"4bf2e31da745b4857ef7779b8af7de04aca713c2"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T05:30:38-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/075d3d961d4614a2a0835d5583248adfc0687a7d","message":"Generate code for url quoting","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T05:30:38-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fdc159d42b4ef9b3480bef5634a4fc78d81265ea","sha":"fdc159d42b4ef9b3480bef5634a4fc78d81265ea"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8956796e7f462a49f499eac52fab901cdb59abdb","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"8956796e7f462a49f499eac52fab901cdb59abdb","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f23ed6341da0fcf7a416d04ad0ab252ed55308a5","sha":"f23ed6341da0fcf7a416d04ad0ab252ed55308a5"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-12T05:12:03-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8956796e7f462a49f499eac52fab901cdb59abdb","message":"Be explicit about complete-ability","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-12T05:12:03-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f6c8da120b78da3617c89d530322676ba159d40b","sha":"f6c8da120b78da3617c89d530322676ba159d40b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/283da5e7de6a4a3b6aaae7045909d70b643ad380","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"283da5e7de6a4a3b6aaae7045909d70b643ad380","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/595e88cd5537208958f90d6727965cc7918f09a7","sha":"595e88cd5537208958f90d6727965cc7918f09a7"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-10T09:26:18-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/283da5e7de6a4a3b6aaae7045909d70b643ad380","message":"Fix code generation and tests after reorganization","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-10T09:26:18-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/7cafc3a4c77289c53776e9be84a5857dbeb19eeb","sha":"7cafc3a4c77289c53776e9be84a5857dbeb19eeb"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d631e83b7901b0a0b6061b361130700a79505319","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"d631e83b7901b0a0b6061b361130700a79505319","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cd68559b0861ad2be12be29b9d4b7ec66e885191","sha":"cd68559b0861ad2be12be29b9d4b7ec66e885191"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-10T09:10:17-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/d631e83b7901b0a0b6061b361130700a79505319","message":"Move files around","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-10T09:10:17-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/586a9fdba155fcae6959133845e702373d4b42ed","sha":"586a9fdba155fcae6959133845e702373d4b42ed"}}}] +[{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/de386d5dc9cf103c90c4128eeca0e6abdd382065","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"de386d5dc9cf103c90c4128eeca0e6abdd382065","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5b44982f6111bff2454243869df2e1c3086ccbba","sha":"5b44982f6111bff2454243869df2e1c3086ccbba"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-28T10:21:42-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/de386d5dc9cf103c90c4128eeca0e6abdd382065","message":"Rename","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-28T10:21:42-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/1aff37f9b6c7c67f5984c4cf4bff68374a2c6943","sha":"1aff37f9b6c7c67f5984c4cf4bff68374a2c6943"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5b44982f6111bff2454243869df2e1c3086ccbba","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"5b44982f6111bff2454243869df2e1c3086ccbba","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d6835ff949141957a733c8ddfa147026515ae493","sha":"d6835ff949141957a733c8ddfa147026515ae493"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-28T10:18:34-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/5b44982f6111bff2454243869df2e1c3086ccbba","message":"Generate code with Unix line endings even on Windows","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-28T10:18:34-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b62a41a33cf46d342f92783df84d91bab0ff05ea","sha":"b62a41a33cf46d342f92783df84d91bab0ff05ea"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d6835ff949141957a733c8ddfa147026515ae493","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"d6835ff949141957a733c8ddfa147026515ae493","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/821ac669f212b1e8868567517f8b85f8a7eb04cf","sha":"821ac669f212b1e8868567517f8b85f8a7eb04cf"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-28T09:29:08-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/d6835ff949141957a733c8ddfa147026515ae493","message":"dos2unix","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-28T09:29:08-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/2017a36dd1340a30b24ffcf402fe4dfee28470ef","sha":"2017a36dd1340a30b24ffcf402fe4dfee28470ef"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/075d3d961d4614a2a0835d5583248adfc0687a7d","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"075d3d961d4614a2a0835d5583248adfc0687a7d","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4bf2e31da745b4857ef7779b8af7de04aca713c2","sha":"4bf2e31da745b4857ef7779b8af7de04aca713c2"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T05:30:38-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/075d3d961d4614a2a0835d5583248adfc0687a7d","message":"Generate code for url quoting","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T05:30:38-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/fdc159d42b4ef9b3480bef5634a4fc78d81265ea","sha":"fdc159d42b4ef9b3480bef5634a4fc78d81265ea"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8956796e7f462a49f499eac52fab901cdb59abdb","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"8956796e7f462a49f499eac52fab901cdb59abdb","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f23ed6341da0fcf7a416d04ad0ab252ed55308a5","sha":"f23ed6341da0fcf7a416d04ad0ab252ed55308a5"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-12T05:12:03-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/8956796e7f462a49f499eac52fab901cdb59abdb","message":"Be explicit about complete-ability","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-12T05:12:03-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/f6c8da120b78da3617c89d530322676ba159d40b","sha":"f6c8da120b78da3617c89d530322676ba159d40b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/283da5e7de6a4a3b6aaae7045909d70b643ad380","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"283da5e7de6a4a3b6aaae7045909d70b643ad380","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/595e88cd5537208958f90d6727965cc7918f09a7","sha":"595e88cd5537208958f90d6727965cc7918f09a7"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-10T09:26:18-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/283da5e7de6a4a3b6aaae7045909d70b643ad380","message":"Fix code generation and tests after reorganization","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-10T09:26:18-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/7cafc3a4c77289c53776e9be84a5857dbeb19eeb","sha":"7cafc3a4c77289c53776e9be84a5857dbeb19eeb"}}},{"author":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d631e83b7901b0a0b6061b361130700a79505319","committer":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"sha":"d631e83b7901b0a0b6061b361130700a79505319","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cd68559b0861ad2be12be29b9d4b7ec66e885191","sha":"cd68559b0861ad2be12be29b9d4b7ec66e885191"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-10T09:10:17-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/d631e83b7901b0a0b6061b361130700a79505319","message":"Move files around","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-10T09:10:17-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/586a9fdba155fcae6959133845e702373d4b42ed","sha":"586a9fdba155fcae6959133845e702373d4b42ed"}}}] diff --git a/tests/ReplayData/Repository.testGetCommitsWithAuthor.txt b/tests/ReplayData/Repository.testGetCommitsWithAuthor.txt index 419e443e9c..a19e27778f 100644 --- a/tests/ReplayData/Repository.testGetCommitsWithAuthor.txt +++ b/tests/ReplayData/Repository.testGetCommitsWithAuthor.txt @@ -13,31 +13,31 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/commits?per_page=5&author=jacquev6 +/repos/PyGithub/PyGithub/commits?per_page=5&author=jacquev6 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4948'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '4C79374B:68E1:40629A3:52802977'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '16274'), ('server', 'GitHub.com'), ('last-modified', 'Mon, 21 Oct 2013 03:45:43 GMT'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"e33a86ac77b0de1ff6664d425434cb37"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 11 Nov 2013 00:48:55 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1384130958')] -[{"sha":"54f718a15770579a37ffbe7ae94ad30003407786","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T03:45:43Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T03:45:43Z"},"message":"Twitt about releases","tree":{"sha":"cbdb0e431b2d3645618a9fc1604eeb7a0b4fc037","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/cbdb0e431b2d3645618a9fc1604eeb7a0b4fc037"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/54f718a15770579a37ffbe7ae94ad30003407786","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/54f718a15770579a37ffbe7ae94ad30003407786","html_url":"https://github.com/jacquev6/PyGithub/commit/54f718a15770579a37ffbe7ae94ad30003407786","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/54f718a15770579a37ffbe7ae94ad30003407786/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"8cb3f372837e2648f17e3f085d2821114b507383","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8cb3f372837e2648f17e3f085d2821114b507383","html_url":"https://github.com/jacquev6/PyGithub/commit/8cb3f372837e2648f17e3f085d2821114b507383"}]},{"sha":"8cb3f372837e2648f17e3f085d2821114b507383","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:48:01Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:48:01Z"},"message":"Publish version 1.20.0","tree":{"sha":"db657a4a57f788fba69640e4f49e77ef68bfd13d","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/db657a4a57f788fba69640e4f49e77ef68bfd13d"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8cb3f372837e2648f17e3f085d2821114b507383","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8cb3f372837e2648f17e3f085d2821114b507383","html_url":"https://github.com/jacquev6/PyGithub/commit/8cb3f372837e2648f17e3f085d2821114b507383","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8cb3f372837e2648f17e3f085d2821114b507383/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"73c16e54604f3ebb25557049f1e55f30b567d1ab","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/73c16e54604f3ebb25557049f1e55f30b567d1ab","html_url":"https://github.com/jacquev6/PyGithub/commit/73c16e54604f3ebb25557049f1e55f30b567d1ab"}]},{"sha":"73c16e54604f3ebb25557049f1e55f30b567d1ab","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:23:38Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:23:38Z"},"message":"Merge branch 'develop'","tree":{"sha":"ff1686e186cbcf8a35605a1795b885483918314c","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/ff1686e186cbcf8a35605a1795b885483918314c"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/73c16e54604f3ebb25557049f1e55f30b567d1ab","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/73c16e54604f3ebb25557049f1e55f30b567d1ab","html_url":"https://github.com/jacquev6/PyGithub/commit/73c16e54604f3ebb25557049f1e55f30b567d1ab","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/73c16e54604f3ebb25557049f1e55f30b567d1ab/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"9f9be931fb3821256d8bb685577b5167652763d5","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/9f9be931fb3821256d8bb685577b5167652763d5","html_url":"https://github.com/jacquev6/PyGithub/commit/9f9be931fb3821256d8bb685577b5167652763d5"},{"sha":"51fa637514e436eda989c376ff708b9553fff3c6","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/51fa637514e436eda989c376ff708b9553fff3c6","html_url":"https://github.com/jacquev6/PyGithub/commit/51fa637514e436eda989c376ff708b9553fff3c6"}]},{"sha":"51fa637514e436eda989c376ff708b9553fff3c6","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:17:38Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:17:38Z"},"message":"Remove tests for deleted methods!","tree":{"sha":"ff1686e186cbcf8a35605a1795b885483918314c","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/ff1686e186cbcf8a35605a1795b885483918314c"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/51fa637514e436eda989c376ff708b9553fff3c6","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/51fa637514e436eda989c376ff708b9553fff3c6","html_url":"https://github.com/jacquev6/PyGithub/commit/51fa637514e436eda989c376ff708b9553fff3c6","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/51fa637514e436eda989c376ff708b9553fff3c6/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"748793b7ac34dcf4b70f8b4494f9fe71c4609a07","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/748793b7ac34dcf4b70f8b4494f9fe71c4609a07","html_url":"https://github.com/jacquev6/PyGithub/commit/748793b7ac34dcf4b70f8b4494f9fe71c4609a07"}]},{"sha":"748793b7ac34dcf4b70f8b4494f9fe71c4609a07","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:14:35Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:14:35Z"},"message":"Add a link to DevAssistant (#197)","tree":{"sha":"b3198ecd46d01f2c44bec043adb65a68b10057a3","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b3198ecd46d01f2c44bec043adb65a68b10057a3"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/748793b7ac34dcf4b70f8b4494f9fe71c4609a07","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/748793b7ac34dcf4b70f8b4494f9fe71c4609a07","html_url":"https://github.com/jacquev6/PyGithub/commit/748793b7ac34dcf4b70f8b4494f9fe71c4609a07","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/748793b7ac34dcf4b70f8b4494f9fe71c4609a07/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"23e2828b5fd56c4860312773e7d568c8e9d232ca","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/23e2828b5fd56c4860312773e7d568c8e9d232ca","html_url":"https://github.com/jacquev6/PyGithub/commit/23e2828b5fd56c4860312773e7d568c8e9d232ca"}]}] +[{"sha":"54f718a15770579a37ffbe7ae94ad30003407786","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T03:45:43Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T03:45:43Z"},"message":"Twitt about releases","tree":{"sha":"cbdb0e431b2d3645618a9fc1604eeb7a0b4fc037","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/cbdb0e431b2d3645618a9fc1604eeb7a0b4fc037"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/54f718a15770579a37ffbe7ae94ad30003407786","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/54f718a15770579a37ffbe7ae94ad30003407786","html_url":"https://github.com/PyGithub/PyGithub/commit/54f718a15770579a37ffbe7ae94ad30003407786","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/54f718a15770579a37ffbe7ae94ad30003407786/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"8cb3f372837e2648f17e3f085d2821114b507383","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8cb3f372837e2648f17e3f085d2821114b507383","html_url":"https://github.com/PyGithub/PyGithub/commit/8cb3f372837e2648f17e3f085d2821114b507383"}]},{"sha":"8cb3f372837e2648f17e3f085d2821114b507383","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:48:01Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:48:01Z"},"message":"Publish version 1.20.0","tree":{"sha":"db657a4a57f788fba69640e4f49e77ef68bfd13d","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/db657a4a57f788fba69640e4f49e77ef68bfd13d"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/8cb3f372837e2648f17e3f085d2821114b507383","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8cb3f372837e2648f17e3f085d2821114b507383","html_url":"https://github.com/PyGithub/PyGithub/commit/8cb3f372837e2648f17e3f085d2821114b507383","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8cb3f372837e2648f17e3f085d2821114b507383/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"73c16e54604f3ebb25557049f1e55f30b567d1ab","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/73c16e54604f3ebb25557049f1e55f30b567d1ab","html_url":"https://github.com/PyGithub/PyGithub/commit/73c16e54604f3ebb25557049f1e55f30b567d1ab"}]},{"sha":"73c16e54604f3ebb25557049f1e55f30b567d1ab","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:23:38Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:23:38Z"},"message":"Merge branch 'develop'","tree":{"sha":"ff1686e186cbcf8a35605a1795b885483918314c","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/ff1686e186cbcf8a35605a1795b885483918314c"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/73c16e54604f3ebb25557049f1e55f30b567d1ab","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/73c16e54604f3ebb25557049f1e55f30b567d1ab","html_url":"https://github.com/PyGithub/PyGithub/commit/73c16e54604f3ebb25557049f1e55f30b567d1ab","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/73c16e54604f3ebb25557049f1e55f30b567d1ab/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"9f9be931fb3821256d8bb685577b5167652763d5","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/9f9be931fb3821256d8bb685577b5167652763d5","html_url":"https://github.com/PyGithub/PyGithub/commit/9f9be931fb3821256d8bb685577b5167652763d5"},{"sha":"51fa637514e436eda989c376ff708b9553fff3c6","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/51fa637514e436eda989c376ff708b9553fff3c6","html_url":"https://github.com/PyGithub/PyGithub/commit/51fa637514e436eda989c376ff708b9553fff3c6"}]},{"sha":"51fa637514e436eda989c376ff708b9553fff3c6","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:17:38Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:17:38Z"},"message":"Remove tests for deleted methods!","tree":{"sha":"ff1686e186cbcf8a35605a1795b885483918314c","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/ff1686e186cbcf8a35605a1795b885483918314c"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/51fa637514e436eda989c376ff708b9553fff3c6","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/51fa637514e436eda989c376ff708b9553fff3c6","html_url":"https://github.com/PyGithub/PyGithub/commit/51fa637514e436eda989c376ff708b9553fff3c6","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/51fa637514e436eda989c376ff708b9553fff3c6/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"748793b7ac34dcf4b70f8b4494f9fe71c4609a07","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/748793b7ac34dcf4b70f8b4494f9fe71c4609a07","html_url":"https://github.com/PyGithub/PyGithub/commit/748793b7ac34dcf4b70f8b4494f9fe71c4609a07"}]},{"sha":"748793b7ac34dcf4b70f8b4494f9fe71c4609a07","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:14:35Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-10-21T02:14:35Z"},"message":"Add a link to DevAssistant (#197)","tree":{"sha":"b3198ecd46d01f2c44bec043adb65a68b10057a3","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b3198ecd46d01f2c44bec043adb65a68b10057a3"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/748793b7ac34dcf4b70f8b4494f9fe71c4609a07","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/748793b7ac34dcf4b70f8b4494f9fe71c4609a07","html_url":"https://github.com/PyGithub/PyGithub/commit/748793b7ac34dcf4b70f8b4494f9fe71c4609a07","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/748793b7ac34dcf4b70f8b4494f9fe71c4609a07/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png&r=x","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"23e2828b5fd56c4860312773e7d568c8e9d232ca","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/23e2828b5fd56c4860312773e7d568c8e9d232ca","html_url":"https://github.com/PyGithub/PyGithub/commit/23e2828b5fd56c4860312773e7d568c8e9d232ca"}]}] https GET api.github.com None -/repos/jacquev6/PyGithub/commits?per_page=5&author=akfish +/repos/PyGithub/PyGithub/commits?per_page=5&author=akfish {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4947'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '4C79374B:68E1:4062C37:52802978'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '15564'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 23 Aug 2013 23:21:41 GMT'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"70e018e18acd7212d83ab7f79a00c0c1"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 11 Nov 2013 00:48:57 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1384130958')] -[{"sha":"38b137fb37c0fdc74f8802a4184518e105db9121","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-23T23:21:41Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-23T23:21:41Z"},"message":"Fix line ending","tree":{"sha":"a4260390d7e3d478aed05009657f4632d25dad84","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/a4260390d7e3d478aed05009657f4632d25dad84"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/38b137fb37c0fdc74f8802a4184518e105db9121","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/38b137fb37c0fdc74f8802a4184518e105db9121","html_url":"https://github.com/jacquev6/PyGithub/commit/38b137fb37c0fdc74f8802a4184518e105db9121","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/38b137fb37c0fdc74f8802a4184518e105db9121/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"committer":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"parents":[{"sha":"fb6980ce36766e4dd1ab03b48ac4b5adf876dc84","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fb6980ce36766e4dd1ab03b48ac4b5adf876dc84","html_url":"https://github.com/jacquev6/PyGithub/commit/fb6980ce36766e4dd1ab03b48ac4b5adf876dc84"}]},{"sha":"c7593e84c4a92a044b717b7311c2b6ad8d9a5917","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-22T02:20:10Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-22T02:20:10Z"},"message":"Add test case for conditional request","tree":{"sha":"bbf62558b39720fc7acab1c6b26e4b9260cdc897","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/bbf62558b39720fc7acab1c6b26e4b9260cdc897"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/c7593e84c4a92a044b717b7311c2b6ad8d9a5917","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c7593e84c4a92a044b717b7311c2b6ad8d9a5917","html_url":"https://github.com/jacquev6/PyGithub/commit/c7593e84c4a92a044b717b7311c2b6ad8d9a5917","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c7593e84c4a92a044b717b7311c2b6ad8d9a5917/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"committer":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"parents":[{"sha":"d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","html_url":"https://github.com/jacquev6/PyGithub/commit/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7"}]},{"sha":"d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-22T00:45:10Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-22T00:45:10Z"},"message":"Add test record helper","tree":{"sha":"e6e15fccb5b256bba3db1d4fc89088b733de227b","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e6e15fccb5b256bba3db1d4fc89088b733de227b"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","html_url":"https://github.com/jacquev6/PyGithub/commit/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"committer":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"parents":[{"sha":"70a7e9c83dec2bf6b549dc5c77d30b53afb32457","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/70a7e9c83dec2bf6b549dc5c77d30b53afb32457","html_url":"https://github.com/jacquev6/PyGithub/commit/70a7e9c83dec2bf6b549dc5c77d30b53afb32457"}]},{"sha":"70a7e9c83dec2bf6b549dc5c77d30b53afb32457","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T23:45:27Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T23:45:27Z"},"message":"Fix update","tree":{"sha":"f99d30ab74ea95fedefb33a8b1b2c77903fbd698","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f99d30ab74ea95fedefb33a8b1b2c77903fbd698"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/70a7e9c83dec2bf6b549dc5c77d30b53afb32457","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/70a7e9c83dec2bf6b549dc5c77d30b53afb32457","html_url":"https://github.com/jacquev6/PyGithub/commit/70a7e9c83dec2bf6b549dc5c77d30b53afb32457","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/70a7e9c83dec2bf6b549dc5c77d30b53afb32457/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"committer":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"parents":[{"sha":"5b09f6c82191601cad92076ad4761fe927c511ed","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5b09f6c82191601cad92076ad4761fe927c511ed","html_url":"https://github.com/jacquev6/PyGithub/commit/5b09f6c82191601cad92076ad4761fe927c511ed"}]},{"sha":"5b09f6c82191601cad92076ad4761fe927c511ed","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T15:17:59Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T15:17:59Z"},"message":"Implement conditional request","tree":{"sha":"d6c3d2b807635ecd9a9129b1a99d0e2f6758d440","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/d6c3d2b807635ecd9a9129b1a99d0e2f6758d440"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/5b09f6c82191601cad92076ad4761fe927c511ed","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5b09f6c82191601cad92076ad4761fe927c511ed","html_url":"https://github.com/jacquev6/PyGithub/commit/5b09f6c82191601cad92076ad4761fe927c511ed","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5b09f6c82191601cad92076ad4761fe927c511ed/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"committer":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"parents":[{"sha":"6fd05baf6bea732dd846e08c40891c28060e7c64","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6fd05baf6bea732dd846e08c40891c28060e7c64","html_url":"https://github.com/jacquev6/PyGithub/commit/6fd05baf6bea732dd846e08c40891c28060e7c64"}]}] +[{"sha":"38b137fb37c0fdc74f8802a4184518e105db9121","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-23T23:21:41Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-23T23:21:41Z"},"message":"Fix line ending","tree":{"sha":"a4260390d7e3d478aed05009657f4632d25dad84","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/a4260390d7e3d478aed05009657f4632d25dad84"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/38b137fb37c0fdc74f8802a4184518e105db9121","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/38b137fb37c0fdc74f8802a4184518e105db9121","html_url":"https://github.com/PyGithub/PyGithub/commit/38b137fb37c0fdc74f8802a4184518e105db9121","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/38b137fb37c0fdc74f8802a4184518e105db9121/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"committer":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"parents":[{"sha":"fb6980ce36766e4dd1ab03b48ac4b5adf876dc84","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/fb6980ce36766e4dd1ab03b48ac4b5adf876dc84","html_url":"https://github.com/PyGithub/PyGithub/commit/fb6980ce36766e4dd1ab03b48ac4b5adf876dc84"}]},{"sha":"c7593e84c4a92a044b717b7311c2b6ad8d9a5917","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-22T02:20:10Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-22T02:20:10Z"},"message":"Add test case for conditional request","tree":{"sha":"bbf62558b39720fc7acab1c6b26e4b9260cdc897","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/bbf62558b39720fc7acab1c6b26e4b9260cdc897"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/c7593e84c4a92a044b717b7311c2b6ad8d9a5917","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c7593e84c4a92a044b717b7311c2b6ad8d9a5917","html_url":"https://github.com/PyGithub/PyGithub/commit/c7593e84c4a92a044b717b7311c2b6ad8d9a5917","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c7593e84c4a92a044b717b7311c2b6ad8d9a5917/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"committer":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"parents":[{"sha":"d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","html_url":"https://github.com/PyGithub/PyGithub/commit/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7"}]},{"sha":"d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-22T00:45:10Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-22T00:45:10Z"},"message":"Add test record helper","tree":{"sha":"e6e15fccb5b256bba3db1d4fc89088b733de227b","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/e6e15fccb5b256bba3db1d4fc89088b733de227b"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","html_url":"https://github.com/PyGithub/PyGithub/commit/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"committer":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"parents":[{"sha":"70a7e9c83dec2bf6b549dc5c77d30b53afb32457","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/70a7e9c83dec2bf6b549dc5c77d30b53afb32457","html_url":"https://github.com/PyGithub/PyGithub/commit/70a7e9c83dec2bf6b549dc5c77d30b53afb32457"}]},{"sha":"70a7e9c83dec2bf6b549dc5c77d30b53afb32457","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T23:45:27Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T23:45:27Z"},"message":"Fix update","tree":{"sha":"f99d30ab74ea95fedefb33a8b1b2c77903fbd698","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/f99d30ab74ea95fedefb33a8b1b2c77903fbd698"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/70a7e9c83dec2bf6b549dc5c77d30b53afb32457","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/70a7e9c83dec2bf6b549dc5c77d30b53afb32457","html_url":"https://github.com/PyGithub/PyGithub/commit/70a7e9c83dec2bf6b549dc5c77d30b53afb32457","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/70a7e9c83dec2bf6b549dc5c77d30b53afb32457/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"committer":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"parents":[{"sha":"5b09f6c82191601cad92076ad4761fe927c511ed","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5b09f6c82191601cad92076ad4761fe927c511ed","html_url":"https://github.com/PyGithub/PyGithub/commit/5b09f6c82191601cad92076ad4761fe927c511ed"}]},{"sha":"5b09f6c82191601cad92076ad4761fe927c511ed","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T15:17:59Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T15:17:59Z"},"message":"Implement conditional request","tree":{"sha":"d6c3d2b807635ecd9a9129b1a99d0e2f6758d440","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/d6c3d2b807635ecd9a9129b1a99d0e2f6758d440"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/5b09f6c82191601cad92076ad4761fe927c511ed","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5b09f6c82191601cad92076ad4761fe927c511ed","html_url":"https://github.com/PyGithub/PyGithub/commit/5b09f6c82191601cad92076ad4761fe927c511ed","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5b09f6c82191601cad92076ad4761fe927c511ed/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"committer":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png&r=x","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User","site_admin":false},"parents":[{"sha":"6fd05baf6bea732dd846e08c40891c28060e7c64","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6fd05baf6bea732dd846e08c40891c28060e7c64","html_url":"https://github.com/PyGithub/PyGithub/commit/6fd05baf6bea732dd846e08c40891c28060e7c64"}]}] https GET api.github.com None -/repos/jacquev6/PyGithub/commits?per_page=5&author=m.ki2%40laposte.net +/repos/PyGithub/PyGithub/commits?per_page=5&author=m.ki2%40laposte.net {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4946'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '4C79374B:68E1:4062E83:5280297A'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '15839'), ('server', 'GitHub.com'), ('last-modified', 'Tue, 04 Jun 2013 13:35:09 GMT'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"3ed1804969c8b056bbf4ac0098e42f18"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 11 Nov 2013 00:48:58 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1384130958')] -[{"sha":"ab674dfcbc86c70bc32d9ecbe171b48a5694c337","commit":{"author":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:35:09Z"},"committer":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:35:09Z"},"message":"PullRequestMergeStatus docstring","tree":{"sha":"fa1f214180296156c3b5b259f8bf503d485f3487","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fa1f214180296156c3b5b259f8bf503d485f3487"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ab674dfcbc86c70bc32d9ecbe171b48a5694c337","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ab674dfcbc86c70bc32d9ecbe171b48a5694c337","html_url":"https://github.com/jacquev6/PyGithub/commit/ab674dfcbc86c70bc32d9ecbe171b48a5694c337","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ab674dfcbc86c70bc32d9ecbe171b48a5694c337/comments","author":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"committer":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"parents":[{"sha":"dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84","html_url":"https://github.com/jacquev6/PyGithub/commit/dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84"}]},{"sha":"dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84","commit":{"author":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:33:13Z"},"committer":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:33:13Z"},"message":"Don't think this anchor is needed","tree":{"sha":"08d2bb94751507dfff536d692292680a10bd6062","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/08d2bb94751507dfff536d692292680a10bd6062"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84","html_url":"https://github.com/jacquev6/PyGithub/commit/dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84/comments","author":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"committer":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"parents":[{"sha":"a56b10579dcf47c5083b5338b743e827be67bb59","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a56b10579dcf47c5083b5338b743e827be67bb59","html_url":"https://github.com/jacquev6/PyGithub/commit/a56b10579dcf47c5083b5338b743e827be67bb59"}]},{"sha":"a56b10579dcf47c5083b5338b743e827be67bb59","commit":{"author":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:32:17Z"},"committer":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:32:17Z"},"message":"Fix Event url","tree":{"sha":"5e4c1acdc1aebc22acdc26af24256609d8e4cbd9","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/5e4c1acdc1aebc22acdc26af24256609d8e4cbd9"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a56b10579dcf47c5083b5338b743e827be67bb59","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a56b10579dcf47c5083b5338b743e827be67bb59","html_url":"https://github.com/jacquev6/PyGithub/commit/a56b10579dcf47c5083b5338b743e827be67bb59","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a56b10579dcf47c5083b5338b743e827be67bb59/comments","author":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"committer":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"parents":[{"sha":"8d236e91578eb4d1b967b419d0cf34573338a177","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8d236e91578eb4d1b967b419d0cf34573338a177","html_url":"https://github.com/jacquev6/PyGithub/commit/8d236e91578eb4d1b967b419d0cf34573338a177"}]},{"sha":"8d236e91578eb4d1b967b419d0cf34573338a177","commit":{"author":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:31:00Z"},"committer":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:31:00Z"},"message":"Event docstring","tree":{"sha":"34c2d6b2c2acc221f8248e62331612781d182639","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/34c2d6b2c2acc221f8248e62331612781d182639"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8d236e91578eb4d1b967b419d0cf34573338a177","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8d236e91578eb4d1b967b419d0cf34573338a177","html_url":"https://github.com/jacquev6/PyGithub/commit/8d236e91578eb4d1b967b419d0cf34573338a177","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8d236e91578eb4d1b967b419d0cf34573338a177/comments","author":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"committer":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"parents":[{"sha":"5ce5f5c68418bf45797f19cb0a50c03d429c90b5","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5ce5f5c68418bf45797f19cb0a50c03d429c90b5","html_url":"https://github.com/jacquev6/PyGithub/commit/5ce5f5c68418bf45797f19cb0a50c03d429c90b5"}]},{"sha":"5ce5f5c68418bf45797f19cb0a50c03d429c90b5","commit":{"author":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:29:35Z"},"committer":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:29:35Z"},"message":"Label docstring","tree":{"sha":"eee731e4946523d814f281722d789edba808e8ef","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/eee731e4946523d814f281722d789edba808e8ef"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/5ce5f5c68418bf45797f19cb0a50c03d429c90b5","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5ce5f5c68418bf45797f19cb0a50c03d429c90b5","html_url":"https://github.com/jacquev6/PyGithub/commit/5ce5f5c68418bf45797f19cb0a50c03d429c90b5","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5ce5f5c68418bf45797f19cb0a50c03d429c90b5/comments","author":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"committer":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"parents":[{"sha":"21cf9b15b57cb919f0ebb4fcd6117cea4b6f1163","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/21cf9b15b57cb919f0ebb4fcd6117cea4b6f1163","html_url":"https://github.com/jacquev6/PyGithub/commit/21cf9b15b57cb919f0ebb4fcd6117cea4b6f1163"}]}] +[{"sha":"ab674dfcbc86c70bc32d9ecbe171b48a5694c337","commit":{"author":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:35:09Z"},"committer":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:35:09Z"},"message":"PullRequestMergeStatus docstring","tree":{"sha":"fa1f214180296156c3b5b259f8bf503d485f3487","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/fa1f214180296156c3b5b259f8bf503d485f3487"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/ab674dfcbc86c70bc32d9ecbe171b48a5694c337","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ab674dfcbc86c70bc32d9ecbe171b48a5694c337","html_url":"https://github.com/PyGithub/PyGithub/commit/ab674dfcbc86c70bc32d9ecbe171b48a5694c337","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ab674dfcbc86c70bc32d9ecbe171b48a5694c337/comments","author":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"committer":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"parents":[{"sha":"dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84","html_url":"https://github.com/PyGithub/PyGithub/commit/dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84"}]},{"sha":"dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84","commit":{"author":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:33:13Z"},"committer":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:33:13Z"},"message":"Don't think this anchor is needed","tree":{"sha":"08d2bb94751507dfff536d692292680a10bd6062","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/08d2bb94751507dfff536d692292680a10bd6062"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84","html_url":"https://github.com/PyGithub/PyGithub/commit/dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dd13f2b4bcfb6a4b208b617b0b39b8ef00041d84/comments","author":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"committer":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"parents":[{"sha":"a56b10579dcf47c5083b5338b743e827be67bb59","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a56b10579dcf47c5083b5338b743e827be67bb59","html_url":"https://github.com/PyGithub/PyGithub/commit/a56b10579dcf47c5083b5338b743e827be67bb59"}]},{"sha":"a56b10579dcf47c5083b5338b743e827be67bb59","commit":{"author":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:32:17Z"},"committer":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:32:17Z"},"message":"Fix Event url","tree":{"sha":"5e4c1acdc1aebc22acdc26af24256609d8e4cbd9","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/5e4c1acdc1aebc22acdc26af24256609d8e4cbd9"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/a56b10579dcf47c5083b5338b743e827be67bb59","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a56b10579dcf47c5083b5338b743e827be67bb59","html_url":"https://github.com/PyGithub/PyGithub/commit/a56b10579dcf47c5083b5338b743e827be67bb59","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a56b10579dcf47c5083b5338b743e827be67bb59/comments","author":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"committer":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"parents":[{"sha":"8d236e91578eb4d1b967b419d0cf34573338a177","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8d236e91578eb4d1b967b419d0cf34573338a177","html_url":"https://github.com/PyGithub/PyGithub/commit/8d236e91578eb4d1b967b419d0cf34573338a177"}]},{"sha":"8d236e91578eb4d1b967b419d0cf34573338a177","commit":{"author":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:31:00Z"},"committer":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:31:00Z"},"message":"Event docstring","tree":{"sha":"34c2d6b2c2acc221f8248e62331612781d182639","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/34c2d6b2c2acc221f8248e62331612781d182639"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/8d236e91578eb4d1b967b419d0cf34573338a177","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8d236e91578eb4d1b967b419d0cf34573338a177","html_url":"https://github.com/PyGithub/PyGithub/commit/8d236e91578eb4d1b967b419d0cf34573338a177","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8d236e91578eb4d1b967b419d0cf34573338a177/comments","author":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"committer":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"parents":[{"sha":"5ce5f5c68418bf45797f19cb0a50c03d429c90b5","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5ce5f5c68418bf45797f19cb0a50c03d429c90b5","html_url":"https://github.com/PyGithub/PyGithub/commit/5ce5f5c68418bf45797f19cb0a50c03d429c90b5"}]},{"sha":"5ce5f5c68418bf45797f19cb0a50c03d429c90b5","commit":{"author":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:29:35Z"},"committer":{"name":"martinqt","email":"m.ki2@laposte.net","date":"2013-06-04T13:29:35Z"},"message":"Label docstring","tree":{"sha":"eee731e4946523d814f281722d789edba808e8ef","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/eee731e4946523d814f281722d789edba808e8ef"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/5ce5f5c68418bf45797f19cb0a50c03d429c90b5","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5ce5f5c68418bf45797f19cb0a50c03d429c90b5","html_url":"https://github.com/PyGithub/PyGithub/commit/5ce5f5c68418bf45797f19cb0a50c03d429c90b5","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5ce5f5c68418bf45797f19cb0a50c03d429c90b5/comments","author":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"committer":{"login":"martinqt","id":2557975,"avatar_url":"https://1.gravatar.com/avatar/182c0579e9458df4b939c1de0981e31c?d=https%3A%2F%2Fidenticons.github.com%2F24858b884a8b74bcce2b765a4f8e329e.png&r=x","gravatar_id":"182c0579e9458df4b939c1de0981e31c","url":"https://api.github.com/users/martinqt","html_url":"https://github.com/martinqt","followers_url":"https://api.github.com/users/martinqt/followers","following_url":"https://api.github.com/users/martinqt/following{/other_user}","gists_url":"https://api.github.com/users/martinqt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinqt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinqt/subscriptions","organizations_url":"https://api.github.com/users/martinqt/orgs","repos_url":"https://api.github.com/users/martinqt/repos","events_url":"https://api.github.com/users/martinqt/events{/privacy}","received_events_url":"https://api.github.com/users/martinqt/received_events","type":"User","site_admin":false},"parents":[{"sha":"21cf9b15b57cb919f0ebb4fcd6117cea4b6f1163","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/21cf9b15b57cb919f0ebb4fcd6117cea4b6f1163","html_url":"https://github.com/PyGithub/PyGithub/commit/21cf9b15b57cb919f0ebb4fcd6117cea4b6f1163"}]}] diff --git a/tests/ReplayData/Repository.testGetCommitsWithSinceUntil.txt b/tests/ReplayData/Repository.testGetCommitsWithSinceUntil.txt index 9fd471e40e..9e10bd746f 100644 --- a/tests/ReplayData/Repository.testGetCommitsWithSinceUntil.txt +++ b/tests/ReplayData/Repository.testGetCommitsWithSinceUntil.txt @@ -2,12 +2,12 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/commits?since=2013-03-01T00%3A00%3A00Z&until=2013-03-31T00%3A00%3A00Z +/repos/PyGithub/PyGithub/commits?since=2013-03-01T00%3A00%3A00Z&until=2013-03-31T00%3A00%3A00Z {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4997'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '95940'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 29 Mar 2013 15:54:15 GMT'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"ab4396ff3915897a1c3fe5a4b5db2697"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 19 Aug 2013 21:22:58 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1376950974')] -[{"sha":"db5560bd658b5d8057a864f7037ace4d5f618f1b","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T15:54:15Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T15:54:15Z"},"message":"Add a script to check copyrights with git log. And fix copyrights.","tree":{"sha":"072b9e971d71c06dc8329773b635d7e543eb0755","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/072b9e971d71c06dc8329773b635d7e543eb0755"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/db5560bd658b5d8057a864f7037ace4d5f618f1b","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/db5560bd658b5d8057a864f7037ace4d5f618f1b","html_url":"https://github.com/jacquev6/PyGithub/commit/db5560bd658b5d8057a864f7037ace4d5f618f1b","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/db5560bd658b5d8057a864f7037ace4d5f618f1b/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"f266fed520fea4f683caabe0b38e1f758cfc5cff","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f266fed520fea4f683caabe0b38e1f758cfc5cff","html_url":"https://github.com/jacquev6/PyGithub/commit/f266fed520fea4f683caabe0b38e1f758cfc5cff"}]},{"sha":"f266fed520fea4f683caabe0b38e1f758cfc5cff","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:26:53Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:26:53Z"},"message":"Fix tests for Python <= 2.6","tree":{"sha":"6e2de6a307b94f74a3897318a0057e1386375816","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/6e2de6a307b94f74a3897318a0057e1386375816"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/f266fed520fea4f683caabe0b38e1f758cfc5cff","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f266fed520fea4f683caabe0b38e1f758cfc5cff","html_url":"https://github.com/jacquev6/PyGithub/commit/f266fed520fea4f683caabe0b38e1f758cfc5cff","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f266fed520fea4f683caabe0b38e1f758cfc5cff/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"4df3a7eb47888f38c4c6dae50573f030a0a3f1e1","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4df3a7eb47888f38c4c6dae50573f030a0a3f1e1","html_url":"https://github.com/jacquev6/PyGithub/commit/4df3a7eb47888f38c4c6dae50573f030a0a3f1e1"}]},{"sha":"dff094650011398fd8f0a57bf2668a066fb2cbcb","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:16:57Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:16:57Z"},"message":"Add a documentation note about exceptions","tree":{"sha":"1e86ab9f72610891a1f05220dc3559dc351d8af3","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/1e86ab9f72610891a1f05220dc3559dc351d8af3"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/dff094650011398fd8f0a57bf2668a066fb2cbcb","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dff094650011398fd8f0a57bf2668a066fb2cbcb","html_url":"https://github.com/jacquev6/PyGithub/commit/dff094650011398fd8f0a57bf2668a066fb2cbcb","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dff094650011398fd8f0a57bf2668a066fb2cbcb/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"c1d747a9133a1c6cae1f0e11105a5f490f65fda6","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c1d747a9133a1c6cae1f0e11105a5f490f65fda6","html_url":"https://github.com/jacquev6/PyGithub/commit/c1d747a9133a1c6cae1f0e11105a5f490f65fda6"}]},{"sha":"c1d747a9133a1c6cae1f0e11105a5f490f65fda6","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:13:44Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:13:44Z"},"message":"Refactor tests\n\nWe don't need to inspect the exception, so we can use\nunittest.TestCase.assertRaises","tree":{"sha":"fe7b963f4044724abbad0bf21f3291b81c0f6f87","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fe7b963f4044724abbad0bf21f3291b81c0f6f87"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/c1d747a9133a1c6cae1f0e11105a5f490f65fda6","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c1d747a9133a1c6cae1f0e11105a5f490f65fda6","html_url":"https://github.com/jacquev6/PyGithub/commit/c1d747a9133a1c6cae1f0e11105a5f490f65fda6","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c1d747a9133a1c6cae1f0e11105a5f490f65fda6/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"0bc368973acfb50a531329b6c196ba92e0a81890","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0bc368973acfb50a531329b6c196ba92e0a81890","html_url":"https://github.com/jacquev6/PyGithub/commit/0bc368973acfb50a531329b6c196ba92e0a81890"}]},{"sha":"0bc368973acfb50a531329b6c196ba92e0a81890","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:10:59Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:10:59Z"},"message":"Raise a specific exception for non-existing objects (issue #152)","tree":{"sha":"166135287f1879ea4f27bc8bd5a7cba17ad01dfc","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/166135287f1879ea4f27bc8bd5a7cba17ad01dfc"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0bc368973acfb50a531329b6c196ba92e0a81890","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0bc368973acfb50a531329b6c196ba92e0a81890","html_url":"https://github.com/jacquev6/PyGithub/commit/0bc368973acfb50a531329b6c196ba92e0a81890","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0bc368973acfb50a531329b6c196ba92e0a81890/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"7b3e4c15ed6182963d66ffa9f0522acd0765275c","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7b3e4c15ed6182963d66ffa9f0522acd0765275c","html_url":"https://github.com/jacquev6/PyGithub/commit/7b3e4c15ed6182963d66ffa9f0522acd0765275c"}]},{"sha":"7b3e4c15ed6182963d66ffa9f0522acd0765275c","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:01:06Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:01:06Z"},"message":"Raise a specific exception for bad credentials (issue #152)","tree":{"sha":"1d4d6301b3d0205617af9a8b187a63c80dde5e15","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/1d4d6301b3d0205617af9a8b187a63c80dde5e15"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/7b3e4c15ed6182963d66ffa9f0522acd0765275c","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7b3e4c15ed6182963d66ffa9f0522acd0765275c","html_url":"https://github.com/jacquev6/PyGithub/commit/7b3e4c15ed6182963d66ffa9f0522acd0765275c","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7b3e4c15ed6182963d66ffa9f0522acd0765275c/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"f5d8e221d116b74a200d87afca32247f01204ba1","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f5d8e221d116b74a200d87afca32247f01204ba1","html_url":"https://github.com/jacquev6/PyGithub/commit/f5d8e221d116b74a200d87afca32247f01204ba1"}]},{"sha":"4df3a7eb47888f38c4c6dae50573f030a0a3f1e1","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:52:49Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:52:49Z"},"message":"Merge branch 'topic/CheckPragmaNoCover' into develop","tree":{"sha":"5c319c58976c6a69cbb0f182fdfd5ec976beb218","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/5c319c58976c6a69cbb0f182fdfd5ec976beb218"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4df3a7eb47888f38c4c6dae50573f030a0a3f1e1","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4df3a7eb47888f38c4c6dae50573f030a0a3f1e1","html_url":"https://github.com/jacquev6/PyGithub/commit/4df3a7eb47888f38c4c6dae50573f030a0a3f1e1","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4df3a7eb47888f38c4c6dae50573f030a0a3f1e1/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"dc96fef052f2b5c6adb34da65169e8df3f35f611","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc96fef052f2b5c6adb34da65169e8df3f35f611","html_url":"https://github.com/jacquev6/PyGithub/commit/dc96fef052f2b5c6adb34da65169e8df3f35f611"},{"sha":"e0db8cad4ec01c65e5e0eb50e11765e425e88ef9","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e0db8cad4ec01c65e5e0eb50e11765e425e88ef9","html_url":"https://github.com/jacquev6/PyGithub/commit/e0db8cad4ec01c65e5e0eb50e11765e425e88ef9"}]},{"sha":"e0db8cad4ec01c65e5e0eb50e11765e425e88ef9","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:51:02Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:51:02Z"},"message":"pep8","tree":{"sha":"5c319c58976c6a69cbb0f182fdfd5ec976beb218","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/5c319c58976c6a69cbb0f182fdfd5ec976beb218"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/e0db8cad4ec01c65e5e0eb50e11765e425e88ef9","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e0db8cad4ec01c65e5e0eb50e11765e425e88ef9","html_url":"https://github.com/jacquev6/PyGithub/commit/e0db8cad4ec01c65e5e0eb50e11765e425e88ef9","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e0db8cad4ec01c65e5e0eb50e11765e425e88ef9/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1c47be4e895b823baf907b25c647e43ab63c16dd","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c47be4e895b823baf907b25c647e43ab63c16dd","html_url":"https://github.com/jacquev6/PyGithub/commit/1c47be4e895b823baf907b25c647e43ab63c16dd"}]},{"sha":"1c47be4e895b823baf907b25c647e43ab63c16dd","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:50:17Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:50:17Z"},"message":"Document `#pragma no cover`s (Issue #154)","tree":{"sha":"62a4201d09fcf3c4c528a1b91ba4aa74cb66e8f6","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/62a4201d09fcf3c4c528a1b91ba4aa74cb66e8f6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1c47be4e895b823baf907b25c647e43ab63c16dd","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c47be4e895b823baf907b25c647e43ab63c16dd","html_url":"https://github.com/jacquev6/PyGithub/commit/1c47be4e895b823baf907b25c647e43ab63c16dd","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c47be4e895b823baf907b25c647e43ab63c16dd/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a","html_url":"https://github.com/jacquev6/PyGithub/commit/8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a"}]},{"sha":"8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:49:39Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:49:39Z"},"message":"Remove branches for hypothetical unknown Authorization headers","tree":{"sha":"4f9e93f7e2b6a84809d22ca1d974e76ce54e3156","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/4f9e93f7e2b6a84809d22ca1d974e76ce54e3156"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a","html_url":"https://github.com/jacquev6/PyGithub/commit/8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1c67359a318f05e50bf457818e1983ce95aa5946","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c67359a318f05e50bf457818e1983ce95aa5946","html_url":"https://github.com/jacquev6/PyGithub/commit/1c67359a318f05e50bf457818e1983ce95aa5946"}]},{"sha":"1c67359a318f05e50bf457818e1983ce95aa5946","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:28:01Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:28:01Z"},"message":"Improve test coverage a bit","tree":{"sha":"f22617e135ef910c5caf6ba34874d3ffa5b46e4c","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f22617e135ef910c5caf6ba34874d3ffa5b46e4c"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1c67359a318f05e50bf457818e1983ce95aa5946","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c67359a318f05e50bf457818e1983ce95aa5946","html_url":"https://github.com/jacquev6/PyGithub/commit/1c67359a318f05e50bf457818e1983ce95aa5946","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c67359a318f05e50bf457818e1983ce95aa5946/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1d18bd66f3a4a4225435bd38df04b8a227b5e821","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d18bd66f3a4a4225435bd38df04b8a227b5e821","html_url":"https://github.com/jacquev6/PyGithub/commit/1d18bd66f3a4a4225435bd38df04b8a227b5e821"}]},{"sha":"1d18bd66f3a4a4225435bd38df04b8a227b5e821","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:23:03Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:23:03Z"},"message":"Add a test that would have caught #153","tree":{"sha":"1ad779f4f01d8e13c861bf5d0ae0a64c5f641df9","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/1ad779f4f01d8e13c861bf5d0ae0a64c5f641df9"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1d18bd66f3a4a4225435bd38df04b8a227b5e821","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d18bd66f3a4a4225435bd38df04b8a227b5e821","html_url":"https://github.com/jacquev6/PyGithub/commit/1d18bd66f3a4a4225435bd38df04b8a227b5e821","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d18bd66f3a4a4225435bd38df04b8a227b5e821/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb","html_url":"https://github.com/jacquev6/PyGithub/commit/b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb"}]},{"sha":"b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:05:19Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:05:19Z"},"message":"Slightly improve coverage :-D","tree":{"sha":"b8517ca1fbc058c54b5376855a851426f590db4c","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b8517ca1fbc058c54b5376855a851426f590db4c"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb","html_url":"https://github.com/jacquev6/PyGithub/commit/b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"dc96fef052f2b5c6adb34da65169e8df3f35f611","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc96fef052f2b5c6adb34da65169e8df3f35f611","html_url":"https://github.com/jacquev6/PyGithub/commit/dc96fef052f2b5c6adb34da65169e8df3f35f611"}]},{"sha":"f5d8e221d116b74a200d87afca32247f01204ba1","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T19:55:48Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T19:55:48Z"},"message":"Add (a bit of) documentation about error handling and exceptions","tree":{"sha":"f62a49adc111ad3b2911480026af92779b813d59","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f62a49adc111ad3b2911480026af92779b813d59"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/f5d8e221d116b74a200d87afca32247f01204ba1","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f5d8e221d116b74a200d87afca32247f01204ba1","html_url":"https://github.com/jacquev6/PyGithub/commit/f5d8e221d116b74a200d87afca32247f01204ba1","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f5d8e221d116b74a200d87afca32247f01204ba1/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"dc96fef052f2b5c6adb34da65169e8df3f35f611","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc96fef052f2b5c6adb34da65169e8df3f35f611","html_url":"https://github.com/jacquev6/PyGithub/commit/dc96fef052f2b5c6adb34da65169e8df3f35f611"}]},{"sha":"dc96fef052f2b5c6adb34da65169e8df3f35f611","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T19:10:31Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T19:10:31Z"},"message":"Publish version 1.13.1","tree":{"sha":"896d176ae82c743cf682613dd1f60fd03872a204","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/896d176ae82c743cf682613dd1f60fd03872a204"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/dc96fef052f2b5c6adb34da65169e8df3f35f611","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc96fef052f2b5c6adb34da65169e8df3f35f611","html_url":"https://github.com/jacquev6/PyGithub/commit/dc96fef052f2b5c6adb34da65169e8df3f35f611","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc96fef052f2b5c6adb34da65169e8df3f35f611/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"c85af79db11ed1d2f93261ea4069a23ff1709125","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c85af79db11ed1d2f93261ea4069a23ff1709125","html_url":"https://github.com/jacquev6/PyGithub/commit/c85af79db11ed1d2f93261ea4069a23ff1709125"}]},{"sha":"c85af79db11ed1d2f93261ea4069a23ff1709125","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T19:05:13Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T19:05:13Z"},"message":"Fix authentication with Python 3 (Issue #153)","tree":{"sha":"3e7ad916a818e36e729c706db36f94d3582d1a45","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/3e7ad916a818e36e729c706db36f94d3582d1a45"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/c85af79db11ed1d2f93261ea4069a23ff1709125","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c85af79db11ed1d2f93261ea4069a23ff1709125","html_url":"https://github.com/jacquev6/PyGithub/commit/c85af79db11ed1d2f93261ea4069a23ff1709125","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c85af79db11ed1d2f93261ea4069a23ff1709125/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"0dd1adb4f06f45d554d12083b312fcdb6f6be8d1","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0dd1adb4f06f45d554d12083b312fcdb6f6be8d1","html_url":"https://github.com/jacquev6/PyGithub/commit/0dd1adb4f06f45d554d12083b312fcdb6f6be8d1"}]},{"sha":"0dd1adb4f06f45d554d12083b312fcdb6f6be8d1","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-23T12:07:00Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-23T12:07:00Z"},"message":"List all versions of Python in setup.py","tree":{"sha":"65c78a73d849fa6decb239f069a7cd1e47dea330","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/65c78a73d849fa6decb239f069a7cd1e47dea330"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0dd1adb4f06f45d554d12083b312fcdb6f6be8d1","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0dd1adb4f06f45d554d12083b312fcdb6f6be8d1","html_url":"https://github.com/jacquev6/PyGithub/commit/0dd1adb4f06f45d554d12083b312fcdb6f6be8d1","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0dd1adb4f06f45d554d12083b312fcdb6f6be8d1/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"b7e4000450e89b8c6e947e3a1e52fb06da7c9621","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b7e4000450e89b8c6e947e3a1e52fb06da7c9621","html_url":"https://github.com/jacquev6/PyGithub/commit/b7e4000450e89b8c6e947e3a1e52fb06da7c9621"}]},{"sha":"b7e4000450e89b8c6e947e3a1e52fb06da7c9621","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-22T17:41:13Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-22T17:41:13Z"},"message":"Publish version 1.13.0","tree":{"sha":"d9ea78368ab68bb0696f5fe85e11b0f92ab2adf2","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/d9ea78368ab68bb0696f5fe85e11b0f92ab2adf2"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/b7e4000450e89b8c6e947e3a1e52fb06da7c9621","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b7e4000450e89b8c6e947e3a1e52fb06da7c9621","html_url":"https://github.com/jacquev6/PyGithub/commit/b7e4000450e89b8c6e947e3a1e52fb06da7c9621","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b7e4000450e89b8c6e947e3a1e52fb06da7c9621/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1d9ad14fa918866c418067e774f65cede8e38682","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d9ad14fa918866c418067e774f65cede8e38682","html_url":"https://github.com/jacquev6/PyGithub/commit/1d9ad14fa918866c418067e774f65cede8e38682"}]},{"sha":"1d9ad14fa918866c418067e774f65cede8e38682","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-22T17:29:14Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-22T17:29:14Z"},"message":"Use bash for manage.sh","tree":{"sha":"69af02f3ea18c29ccfa5ca370ae2ec9f6fbb6c76","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/69af02f3ea18c29ccfa5ca370ae2ec9f6fbb6c76"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1d9ad14fa918866c418067e774f65cede8e38682","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d9ad14fa918866c418067e774f65cede8e38682","html_url":"https://github.com/jacquev6/PyGithub/commit/1d9ad14fa918866c418067e774f65cede8e38682","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d9ad14fa918866c418067e774f65cede8e38682/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1bb05fef01d0a040cb2b931a4d44392784a2f0c1","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1bb05fef01d0a040cb2b931a4d44392784a2f0c1","html_url":"https://github.com/jacquev6/PyGithub/commit/1bb05fef01d0a040cb2b931a4d44392784a2f0c1"}]},{"sha":"1bb05fef01d0a040cb2b931a4d44392784a2f0c1","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-22T16:52:00Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-22T16:52:00Z"},"message":"Respect pep 8","tree":{"sha":"b16178379b74069e1fcdf21be9d2b8eddaddb7dd","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b16178379b74069e1fcdf21be9d2b8eddaddb7dd"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1bb05fef01d0a040cb2b931a4d44392784a2f0c1","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1bb05fef01d0a040cb2b931a4d44392784a2f0c1","html_url":"https://github.com/jacquev6/PyGithub/commit/1bb05fef01d0a040cb2b931a4d44392784a2f0c1","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1bb05fef01d0a040cb2b931a4d44392784a2f0c1/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"d9b29851ddccc907f71f1ae662e57f2cd7c7dc71","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d9b29851ddccc907f71f1ae662e57f2cd7c7dc71","html_url":"https://github.com/jacquev6/PyGithub/commit/d9b29851ddccc907f71f1ae662e57f2cd7c7dc71"}]},{"sha":"d9b29851ddccc907f71f1ae662e57f2cd7c7dc71","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T23:33:13Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T23:33:13Z"},"message":"Fix tests for Python 2.5","tree":{"sha":"4d98111af3d18526aac214545cf0287267006386","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/4d98111af3d18526aac214545cf0287267006386"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/d9b29851ddccc907f71f1ae662e57f2cd7c7dc71","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d9b29851ddccc907f71f1ae662e57f2cd7c7dc71","html_url":"https://github.com/jacquev6/PyGithub/commit/d9b29851ddccc907f71f1ae662e57f2cd7c7dc71","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d9b29851ddccc907f71f1ae662e57f2cd7c7dc71/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"f962bc71fee609cd54fe69c956c8b81703d2c19a","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f962bc71fee609cd54fe69c956c8b81703d2c19a","html_url":"https://github.com/jacquev6/PyGithub/commit/f962bc71fee609cd54fe69c956c8b81703d2c19a"}]},{"sha":"f962bc71fee609cd54fe69c956c8b81703d2c19a","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T23:29:44Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T23:29:44Z"},"message":"Fix tests for Python 2.5","tree":{"sha":"01ab15ff86ef1982c489a3846b517957f78cd37a","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/01ab15ff86ef1982c489a3846b517957f78cd37a"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/f962bc71fee609cd54fe69c956c8b81703d2c19a","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f962bc71fee609cd54fe69c956c8b81703d2c19a","html_url":"https://github.com/jacquev6/PyGithub/commit/f962bc71fee609cd54fe69c956c8b81703d2c19a","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f962bc71fee609cd54fe69c956c8b81703d2c19a/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"7a9c0b916c632be8d6a65bc1b6f558508f04bb22","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7a9c0b916c632be8d6a65bc1b6f558508f04bb22","html_url":"https://github.com/jacquev6/PyGithub/commit/7a9c0b916c632be8d6a65bc1b6f558508f04bb22"}]},{"sha":"7a9c0b916c632be8d6a65bc1b6f558508f04bb22","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T22:18:21Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T22:18:21Z"},"message":"Fix tests on Python 3.3 (issue #149)\n\nThe output order of dicts has changed","tree":{"sha":"b499288aa4cb3222bc9b8997386b71748c1d5967","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b499288aa4cb3222bc9b8997386b71748c1d5967"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/7a9c0b916c632be8d6a65bc1b6f558508f04bb22","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7a9c0b916c632be8d6a65bc1b6f558508f04bb22","html_url":"https://github.com/jacquev6/PyGithub/commit/7a9c0b916c632be8d6a65bc1b6f558508f04bb22","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7a9c0b916c632be8d6a65bc1b6f558508f04bb22/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"82ce7b1ee30d308b48bdac6d8737dbca70500462","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/82ce7b1ee30d308b48bdac6d8737dbca70500462","html_url":"https://github.com/jacquev6/PyGithub/commit/82ce7b1ee30d308b48bdac6d8737dbca70500462"}]},{"sha":"82ce7b1ee30d308b48bdac6d8737dbca70500462","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T21:06:24Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T21:06:24Z"},"message":"Fix tests for Python 3.2 on Windows","tree":{"sha":"7766488284c248fa005be568fba13578b53e588d","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/7766488284c248fa005be568fba13578b53e588d"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/82ce7b1ee30d308b48bdac6d8737dbca70500462","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/82ce7b1ee30d308b48bdac6d8737dbca70500462","html_url":"https://github.com/jacquev6/PyGithub/commit/82ce7b1ee30d308b48bdac6d8737dbca70500462","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/82ce7b1ee30d308b48bdac6d8737dbca70500462/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8","html_url":"https://github.com/jacquev6/PyGithub/commit/1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8"}]},{"sha":"1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T21:05:37Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T21:05:37Z"},"message":"Reduce 2to3 differences","tree":{"sha":"044b5937a2fa1a5628285e202c2b6c8b36e47ee6","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/044b5937a2fa1a5628285e202c2b6c8b36e47ee6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8","html_url":"https://github.com/jacquev6/PyGithub/commit/1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"a397fac6db9f87a903ec3ede9643cb2b4224ed82","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a397fac6db9f87a903ec3ede9643cb2b4224ed82","html_url":"https://github.com/jacquev6/PyGithub/commit/a397fac6db9f87a903ec3ede9643cb2b4224ed82"}]},{"sha":"a397fac6db9f87a903ec3ede9643cb2b4224ed82","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T20:56:51Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T20:56:51Z"},"message":"Fix doc for raw_data (issue #144)","tree":{"sha":"b34aedcd0170643aa079001a153529b9fe5e1721","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b34aedcd0170643aa079001a153529b9fe5e1721"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a397fac6db9f87a903ec3ede9643cb2b4224ed82","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a397fac6db9f87a903ec3ede9643cb2b4224ed82","html_url":"https://github.com/jacquev6/PyGithub/commit/a397fac6db9f87a903ec3ede9643cb2b4224ed82","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a397fac6db9f87a903ec3ede9643cb2b4224ed82/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"109495175e926731703a55cafd8b542a07366513","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/109495175e926731703a55cafd8b542a07366513","html_url":"https://github.com/jacquev6/PyGithub/commit/109495175e926731703a55cafd8b542a07366513"}]},{"sha":"109495175e926731703a55cafd8b542a07366513","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T20:45:43Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T20:45:43Z"},"message":"Fix doc of properties of class Github","tree":{"sha":"d0812970ee60eac5678a17f0b1752cd9360e2c83","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/d0812970ee60eac5678a17f0b1752cd9360e2c83"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/109495175e926731703a55cafd8b542a07366513","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/109495175e926731703a55cafd8b542a07366513","html_url":"https://github.com/jacquev6/PyGithub/commit/109495175e926731703a55cafd8b542a07366513","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/109495175e926731703a55cafd8b542a07366513/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"da6bbdb69485fc3256030d8296589d4c2fb5df21","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/da6bbdb69485fc3256030d8296589d4c2fb5df21","html_url":"https://github.com/jacquev6/PyGithub/commit/da6bbdb69485fc3256030d8296589d4c2fb5df21"}]},{"sha":"da6bbdb69485fc3256030d8296589d4c2fb5df21","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T22:14:29Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T22:14:29Z"},"message":"Merge branch 'topic/Notifications' into develop","tree":{"sha":"fad8d647e1942ccfc5ce0f6a1c15193b11bd5d54","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fad8d647e1942ccfc5ce0f6a1c15193b11bd5d54"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/da6bbdb69485fc3256030d8296589d4c2fb5df21","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/da6bbdb69485fc3256030d8296589d4c2fb5df21","html_url":"https://github.com/jacquev6/PyGithub/commit/da6bbdb69485fc3256030d8296589d4c2fb5df21","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/da6bbdb69485fc3256030d8296589d4c2fb5df21/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"34c18342dcce9697abc6f522c3506485202e6e7e","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/34c18342dcce9697abc6f522c3506485202e6e7e","html_url":"https://github.com/jacquev6/PyGithub/commit/34c18342dcce9697abc6f522c3506485202e6e7e"},{"sha":"ee29deddd27480401db484733ecde9e7b1df5eda","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ee29deddd27480401db484733ecde9e7b1df5eda","html_url":"https://github.com/jacquev6/PyGithub/commit/ee29deddd27480401db484733ecde9e7b1df5eda"}]},{"sha":"34c18342dcce9697abc6f522c3506485202e6e7e","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:37:30Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:37:30Z"},"message":"Merge branch 'topic/ExposeRawData' into develop","tree":{"sha":"a8debc5ced39b2846b129f7876d7b09708cef77b","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/a8debc5ced39b2846b129f7876d7b09708cef77b"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/34c18342dcce9697abc6f522c3506485202e6e7e","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/34c18342dcce9697abc6f522c3506485202e6e7e","html_url":"https://github.com/jacquev6/PyGithub/commit/34c18342dcce9697abc6f522c3506485202e6e7e","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/34c18342dcce9697abc6f522c3506485202e6e7e/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"5d02de6f82a36753a2d715dd8875fc5c60e4cef6","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5d02de6f82a36753a2d715dd8875fc5c60e4cef6","html_url":"https://github.com/jacquev6/PyGithub/commit/5d02de6f82a36753a2d715dd8875fc5c60e4cef6"},{"sha":"040f024cf4bbbebe4dfe35d29854f398a0e2117e","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/040f024cf4bbbebe4dfe35d29854f398a0e2117e","html_url":"https://github.com/jacquev6/PyGithub/commit/040f024cf4bbbebe4dfe35d29854f398a0e2117e"}]},{"sha":"ee29deddd27480401db484733ecde9e7b1df5eda","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:36:35Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:36:35Z"},"message":"Complete doc/apis.rst (pull #148)","tree":{"sha":"89260e5c29aca09e440e2a3989017cc194b47bcc","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/89260e5c29aca09e440e2a3989017cc194b47bcc"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ee29deddd27480401db484733ecde9e7b1df5eda","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ee29deddd27480401db484733ecde9e7b1df5eda","html_url":"https://github.com/jacquev6/PyGithub/commit/ee29deddd27480401db484733ecde9e7b1df5eda","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ee29deddd27480401db484733ecde9e7b1df5eda/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32","html_url":"https://github.com/jacquev6/PyGithub/commit/0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32"}]}] +[{"sha":"db5560bd658b5d8057a864f7037ace4d5f618f1b","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T15:54:15Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T15:54:15Z"},"message":"Add a script to check copyrights with git log. And fix copyrights.","tree":{"sha":"072b9e971d71c06dc8329773b635d7e543eb0755","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/072b9e971d71c06dc8329773b635d7e543eb0755"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/db5560bd658b5d8057a864f7037ace4d5f618f1b","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/db5560bd658b5d8057a864f7037ace4d5f618f1b","html_url":"https://github.com/PyGithub/PyGithub/commit/db5560bd658b5d8057a864f7037ace4d5f618f1b","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/db5560bd658b5d8057a864f7037ace4d5f618f1b/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"f266fed520fea4f683caabe0b38e1f758cfc5cff","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f266fed520fea4f683caabe0b38e1f758cfc5cff","html_url":"https://github.com/PyGithub/PyGithub/commit/f266fed520fea4f683caabe0b38e1f758cfc5cff"}]},{"sha":"f266fed520fea4f683caabe0b38e1f758cfc5cff","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:26:53Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:26:53Z"},"message":"Fix tests for Python <= 2.6","tree":{"sha":"6e2de6a307b94f74a3897318a0057e1386375816","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/6e2de6a307b94f74a3897318a0057e1386375816"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/f266fed520fea4f683caabe0b38e1f758cfc5cff","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f266fed520fea4f683caabe0b38e1f758cfc5cff","html_url":"https://github.com/PyGithub/PyGithub/commit/f266fed520fea4f683caabe0b38e1f758cfc5cff","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f266fed520fea4f683caabe0b38e1f758cfc5cff/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"4df3a7eb47888f38c4c6dae50573f030a0a3f1e1","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4df3a7eb47888f38c4c6dae50573f030a0a3f1e1","html_url":"https://github.com/PyGithub/PyGithub/commit/4df3a7eb47888f38c4c6dae50573f030a0a3f1e1"}]},{"sha":"dff094650011398fd8f0a57bf2668a066fb2cbcb","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:16:57Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:16:57Z"},"message":"Add a documentation note about exceptions","tree":{"sha":"1e86ab9f72610891a1f05220dc3559dc351d8af3","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/1e86ab9f72610891a1f05220dc3559dc351d8af3"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/dff094650011398fd8f0a57bf2668a066fb2cbcb","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dff094650011398fd8f0a57bf2668a066fb2cbcb","html_url":"https://github.com/PyGithub/PyGithub/commit/dff094650011398fd8f0a57bf2668a066fb2cbcb","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dff094650011398fd8f0a57bf2668a066fb2cbcb/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"c1d747a9133a1c6cae1f0e11105a5f490f65fda6","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c1d747a9133a1c6cae1f0e11105a5f490f65fda6","html_url":"https://github.com/PyGithub/PyGithub/commit/c1d747a9133a1c6cae1f0e11105a5f490f65fda6"}]},{"sha":"c1d747a9133a1c6cae1f0e11105a5f490f65fda6","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:13:44Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:13:44Z"},"message":"Refactor tests\n\nWe don't need to inspect the exception, so we can use\nunittest.TestCase.assertRaises","tree":{"sha":"fe7b963f4044724abbad0bf21f3291b81c0f6f87","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/fe7b963f4044724abbad0bf21f3291b81c0f6f87"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/c1d747a9133a1c6cae1f0e11105a5f490f65fda6","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c1d747a9133a1c6cae1f0e11105a5f490f65fda6","html_url":"https://github.com/PyGithub/PyGithub/commit/c1d747a9133a1c6cae1f0e11105a5f490f65fda6","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c1d747a9133a1c6cae1f0e11105a5f490f65fda6/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"0bc368973acfb50a531329b6c196ba92e0a81890","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0bc368973acfb50a531329b6c196ba92e0a81890","html_url":"https://github.com/PyGithub/PyGithub/commit/0bc368973acfb50a531329b6c196ba92e0a81890"}]},{"sha":"0bc368973acfb50a531329b6c196ba92e0a81890","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:10:59Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:10:59Z"},"message":"Raise a specific exception for non-existing objects (issue #152)","tree":{"sha":"166135287f1879ea4f27bc8bd5a7cba17ad01dfc","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/166135287f1879ea4f27bc8bd5a7cba17ad01dfc"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0bc368973acfb50a531329b6c196ba92e0a81890","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0bc368973acfb50a531329b6c196ba92e0a81890","html_url":"https://github.com/PyGithub/PyGithub/commit/0bc368973acfb50a531329b6c196ba92e0a81890","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0bc368973acfb50a531329b6c196ba92e0a81890/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"7b3e4c15ed6182963d66ffa9f0522acd0765275c","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/7b3e4c15ed6182963d66ffa9f0522acd0765275c","html_url":"https://github.com/PyGithub/PyGithub/commit/7b3e4c15ed6182963d66ffa9f0522acd0765275c"}]},{"sha":"7b3e4c15ed6182963d66ffa9f0522acd0765275c","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:01:06Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-29T12:01:06Z"},"message":"Raise a specific exception for bad credentials (issue #152)","tree":{"sha":"1d4d6301b3d0205617af9a8b187a63c80dde5e15","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/1d4d6301b3d0205617af9a8b187a63c80dde5e15"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/7b3e4c15ed6182963d66ffa9f0522acd0765275c","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/7b3e4c15ed6182963d66ffa9f0522acd0765275c","html_url":"https://github.com/PyGithub/PyGithub/commit/7b3e4c15ed6182963d66ffa9f0522acd0765275c","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/7b3e4c15ed6182963d66ffa9f0522acd0765275c/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"f5d8e221d116b74a200d87afca32247f01204ba1","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f5d8e221d116b74a200d87afca32247f01204ba1","html_url":"https://github.com/PyGithub/PyGithub/commit/f5d8e221d116b74a200d87afca32247f01204ba1"}]},{"sha":"4df3a7eb47888f38c4c6dae50573f030a0a3f1e1","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:52:49Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:52:49Z"},"message":"Merge branch 'topic/CheckPragmaNoCover' into develop","tree":{"sha":"5c319c58976c6a69cbb0f182fdfd5ec976beb218","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/5c319c58976c6a69cbb0f182fdfd5ec976beb218"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/4df3a7eb47888f38c4c6dae50573f030a0a3f1e1","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4df3a7eb47888f38c4c6dae50573f030a0a3f1e1","html_url":"https://github.com/PyGithub/PyGithub/commit/4df3a7eb47888f38c4c6dae50573f030a0a3f1e1","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4df3a7eb47888f38c4c6dae50573f030a0a3f1e1/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"dc96fef052f2b5c6adb34da65169e8df3f35f611","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dc96fef052f2b5c6adb34da65169e8df3f35f611","html_url":"https://github.com/PyGithub/PyGithub/commit/dc96fef052f2b5c6adb34da65169e8df3f35f611"},{"sha":"e0db8cad4ec01c65e5e0eb50e11765e425e88ef9","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e0db8cad4ec01c65e5e0eb50e11765e425e88ef9","html_url":"https://github.com/PyGithub/PyGithub/commit/e0db8cad4ec01c65e5e0eb50e11765e425e88ef9"}]},{"sha":"e0db8cad4ec01c65e5e0eb50e11765e425e88ef9","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:51:02Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:51:02Z"},"message":"pep8","tree":{"sha":"5c319c58976c6a69cbb0f182fdfd5ec976beb218","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/5c319c58976c6a69cbb0f182fdfd5ec976beb218"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/e0db8cad4ec01c65e5e0eb50e11765e425e88ef9","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e0db8cad4ec01c65e5e0eb50e11765e425e88ef9","html_url":"https://github.com/PyGithub/PyGithub/commit/e0db8cad4ec01c65e5e0eb50e11765e425e88ef9","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e0db8cad4ec01c65e5e0eb50e11765e425e88ef9/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1c47be4e895b823baf907b25c647e43ab63c16dd","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1c47be4e895b823baf907b25c647e43ab63c16dd","html_url":"https://github.com/PyGithub/PyGithub/commit/1c47be4e895b823baf907b25c647e43ab63c16dd"}]},{"sha":"1c47be4e895b823baf907b25c647e43ab63c16dd","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:50:17Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:50:17Z"},"message":"Document `#pragma no cover`s (Issue #154)","tree":{"sha":"62a4201d09fcf3c4c528a1b91ba4aa74cb66e8f6","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/62a4201d09fcf3c4c528a1b91ba4aa74cb66e8f6"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/1c47be4e895b823baf907b25c647e43ab63c16dd","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1c47be4e895b823baf907b25c647e43ab63c16dd","html_url":"https://github.com/PyGithub/PyGithub/commit/1c47be4e895b823baf907b25c647e43ab63c16dd","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1c47be4e895b823baf907b25c647e43ab63c16dd/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a","html_url":"https://github.com/PyGithub/PyGithub/commit/8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a"}]},{"sha":"8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:49:39Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:49:39Z"},"message":"Remove branches for hypothetical unknown Authorization headers","tree":{"sha":"4f9e93f7e2b6a84809d22ca1d974e76ce54e3156","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/4f9e93f7e2b6a84809d22ca1d974e76ce54e3156"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a","html_url":"https://github.com/PyGithub/PyGithub/commit/8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8a9afbb1aa36c6ba04142c6e6c1cfbd7de982a6a/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1c67359a318f05e50bf457818e1983ce95aa5946","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1c67359a318f05e50bf457818e1983ce95aa5946","html_url":"https://github.com/PyGithub/PyGithub/commit/1c67359a318f05e50bf457818e1983ce95aa5946"}]},{"sha":"1c67359a318f05e50bf457818e1983ce95aa5946","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:28:01Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:28:01Z"},"message":"Improve test coverage a bit","tree":{"sha":"f22617e135ef910c5caf6ba34874d3ffa5b46e4c","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/f22617e135ef910c5caf6ba34874d3ffa5b46e4c"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/1c67359a318f05e50bf457818e1983ce95aa5946","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1c67359a318f05e50bf457818e1983ce95aa5946","html_url":"https://github.com/PyGithub/PyGithub/commit/1c67359a318f05e50bf457818e1983ce95aa5946","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1c67359a318f05e50bf457818e1983ce95aa5946/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1d18bd66f3a4a4225435bd38df04b8a227b5e821","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1d18bd66f3a4a4225435bd38df04b8a227b5e821","html_url":"https://github.com/PyGithub/PyGithub/commit/1d18bd66f3a4a4225435bd38df04b8a227b5e821"}]},{"sha":"1d18bd66f3a4a4225435bd38df04b8a227b5e821","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:23:03Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:23:03Z"},"message":"Add a test that would have caught #153","tree":{"sha":"1ad779f4f01d8e13c861bf5d0ae0a64c5f641df9","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/1ad779f4f01d8e13c861bf5d0ae0a64c5f641df9"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/1d18bd66f3a4a4225435bd38df04b8a227b5e821","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1d18bd66f3a4a4225435bd38df04b8a227b5e821","html_url":"https://github.com/PyGithub/PyGithub/commit/1d18bd66f3a4a4225435bd38df04b8a227b5e821","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1d18bd66f3a4a4225435bd38df04b8a227b5e821/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb","html_url":"https://github.com/PyGithub/PyGithub/commit/b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb"}]},{"sha":"b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:05:19Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T20:05:19Z"},"message":"Slightly improve coverage :-D","tree":{"sha":"b8517ca1fbc058c54b5376855a851426f590db4c","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b8517ca1fbc058c54b5376855a851426f590db4c"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb","html_url":"https://github.com/PyGithub/PyGithub/commit/b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/b9d71fa787a2ffb99b6631e4bd6df932a4d4adbb/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"dc96fef052f2b5c6adb34da65169e8df3f35f611","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dc96fef052f2b5c6adb34da65169e8df3f35f611","html_url":"https://github.com/PyGithub/PyGithub/commit/dc96fef052f2b5c6adb34da65169e8df3f35f611"}]},{"sha":"f5d8e221d116b74a200d87afca32247f01204ba1","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T19:55:48Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T19:55:48Z"},"message":"Add (a bit of) documentation about error handling and exceptions","tree":{"sha":"f62a49adc111ad3b2911480026af92779b813d59","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/f62a49adc111ad3b2911480026af92779b813d59"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/f5d8e221d116b74a200d87afca32247f01204ba1","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f5d8e221d116b74a200d87afca32247f01204ba1","html_url":"https://github.com/PyGithub/PyGithub/commit/f5d8e221d116b74a200d87afca32247f01204ba1","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f5d8e221d116b74a200d87afca32247f01204ba1/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"dc96fef052f2b5c6adb34da65169e8df3f35f611","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dc96fef052f2b5c6adb34da65169e8df3f35f611","html_url":"https://github.com/PyGithub/PyGithub/commit/dc96fef052f2b5c6adb34da65169e8df3f35f611"}]},{"sha":"dc96fef052f2b5c6adb34da65169e8df3f35f611","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T19:10:31Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T19:10:31Z"},"message":"Publish version 1.13.1","tree":{"sha":"896d176ae82c743cf682613dd1f60fd03872a204","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/896d176ae82c743cf682613dd1f60fd03872a204"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/dc96fef052f2b5c6adb34da65169e8df3f35f611","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dc96fef052f2b5c6adb34da65169e8df3f35f611","html_url":"https://github.com/PyGithub/PyGithub/commit/dc96fef052f2b5c6adb34da65169e8df3f35f611","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dc96fef052f2b5c6adb34da65169e8df3f35f611/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"c85af79db11ed1d2f93261ea4069a23ff1709125","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c85af79db11ed1d2f93261ea4069a23ff1709125","html_url":"https://github.com/PyGithub/PyGithub/commit/c85af79db11ed1d2f93261ea4069a23ff1709125"}]},{"sha":"c85af79db11ed1d2f93261ea4069a23ff1709125","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T19:05:13Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-28T19:05:13Z"},"message":"Fix authentication with Python 3 (Issue #153)","tree":{"sha":"3e7ad916a818e36e729c706db36f94d3582d1a45","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/3e7ad916a818e36e729c706db36f94d3582d1a45"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/c85af79db11ed1d2f93261ea4069a23ff1709125","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c85af79db11ed1d2f93261ea4069a23ff1709125","html_url":"https://github.com/PyGithub/PyGithub/commit/c85af79db11ed1d2f93261ea4069a23ff1709125","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c85af79db11ed1d2f93261ea4069a23ff1709125/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"0dd1adb4f06f45d554d12083b312fcdb6f6be8d1","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0dd1adb4f06f45d554d12083b312fcdb6f6be8d1","html_url":"https://github.com/PyGithub/PyGithub/commit/0dd1adb4f06f45d554d12083b312fcdb6f6be8d1"}]},{"sha":"0dd1adb4f06f45d554d12083b312fcdb6f6be8d1","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-23T12:07:00Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-23T12:07:00Z"},"message":"List all versions of Python in setup.py","tree":{"sha":"65c78a73d849fa6decb239f069a7cd1e47dea330","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/65c78a73d849fa6decb239f069a7cd1e47dea330"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0dd1adb4f06f45d554d12083b312fcdb6f6be8d1","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0dd1adb4f06f45d554d12083b312fcdb6f6be8d1","html_url":"https://github.com/PyGithub/PyGithub/commit/0dd1adb4f06f45d554d12083b312fcdb6f6be8d1","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0dd1adb4f06f45d554d12083b312fcdb6f6be8d1/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"b7e4000450e89b8c6e947e3a1e52fb06da7c9621","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/b7e4000450e89b8c6e947e3a1e52fb06da7c9621","html_url":"https://github.com/PyGithub/PyGithub/commit/b7e4000450e89b8c6e947e3a1e52fb06da7c9621"}]},{"sha":"b7e4000450e89b8c6e947e3a1e52fb06da7c9621","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-22T17:41:13Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-22T17:41:13Z"},"message":"Publish version 1.13.0","tree":{"sha":"d9ea78368ab68bb0696f5fe85e11b0f92ab2adf2","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/d9ea78368ab68bb0696f5fe85e11b0f92ab2adf2"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/b7e4000450e89b8c6e947e3a1e52fb06da7c9621","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/b7e4000450e89b8c6e947e3a1e52fb06da7c9621","html_url":"https://github.com/PyGithub/PyGithub/commit/b7e4000450e89b8c6e947e3a1e52fb06da7c9621","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/b7e4000450e89b8c6e947e3a1e52fb06da7c9621/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1d9ad14fa918866c418067e774f65cede8e38682","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1d9ad14fa918866c418067e774f65cede8e38682","html_url":"https://github.com/PyGithub/PyGithub/commit/1d9ad14fa918866c418067e774f65cede8e38682"}]},{"sha":"1d9ad14fa918866c418067e774f65cede8e38682","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-22T17:29:14Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-22T17:29:14Z"},"message":"Use bash for manage.sh","tree":{"sha":"69af02f3ea18c29ccfa5ca370ae2ec9f6fbb6c76","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/69af02f3ea18c29ccfa5ca370ae2ec9f6fbb6c76"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/1d9ad14fa918866c418067e774f65cede8e38682","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1d9ad14fa918866c418067e774f65cede8e38682","html_url":"https://github.com/PyGithub/PyGithub/commit/1d9ad14fa918866c418067e774f65cede8e38682","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1d9ad14fa918866c418067e774f65cede8e38682/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1bb05fef01d0a040cb2b931a4d44392784a2f0c1","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1bb05fef01d0a040cb2b931a4d44392784a2f0c1","html_url":"https://github.com/PyGithub/PyGithub/commit/1bb05fef01d0a040cb2b931a4d44392784a2f0c1"}]},{"sha":"1bb05fef01d0a040cb2b931a4d44392784a2f0c1","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-22T16:52:00Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-22T16:52:00Z"},"message":"Respect pep 8","tree":{"sha":"b16178379b74069e1fcdf21be9d2b8eddaddb7dd","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b16178379b74069e1fcdf21be9d2b8eddaddb7dd"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/1bb05fef01d0a040cb2b931a4d44392784a2f0c1","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1bb05fef01d0a040cb2b931a4d44392784a2f0c1","html_url":"https://github.com/PyGithub/PyGithub/commit/1bb05fef01d0a040cb2b931a4d44392784a2f0c1","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1bb05fef01d0a040cb2b931a4d44392784a2f0c1/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"d9b29851ddccc907f71f1ae662e57f2cd7c7dc71","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d9b29851ddccc907f71f1ae662e57f2cd7c7dc71","html_url":"https://github.com/PyGithub/PyGithub/commit/d9b29851ddccc907f71f1ae662e57f2cd7c7dc71"}]},{"sha":"d9b29851ddccc907f71f1ae662e57f2cd7c7dc71","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T23:33:13Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T23:33:13Z"},"message":"Fix tests for Python 2.5","tree":{"sha":"4d98111af3d18526aac214545cf0287267006386","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/4d98111af3d18526aac214545cf0287267006386"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/d9b29851ddccc907f71f1ae662e57f2cd7c7dc71","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d9b29851ddccc907f71f1ae662e57f2cd7c7dc71","html_url":"https://github.com/PyGithub/PyGithub/commit/d9b29851ddccc907f71f1ae662e57f2cd7c7dc71","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d9b29851ddccc907f71f1ae662e57f2cd7c7dc71/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"f962bc71fee609cd54fe69c956c8b81703d2c19a","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f962bc71fee609cd54fe69c956c8b81703d2c19a","html_url":"https://github.com/PyGithub/PyGithub/commit/f962bc71fee609cd54fe69c956c8b81703d2c19a"}]},{"sha":"f962bc71fee609cd54fe69c956c8b81703d2c19a","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T23:29:44Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T23:29:44Z"},"message":"Fix tests for Python 2.5","tree":{"sha":"01ab15ff86ef1982c489a3846b517957f78cd37a","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/01ab15ff86ef1982c489a3846b517957f78cd37a"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/f962bc71fee609cd54fe69c956c8b81703d2c19a","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f962bc71fee609cd54fe69c956c8b81703d2c19a","html_url":"https://github.com/PyGithub/PyGithub/commit/f962bc71fee609cd54fe69c956c8b81703d2c19a","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f962bc71fee609cd54fe69c956c8b81703d2c19a/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"7a9c0b916c632be8d6a65bc1b6f558508f04bb22","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/7a9c0b916c632be8d6a65bc1b6f558508f04bb22","html_url":"https://github.com/PyGithub/PyGithub/commit/7a9c0b916c632be8d6a65bc1b6f558508f04bb22"}]},{"sha":"7a9c0b916c632be8d6a65bc1b6f558508f04bb22","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T22:18:21Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T22:18:21Z"},"message":"Fix tests on Python 3.3 (issue #149)\n\nThe output order of dicts has changed","tree":{"sha":"b499288aa4cb3222bc9b8997386b71748c1d5967","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b499288aa4cb3222bc9b8997386b71748c1d5967"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/7a9c0b916c632be8d6a65bc1b6f558508f04bb22","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/7a9c0b916c632be8d6a65bc1b6f558508f04bb22","html_url":"https://github.com/PyGithub/PyGithub/commit/7a9c0b916c632be8d6a65bc1b6f558508f04bb22","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/7a9c0b916c632be8d6a65bc1b6f558508f04bb22/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"82ce7b1ee30d308b48bdac6d8737dbca70500462","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/82ce7b1ee30d308b48bdac6d8737dbca70500462","html_url":"https://github.com/PyGithub/PyGithub/commit/82ce7b1ee30d308b48bdac6d8737dbca70500462"}]},{"sha":"82ce7b1ee30d308b48bdac6d8737dbca70500462","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T21:06:24Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T21:06:24Z"},"message":"Fix tests for Python 3.2 on Windows","tree":{"sha":"7766488284c248fa005be568fba13578b53e588d","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/7766488284c248fa005be568fba13578b53e588d"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/82ce7b1ee30d308b48bdac6d8737dbca70500462","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/82ce7b1ee30d308b48bdac6d8737dbca70500462","html_url":"https://github.com/PyGithub/PyGithub/commit/82ce7b1ee30d308b48bdac6d8737dbca70500462","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/82ce7b1ee30d308b48bdac6d8737dbca70500462/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8","html_url":"https://github.com/PyGithub/PyGithub/commit/1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8"}]},{"sha":"1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T21:05:37Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T21:05:37Z"},"message":"Reduce 2to3 differences","tree":{"sha":"044b5937a2fa1a5628285e202c2b6c8b36e47ee6","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/044b5937a2fa1a5628285e202c2b6c8b36e47ee6"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8","html_url":"https://github.com/PyGithub/PyGithub/commit/1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1e99e7d5b21c71bf68cc5cc21faec30ee603b8b8/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"a397fac6db9f87a903ec3ede9643cb2b4224ed82","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a397fac6db9f87a903ec3ede9643cb2b4224ed82","html_url":"https://github.com/PyGithub/PyGithub/commit/a397fac6db9f87a903ec3ede9643cb2b4224ed82"}]},{"sha":"a397fac6db9f87a903ec3ede9643cb2b4224ed82","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T20:56:51Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T20:56:51Z"},"message":"Fix doc for raw_data (issue #144)","tree":{"sha":"b34aedcd0170643aa079001a153529b9fe5e1721","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b34aedcd0170643aa079001a153529b9fe5e1721"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/a397fac6db9f87a903ec3ede9643cb2b4224ed82","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a397fac6db9f87a903ec3ede9643cb2b4224ed82","html_url":"https://github.com/PyGithub/PyGithub/commit/a397fac6db9f87a903ec3ede9643cb2b4224ed82","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a397fac6db9f87a903ec3ede9643cb2b4224ed82/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"109495175e926731703a55cafd8b542a07366513","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/109495175e926731703a55cafd8b542a07366513","html_url":"https://github.com/PyGithub/PyGithub/commit/109495175e926731703a55cafd8b542a07366513"}]},{"sha":"109495175e926731703a55cafd8b542a07366513","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T20:45:43Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-21T20:45:43Z"},"message":"Fix doc of properties of class Github","tree":{"sha":"d0812970ee60eac5678a17f0b1752cd9360e2c83","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/d0812970ee60eac5678a17f0b1752cd9360e2c83"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/109495175e926731703a55cafd8b542a07366513","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/109495175e926731703a55cafd8b542a07366513","html_url":"https://github.com/PyGithub/PyGithub/commit/109495175e926731703a55cafd8b542a07366513","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/109495175e926731703a55cafd8b542a07366513/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"da6bbdb69485fc3256030d8296589d4c2fb5df21","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/da6bbdb69485fc3256030d8296589d4c2fb5df21","html_url":"https://github.com/PyGithub/PyGithub/commit/da6bbdb69485fc3256030d8296589d4c2fb5df21"}]},{"sha":"da6bbdb69485fc3256030d8296589d4c2fb5df21","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T22:14:29Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T22:14:29Z"},"message":"Merge branch 'topic/Notifications' into develop","tree":{"sha":"fad8d647e1942ccfc5ce0f6a1c15193b11bd5d54","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/fad8d647e1942ccfc5ce0f6a1c15193b11bd5d54"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/da6bbdb69485fc3256030d8296589d4c2fb5df21","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/da6bbdb69485fc3256030d8296589d4c2fb5df21","html_url":"https://github.com/PyGithub/PyGithub/commit/da6bbdb69485fc3256030d8296589d4c2fb5df21","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/da6bbdb69485fc3256030d8296589d4c2fb5df21/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"34c18342dcce9697abc6f522c3506485202e6e7e","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/34c18342dcce9697abc6f522c3506485202e6e7e","html_url":"https://github.com/PyGithub/PyGithub/commit/34c18342dcce9697abc6f522c3506485202e6e7e"},{"sha":"ee29deddd27480401db484733ecde9e7b1df5eda","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ee29deddd27480401db484733ecde9e7b1df5eda","html_url":"https://github.com/PyGithub/PyGithub/commit/ee29deddd27480401db484733ecde9e7b1df5eda"}]},{"sha":"34c18342dcce9697abc6f522c3506485202e6e7e","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:37:30Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:37:30Z"},"message":"Merge branch 'topic/ExposeRawData' into develop","tree":{"sha":"a8debc5ced39b2846b129f7876d7b09708cef77b","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/a8debc5ced39b2846b129f7876d7b09708cef77b"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/34c18342dcce9697abc6f522c3506485202e6e7e","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/34c18342dcce9697abc6f522c3506485202e6e7e","html_url":"https://github.com/PyGithub/PyGithub/commit/34c18342dcce9697abc6f522c3506485202e6e7e","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/34c18342dcce9697abc6f522c3506485202e6e7e/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"5d02de6f82a36753a2d715dd8875fc5c60e4cef6","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5d02de6f82a36753a2d715dd8875fc5c60e4cef6","html_url":"https://github.com/PyGithub/PyGithub/commit/5d02de6f82a36753a2d715dd8875fc5c60e4cef6"},{"sha":"040f024cf4bbbebe4dfe35d29854f398a0e2117e","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/040f024cf4bbbebe4dfe35d29854f398a0e2117e","html_url":"https://github.com/PyGithub/PyGithub/commit/040f024cf4bbbebe4dfe35d29854f398a0e2117e"}]},{"sha":"ee29deddd27480401db484733ecde9e7b1df5eda","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:36:35Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:36:35Z"},"message":"Complete doc/apis.rst (pull #148)","tree":{"sha":"89260e5c29aca09e440e2a3989017cc194b47bcc","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/89260e5c29aca09e440e2a3989017cc194b47bcc"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/ee29deddd27480401db484733ecde9e7b1df5eda","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ee29deddd27480401db484733ecde9e7b1df5eda","html_url":"https://github.com/PyGithub/PyGithub/commit/ee29deddd27480401db484733ecde9e7b1df5eda","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ee29deddd27480401db484733ecde9e7b1df5eda/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32","html_url":"https://github.com/PyGithub/PyGithub/commit/0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32"}]}] https GET @@ -18,4 +18,4 @@ None None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '54863'), ('server', 'GitHub.com'), ('last-modified', 'Tue, 19 Mar 2013 21:07:42 GMT'), ('x-ratelimit-limit', '5000'), ('link', '; rel="first"'), ('etag', '"8258d1301946e26d0951ed19a62b5770"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 19 Aug 2013 21:23:00 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1376950974')] -[{"sha":"0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:07:42Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:07:42Z"},"message":"Improve test coverage (pull #148)","tree":{"sha":"1abc0c2cec68aa8cb836475de9a38d6dad198dff","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/1abc0c2cec68aa8cb836475de9a38d6dad198dff"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32","html_url":"https://github.com/jacquev6/PyGithub/commit/0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"edcf40bc7f25d1aff5c404406fbb37ad1bcf691e","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/edcf40bc7f25d1aff5c404406fbb37ad1bcf691e","html_url":"https://github.com/jacquev6/PyGithub/commit/edcf40bc7f25d1aff5c404406fbb37ad1bcf691e"}]},{"sha":"edcf40bc7f25d1aff5c404406fbb37ad1bcf691e","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:07:29Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:07:29Z"},"message":"Move get_notification(s) to AuthenticatedUser (pull #148)","tree":{"sha":"947fbb709f47ea922ee93babdba30035970ab36b","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/947fbb709f47ea922ee93babdba30035970ab36b"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/edcf40bc7f25d1aff5c404406fbb37ad1bcf691e","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/edcf40bc7f25d1aff5c404406fbb37ad1bcf691e","html_url":"https://github.com/jacquev6/PyGithub/commit/edcf40bc7f25d1aff5c404406fbb37ad1bcf691e","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/edcf40bc7f25d1aff5c404406fbb37ad1bcf691e/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"f25c54e1d4eefb11c18f3de85270a4b19edea3ce","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f25c54e1d4eefb11c18f3de85270a4b19edea3ce","html_url":"https://github.com/jacquev6/PyGithub/commit/f25c54e1d4eefb11c18f3de85270a4b19edea3ce"}]},{"sha":"f25c54e1d4eefb11c18f3de85270a4b19edea3ce","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T20:27:34Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T20:27:34Z"},"message":"Fix documentation (pull #148)\n\nI had to separate class NotificationSubject in its own file, to cope\nwith my basic doc generation.","tree":{"sha":"66997949fd7a929bf1b2ae0d1d9bea09eab0e743","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/66997949fd7a929bf1b2ae0d1d9bea09eab0e743"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/f25c54e1d4eefb11c18f3de85270a4b19edea3ce","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f25c54e1d4eefb11c18f3de85270a4b19edea3ce","html_url":"https://github.com/jacquev6/PyGithub/commit/f25c54e1d4eefb11c18f3de85270a4b19edea3ce","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f25c54e1d4eefb11c18f3de85270a4b19edea3ce/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"23d668f11bdd806a871e0979bf5295d001f66ef2","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/23d668f11bdd806a871e0979bf5295d001f66ef2","html_url":"https://github.com/jacquev6/PyGithub/commit/23d668f11bdd806a871e0979bf5295d001f66ef2"}]},{"sha":"23d668f11bdd806a871e0979bf5295d001f66ef2","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T20:26:28Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T20:26:28Z"},"message":"Remove debug print (pull #148)","tree":{"sha":"72c53c895578a8fd7ce3686de239e4817bdac4ab","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/72c53c895578a8fd7ce3686de239e4817bdac4ab"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/23d668f11bdd806a871e0979bf5295d001f66ef2","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/23d668f11bdd806a871e0979bf5295d001f66ef2","html_url":"https://github.com/jacquev6/PyGithub/commit/23d668f11bdd806a871e0979bf5295d001f66ef2","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/23d668f11bdd806a871e0979bf5295d001f66ef2/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"50a243671f1fa139cb1186c4a44c1e96b8cd5749","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/50a243671f1fa139cb1186c4a44c1e96b8cd5749","html_url":"https://github.com/jacquev6/PyGithub/commit/50a243671f1fa139cb1186c4a44c1e96b8cd5749"}]},{"sha":"50a243671f1fa139cb1186c4a44c1e96b8cd5749","commit":{"author":{"name":"Peter Golm","email":"golm.peter@gmail.com","date":"2013-03-16T16:35:08Z"},"committer":{"name":"Peter Golm","email":"golm.peter@gmail.com","date":"2013-03-16T16:35:08Z"},"message":"Merge remote-tracking branch 'origin/develop' into NotificationAPI","tree":{"sha":"8f94dd4410d42c8f3d5d6429da010b782e894213","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/8f94dd4410d42c8f3d5d6429da010b782e894213"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/50a243671f1fa139cb1186c4a44c1e96b8cd5749","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/50a243671f1fa139cb1186c4a44c1e96b8cd5749","html_url":"https://github.com/jacquev6/PyGithub/commit/50a243671f1fa139cb1186c4a44c1e96b8cd5749","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/50a243671f1fa139cb1186c4a44c1e96b8cd5749/comments","author":{"login":"pgolm","id":1444194,"avatar_url":"https://2.gravatar.com/avatar/c6d6b2eb927ed858092c47da9f150372?d=https%3A%2F%2Fidenticons.github.com%2F57b229318d141b9912e2aa86fa75f97f.png","gravatar_id":"c6d6b2eb927ed858092c47da9f150372","url":"https://api.github.com/users/pgolm","html_url":"https://github.com/pgolm","followers_url":"https://api.github.com/users/pgolm/followers","following_url":"https://api.github.com/users/pgolm/following{/other_user}","gists_url":"https://api.github.com/users/pgolm/gists{/gist_id}","starred_url":"https://api.github.com/users/pgolm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pgolm/subscriptions","organizations_url":"https://api.github.com/users/pgolm/orgs","repos_url":"https://api.github.com/users/pgolm/repos","events_url":"https://api.github.com/users/pgolm/events{/privacy}","received_events_url":"https://api.github.com/users/pgolm/received_events","type":"User"},"committer":{"login":"pgolm","id":1444194,"avatar_url":"https://2.gravatar.com/avatar/c6d6b2eb927ed858092c47da9f150372?d=https%3A%2F%2Fidenticons.github.com%2F57b229318d141b9912e2aa86fa75f97f.png","gravatar_id":"c6d6b2eb927ed858092c47da9f150372","url":"https://api.github.com/users/pgolm","html_url":"https://github.com/pgolm","followers_url":"https://api.github.com/users/pgolm/followers","following_url":"https://api.github.com/users/pgolm/following{/other_user}","gists_url":"https://api.github.com/users/pgolm/gists{/gist_id}","starred_url":"https://api.github.com/users/pgolm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pgolm/subscriptions","organizations_url":"https://api.github.com/users/pgolm/orgs","repos_url":"https://api.github.com/users/pgolm/repos","events_url":"https://api.github.com/users/pgolm/events{/privacy}","received_events_url":"https://api.github.com/users/pgolm/received_events","type":"User"},"parents":[{"sha":"6a3a384fd0decac1203db6c2bddc58039b0390bc","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6a3a384fd0decac1203db6c2bddc58039b0390bc","html_url":"https://github.com/jacquev6/PyGithub/commit/6a3a384fd0decac1203db6c2bddc58039b0390bc"},{"sha":"82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f","html_url":"https://github.com/jacquev6/PyGithub/commit/82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f"}]},{"sha":"6a3a384fd0decac1203db6c2bddc58039b0390bc","commit":{"author":{"name":"Peter Golm","email":"golm.peter@gmail.com","date":"2013-03-16T16:28:56Z"},"committer":{"name":"Peter Golm","email":"golm.peter@gmail.com","date":"2013-03-16T16:28:56Z"},"message":"this fixes #108","tree":{"sha":"8c3c3fafcad82f526f7dbf68bfa5a969e089a4ba","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/8c3c3fafcad82f526f7dbf68bfa5a969e089a4ba"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/6a3a384fd0decac1203db6c2bddc58039b0390bc","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6a3a384fd0decac1203db6c2bddc58039b0390bc","html_url":"https://github.com/jacquev6/PyGithub/commit/6a3a384fd0decac1203db6c2bddc58039b0390bc","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6a3a384fd0decac1203db6c2bddc58039b0390bc/comments","author":{"login":"pgolm","id":1444194,"avatar_url":"https://2.gravatar.com/avatar/c6d6b2eb927ed858092c47da9f150372?d=https%3A%2F%2Fidenticons.github.com%2F57b229318d141b9912e2aa86fa75f97f.png","gravatar_id":"c6d6b2eb927ed858092c47da9f150372","url":"https://api.github.com/users/pgolm","html_url":"https://github.com/pgolm","followers_url":"https://api.github.com/users/pgolm/followers","following_url":"https://api.github.com/users/pgolm/following{/other_user}","gists_url":"https://api.github.com/users/pgolm/gists{/gist_id}","starred_url":"https://api.github.com/users/pgolm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pgolm/subscriptions","organizations_url":"https://api.github.com/users/pgolm/orgs","repos_url":"https://api.github.com/users/pgolm/repos","events_url":"https://api.github.com/users/pgolm/events{/privacy}","received_events_url":"https://api.github.com/users/pgolm/received_events","type":"User"},"committer":{"login":"pgolm","id":1444194,"avatar_url":"https://2.gravatar.com/avatar/c6d6b2eb927ed858092c47da9f150372?d=https%3A%2F%2Fidenticons.github.com%2F57b229318d141b9912e2aa86fa75f97f.png","gravatar_id":"c6d6b2eb927ed858092c47da9f150372","url":"https://api.github.com/users/pgolm","html_url":"https://github.com/pgolm","followers_url":"https://api.github.com/users/pgolm/followers","following_url":"https://api.github.com/users/pgolm/following{/other_user}","gists_url":"https://api.github.com/users/pgolm/gists{/gist_id}","starred_url":"https://api.github.com/users/pgolm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pgolm/subscriptions","organizations_url":"https://api.github.com/users/pgolm/orgs","repos_url":"https://api.github.com/users/pgolm/repos","events_url":"https://api.github.com/users/pgolm/events{/privacy}","received_events_url":"https://api.github.com/users/pgolm/received_events","type":"User"},"parents":[{"sha":"03a256a4052cacea998d8205a83d5b5465f31e18","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/03a256a4052cacea998d8205a83d5b5465f31e18","html_url":"https://github.com/jacquev6/PyGithub/commit/03a256a4052cacea998d8205a83d5b5465f31e18"}]},{"sha":"82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T11:27:12Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T11:27:12Z"},"message":"dos2unix","tree":{"sha":"d4875bc05568315fed5deace26e63a4b5e6c520f","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/d4875bc05568315fed5deace26e63a4b5e6c520f"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f","html_url":"https://github.com/jacquev6/PyGithub/commit/82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"6ac783974d3985dd0c162c1e8d1150615cc0082e","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6ac783974d3985dd0c162c1e8d1150615cc0082e","html_url":"https://github.com/jacquev6/PyGithub/commit/6ac783974d3985dd0c162c1e8d1150615cc0082e"}]},{"sha":"6ac783974d3985dd0c162c1e8d1150615cc0082e","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T11:26:34Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T11:26:34Z"},"message":"Use assertTrue and assertFalse where applicable","tree":{"sha":"e4eb64be8c5d729b3891cda01a2a1ae7e221e31c","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e4eb64be8c5d729b3891cda01a2a1ae7e221e31c"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/6ac783974d3985dd0c162c1e8d1150615cc0082e","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6ac783974d3985dd0c162c1e8d1150615cc0082e","html_url":"https://github.com/jacquev6/PyGithub/commit/6ac783974d3985dd0c162c1e8d1150615cc0082e","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6ac783974d3985dd0c162c1e8d1150615cc0082e/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6","html_url":"https://github.com/jacquev6/PyGithub/commit/0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6"}]},{"sha":"0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T11:17:33Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T11:17:33Z"},"message":"Merge branch 'topic/PaginatedListPerPage' into develop","tree":{"sha":"652285e28342a2da2086a62e724b6ed2a168afcf","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/652285e28342a2da2086a62e724b6ed2a168afcf"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6","html_url":"https://github.com/jacquev6/PyGithub/commit/0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"4f1780f427eba400cbc06897e69eda0ecdecd887","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4f1780f427eba400cbc06897e69eda0ecdecd887","html_url":"https://github.com/jacquev6/PyGithub/commit/4f1780f427eba400cbc06897e69eda0ecdecd887"},{"sha":"e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd","html_url":"https://github.com/jacquev6/PyGithub/commit/e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd"}]},{"sha":"e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-11T21:23:33Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T11:01:41Z"},"message":"Add Github.per_page to tweak PaginatedList (Issue #145)","tree":{"sha":"652285e28342a2da2086a62e724b6ed2a168afcf","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/652285e28342a2da2086a62e724b6ed2a168afcf"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd","html_url":"https://github.com/jacquev6/PyGithub/commit/e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"4f1780f427eba400cbc06897e69eda0ecdecd887","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4f1780f427eba400cbc06897e69eda0ecdecd887","html_url":"https://github.com/jacquev6/PyGithub/commit/4f1780f427eba400cbc06897e69eda0ecdecd887"}]},{"sha":"4f1780f427eba400cbc06897e69eda0ecdecd887","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T10:59:37Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T10:59:37Z"},"message":"Merge branch 'topic/FixPythonVersions' into develop","tree":{"sha":"db911b11ccf50b20273c8062a574aaba3fa6b7be","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/db911b11ccf50b20273c8062a574aaba3fa6b7be"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4f1780f427eba400cbc06897e69eda0ecdecd887","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4f1780f427eba400cbc06897e69eda0ecdecd887","html_url":"https://github.com/jacquev6/PyGithub/commit/4f1780f427eba400cbc06897e69eda0ecdecd887","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4f1780f427eba400cbc06897e69eda0ecdecd887/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"03a256a4052cacea998d8205a83d5b5465f31e18","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/03a256a4052cacea998d8205a83d5b5465f31e18","html_url":"https://github.com/jacquev6/PyGithub/commit/03a256a4052cacea998d8205a83d5b5465f31e18"},{"sha":"28648a51a15e430b85d6fe8f2514e1cb06bc76b8","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/28648a51a15e430b85d6fe8f2514e1cb06bc76b8","html_url":"https://github.com/jacquev6/PyGithub/commit/28648a51a15e430b85d6fe8f2514e1cb06bc76b8"}]},{"sha":"28648a51a15e430b85d6fe8f2514e1cb06bc76b8","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-12T09:25:15Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-12T09:25:15Z"},"message":"Fix for Python 2.5","tree":{"sha":"db911b11ccf50b20273c8062a574aaba3fa6b7be","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/db911b11ccf50b20273c8062a574aaba3fa6b7be"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/28648a51a15e430b85d6fe8f2514e1cb06bc76b8","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/28648a51a15e430b85d6fe8f2514e1cb06bc76b8","html_url":"https://github.com/jacquev6/PyGithub/commit/28648a51a15e430b85d6fe8f2514e1cb06bc76b8","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/28648a51a15e430b85d6fe8f2514e1cb06bc76b8/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"a39f421ca24bd7aae984f8703159c7e30798a121","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a39f421ca24bd7aae984f8703159c7e30798a121","html_url":"https://github.com/jacquev6/PyGithub/commit/a39f421ca24bd7aae984f8703159c7e30798a121"}]},{"sha":"a39f421ca24bd7aae984f8703159c7e30798a121","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-12T09:16:06Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-12T09:16:06Z"},"message":"Avoid confusion between github/ and Github.py on case-insensitive file systems (#143)","tree":{"sha":"b54edada88d20ca770ccaf2f209b7b3a5753a54f","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b54edada88d20ca770ccaf2f209b7b3a5753a54f"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a39f421ca24bd7aae984f8703159c7e30798a121","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a39f421ca24bd7aae984f8703159c7e30798a121","html_url":"https://github.com/jacquev6/PyGithub/commit/a39f421ca24bd7aae984f8703159c7e30798a121","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a39f421ca24bd7aae984f8703159c7e30798a121/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"86fe370b97b62548317cb35bc02ece3fabb7fa03","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/86fe370b97b62548317cb35bc02ece3fabb7fa03","html_url":"https://github.com/jacquev6/PyGithub/commit/86fe370b97b62548317cb35bc02ece3fabb7fa03"}]},{"sha":"86fe370b97b62548317cb35bc02ece3fabb7fa03","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:47:22Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:47:22Z"},"message":"Merge branch 'master' into develop","tree":{"sha":"463b765c51f71b1448ecfc92632cea699c363303","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/463b765c51f71b1448ecfc92632cea699c363303"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/86fe370b97b62548317cb35bc02ece3fabb7fa03","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/86fe370b97b62548317cb35bc02ece3fabb7fa03","html_url":"https://github.com/jacquev6/PyGithub/commit/86fe370b97b62548317cb35bc02ece3fabb7fa03","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/86fe370b97b62548317cb35bc02ece3fabb7fa03/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"fc491bfdb6935d98df983006c929f7962712576c","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fc491bfdb6935d98df983006c929f7962712576c","html_url":"https://github.com/jacquev6/PyGithub/commit/fc491bfdb6935d98df983006c929f7962712576c"},{"sha":"03a256a4052cacea998d8205a83d5b5465f31e18","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/03a256a4052cacea998d8205a83d5b5465f31e18","html_url":"https://github.com/jacquev6/PyGithub/commit/03a256a4052cacea998d8205a83d5b5465f31e18"}]},{"sha":"03a256a4052cacea998d8205a83d5b5465f31e18","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:44:25Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:44:25Z"},"message":"Publish version 1.12.2","tree":{"sha":"710f92971992e7d33426921172fcb2527a7f608d","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/710f92971992e7d33426921172fcb2527a7f608d"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/03a256a4052cacea998d8205a83d5b5465f31e18","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/03a256a4052cacea998d8205a83d5b5465f31e18","html_url":"https://github.com/jacquev6/PyGithub/commit/03a256a4052cacea998d8205a83d5b5465f31e18","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/03a256a4052cacea998d8205a83d5b5465f31e18/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"9e6b086c2db5e4884484a04934f6f2e53e3f441b","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/9e6b086c2db5e4884484a04934f6f2e53e3f441b","html_url":"https://github.com/jacquev6/PyGithub/commit/9e6b086c2db5e4884484a04934f6f2e53e3f441b"}]},{"sha":"9e6b086c2db5e4884484a04934f6f2e53e3f441b","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:35:50Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:35:50Z"},"message":"Remove a deprecation warning","tree":{"sha":"a8205550281bec9fde58bb7014df2a04c27b765b","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/a8205550281bec9fde58bb7014df2a04c27b765b"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/9e6b086c2db5e4884484a04934f6f2e53e3f441b","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/9e6b086c2db5e4884484a04934f6f2e53e3f441b","html_url":"https://github.com/jacquev6/PyGithub/commit/9e6b086c2db5e4884484a04934f6f2e53e3f441b","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/9e6b086c2db5e4884484a04934f6f2e53e3f441b/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"0ddb34d987b5a03813fdfa2fac13c933834a4804","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0ddb34d987b5a03813fdfa2fac13c933834a4804","html_url":"https://github.com/jacquev6/PyGithub/commit/0ddb34d987b5a03813fdfa2fac13c933834a4804"}]},{"sha":"0ddb34d987b5a03813fdfa2fac13c933834a4804","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:32:10Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:32:10Z"},"message":"Fix decoding on Python3 (bytes instead of str) (Issue #142)","tree":{"sha":"e00c7a4c3cbadbe2c00c8bc14425b3dcc410f629","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e00c7a4c3cbadbe2c00c8bc14425b3dcc410f629"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0ddb34d987b5a03813fdfa2fac13c933834a4804","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0ddb34d987b5a03813fdfa2fac13c933834a4804","html_url":"https://github.com/jacquev6/PyGithub/commit/0ddb34d987b5a03813fdfa2fac13c933834a4804","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0ddb34d987b5a03813fdfa2fac13c933834a4804/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"67bdf8c0be32dc195a4545bf90100a1b55eebf45","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/67bdf8c0be32dc195a4545bf90100a1b55eebf45","html_url":"https://github.com/jacquev6/PyGithub/commit/67bdf8c0be32dc195a4545bf90100a1b55eebf45"}]}] +[{"sha":"0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:07:42Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:07:42Z"},"message":"Improve test coverage (pull #148)","tree":{"sha":"1abc0c2cec68aa8cb836475de9a38d6dad198dff","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/1abc0c2cec68aa8cb836475de9a38d6dad198dff"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32","html_url":"https://github.com/PyGithub/PyGithub/commit/0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0901df1a2bed3f993cfe6e0d4cff5923bbf6ce32/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"edcf40bc7f25d1aff5c404406fbb37ad1bcf691e","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/edcf40bc7f25d1aff5c404406fbb37ad1bcf691e","html_url":"https://github.com/PyGithub/PyGithub/commit/edcf40bc7f25d1aff5c404406fbb37ad1bcf691e"}]},{"sha":"edcf40bc7f25d1aff5c404406fbb37ad1bcf691e","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:07:29Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T21:07:29Z"},"message":"Move get_notification(s) to AuthenticatedUser (pull #148)","tree":{"sha":"947fbb709f47ea922ee93babdba30035970ab36b","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/947fbb709f47ea922ee93babdba30035970ab36b"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/edcf40bc7f25d1aff5c404406fbb37ad1bcf691e","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/edcf40bc7f25d1aff5c404406fbb37ad1bcf691e","html_url":"https://github.com/PyGithub/PyGithub/commit/edcf40bc7f25d1aff5c404406fbb37ad1bcf691e","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/edcf40bc7f25d1aff5c404406fbb37ad1bcf691e/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"f25c54e1d4eefb11c18f3de85270a4b19edea3ce","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f25c54e1d4eefb11c18f3de85270a4b19edea3ce","html_url":"https://github.com/PyGithub/PyGithub/commit/f25c54e1d4eefb11c18f3de85270a4b19edea3ce"}]},{"sha":"f25c54e1d4eefb11c18f3de85270a4b19edea3ce","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T20:27:34Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T20:27:34Z"},"message":"Fix documentation (pull #148)\n\nI had to separate class NotificationSubject in its own file, to cope\nwith my basic doc generation.","tree":{"sha":"66997949fd7a929bf1b2ae0d1d9bea09eab0e743","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/66997949fd7a929bf1b2ae0d1d9bea09eab0e743"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/f25c54e1d4eefb11c18f3de85270a4b19edea3ce","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f25c54e1d4eefb11c18f3de85270a4b19edea3ce","html_url":"https://github.com/PyGithub/PyGithub/commit/f25c54e1d4eefb11c18f3de85270a4b19edea3ce","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f25c54e1d4eefb11c18f3de85270a4b19edea3ce/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"23d668f11bdd806a871e0979bf5295d001f66ef2","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/23d668f11bdd806a871e0979bf5295d001f66ef2","html_url":"https://github.com/PyGithub/PyGithub/commit/23d668f11bdd806a871e0979bf5295d001f66ef2"}]},{"sha":"23d668f11bdd806a871e0979bf5295d001f66ef2","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T20:26:28Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-19T20:26:28Z"},"message":"Remove debug print (pull #148)","tree":{"sha":"72c53c895578a8fd7ce3686de239e4817bdac4ab","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/72c53c895578a8fd7ce3686de239e4817bdac4ab"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/23d668f11bdd806a871e0979bf5295d001f66ef2","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/23d668f11bdd806a871e0979bf5295d001f66ef2","html_url":"https://github.com/PyGithub/PyGithub/commit/23d668f11bdd806a871e0979bf5295d001f66ef2","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/23d668f11bdd806a871e0979bf5295d001f66ef2/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"50a243671f1fa139cb1186c4a44c1e96b8cd5749","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/50a243671f1fa139cb1186c4a44c1e96b8cd5749","html_url":"https://github.com/PyGithub/PyGithub/commit/50a243671f1fa139cb1186c4a44c1e96b8cd5749"}]},{"sha":"50a243671f1fa139cb1186c4a44c1e96b8cd5749","commit":{"author":{"name":"Peter Golm","email":"golm.peter@gmail.com","date":"2013-03-16T16:35:08Z"},"committer":{"name":"Peter Golm","email":"golm.peter@gmail.com","date":"2013-03-16T16:35:08Z"},"message":"Merge remote-tracking branch 'origin/develop' into NotificationAPI","tree":{"sha":"8f94dd4410d42c8f3d5d6429da010b782e894213","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/8f94dd4410d42c8f3d5d6429da010b782e894213"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/50a243671f1fa139cb1186c4a44c1e96b8cd5749","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/50a243671f1fa139cb1186c4a44c1e96b8cd5749","html_url":"https://github.com/PyGithub/PyGithub/commit/50a243671f1fa139cb1186c4a44c1e96b8cd5749","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/50a243671f1fa139cb1186c4a44c1e96b8cd5749/comments","author":{"login":"pgolm","id":1444194,"avatar_url":"https://2.gravatar.com/avatar/c6d6b2eb927ed858092c47da9f150372?d=https%3A%2F%2Fidenticons.github.com%2F57b229318d141b9912e2aa86fa75f97f.png","gravatar_id":"c6d6b2eb927ed858092c47da9f150372","url":"https://api.github.com/users/pgolm","html_url":"https://github.com/pgolm","followers_url":"https://api.github.com/users/pgolm/followers","following_url":"https://api.github.com/users/pgolm/following{/other_user}","gists_url":"https://api.github.com/users/pgolm/gists{/gist_id}","starred_url":"https://api.github.com/users/pgolm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pgolm/subscriptions","organizations_url":"https://api.github.com/users/pgolm/orgs","repos_url":"https://api.github.com/users/pgolm/repos","events_url":"https://api.github.com/users/pgolm/events{/privacy}","received_events_url":"https://api.github.com/users/pgolm/received_events","type":"User"},"committer":{"login":"pgolm","id":1444194,"avatar_url":"https://2.gravatar.com/avatar/c6d6b2eb927ed858092c47da9f150372?d=https%3A%2F%2Fidenticons.github.com%2F57b229318d141b9912e2aa86fa75f97f.png","gravatar_id":"c6d6b2eb927ed858092c47da9f150372","url":"https://api.github.com/users/pgolm","html_url":"https://github.com/pgolm","followers_url":"https://api.github.com/users/pgolm/followers","following_url":"https://api.github.com/users/pgolm/following{/other_user}","gists_url":"https://api.github.com/users/pgolm/gists{/gist_id}","starred_url":"https://api.github.com/users/pgolm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pgolm/subscriptions","organizations_url":"https://api.github.com/users/pgolm/orgs","repos_url":"https://api.github.com/users/pgolm/repos","events_url":"https://api.github.com/users/pgolm/events{/privacy}","received_events_url":"https://api.github.com/users/pgolm/received_events","type":"User"},"parents":[{"sha":"6a3a384fd0decac1203db6c2bddc58039b0390bc","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6a3a384fd0decac1203db6c2bddc58039b0390bc","html_url":"https://github.com/PyGithub/PyGithub/commit/6a3a384fd0decac1203db6c2bddc58039b0390bc"},{"sha":"82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f","html_url":"https://github.com/PyGithub/PyGithub/commit/82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f"}]},{"sha":"6a3a384fd0decac1203db6c2bddc58039b0390bc","commit":{"author":{"name":"Peter Golm","email":"golm.peter@gmail.com","date":"2013-03-16T16:28:56Z"},"committer":{"name":"Peter Golm","email":"golm.peter@gmail.com","date":"2013-03-16T16:28:56Z"},"message":"this fixes #108","tree":{"sha":"8c3c3fafcad82f526f7dbf68bfa5a969e089a4ba","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/8c3c3fafcad82f526f7dbf68bfa5a969e089a4ba"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/6a3a384fd0decac1203db6c2bddc58039b0390bc","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6a3a384fd0decac1203db6c2bddc58039b0390bc","html_url":"https://github.com/PyGithub/PyGithub/commit/6a3a384fd0decac1203db6c2bddc58039b0390bc","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6a3a384fd0decac1203db6c2bddc58039b0390bc/comments","author":{"login":"pgolm","id":1444194,"avatar_url":"https://2.gravatar.com/avatar/c6d6b2eb927ed858092c47da9f150372?d=https%3A%2F%2Fidenticons.github.com%2F57b229318d141b9912e2aa86fa75f97f.png","gravatar_id":"c6d6b2eb927ed858092c47da9f150372","url":"https://api.github.com/users/pgolm","html_url":"https://github.com/pgolm","followers_url":"https://api.github.com/users/pgolm/followers","following_url":"https://api.github.com/users/pgolm/following{/other_user}","gists_url":"https://api.github.com/users/pgolm/gists{/gist_id}","starred_url":"https://api.github.com/users/pgolm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pgolm/subscriptions","organizations_url":"https://api.github.com/users/pgolm/orgs","repos_url":"https://api.github.com/users/pgolm/repos","events_url":"https://api.github.com/users/pgolm/events{/privacy}","received_events_url":"https://api.github.com/users/pgolm/received_events","type":"User"},"committer":{"login":"pgolm","id":1444194,"avatar_url":"https://2.gravatar.com/avatar/c6d6b2eb927ed858092c47da9f150372?d=https%3A%2F%2Fidenticons.github.com%2F57b229318d141b9912e2aa86fa75f97f.png","gravatar_id":"c6d6b2eb927ed858092c47da9f150372","url":"https://api.github.com/users/pgolm","html_url":"https://github.com/pgolm","followers_url":"https://api.github.com/users/pgolm/followers","following_url":"https://api.github.com/users/pgolm/following{/other_user}","gists_url":"https://api.github.com/users/pgolm/gists{/gist_id}","starred_url":"https://api.github.com/users/pgolm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pgolm/subscriptions","organizations_url":"https://api.github.com/users/pgolm/orgs","repos_url":"https://api.github.com/users/pgolm/repos","events_url":"https://api.github.com/users/pgolm/events{/privacy}","received_events_url":"https://api.github.com/users/pgolm/received_events","type":"User"},"parents":[{"sha":"03a256a4052cacea998d8205a83d5b5465f31e18","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/03a256a4052cacea998d8205a83d5b5465f31e18","html_url":"https://github.com/PyGithub/PyGithub/commit/03a256a4052cacea998d8205a83d5b5465f31e18"}]},{"sha":"82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T11:27:12Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T11:27:12Z"},"message":"dos2unix","tree":{"sha":"d4875bc05568315fed5deace26e63a4b5e6c520f","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/d4875bc05568315fed5deace26e63a4b5e6c520f"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f","html_url":"https://github.com/PyGithub/PyGithub/commit/82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/82f5b4c61f86ae8c7cc85a31cb1a31180eeae32f/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"6ac783974d3985dd0c162c1e8d1150615cc0082e","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6ac783974d3985dd0c162c1e8d1150615cc0082e","html_url":"https://github.com/PyGithub/PyGithub/commit/6ac783974d3985dd0c162c1e8d1150615cc0082e"}]},{"sha":"6ac783974d3985dd0c162c1e8d1150615cc0082e","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T11:26:34Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T11:26:34Z"},"message":"Use assertTrue and assertFalse where applicable","tree":{"sha":"e4eb64be8c5d729b3891cda01a2a1ae7e221e31c","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/e4eb64be8c5d729b3891cda01a2a1ae7e221e31c"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/6ac783974d3985dd0c162c1e8d1150615cc0082e","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6ac783974d3985dd0c162c1e8d1150615cc0082e","html_url":"https://github.com/PyGithub/PyGithub/commit/6ac783974d3985dd0c162c1e8d1150615cc0082e","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/6ac783974d3985dd0c162c1e8d1150615cc0082e/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6","html_url":"https://github.com/PyGithub/PyGithub/commit/0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6"}]},{"sha":"0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T11:17:33Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T11:17:33Z"},"message":"Merge branch 'topic/PaginatedListPerPage' into develop","tree":{"sha":"652285e28342a2da2086a62e724b6ed2a168afcf","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/652285e28342a2da2086a62e724b6ed2a168afcf"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6","html_url":"https://github.com/PyGithub/PyGithub/commit/0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0f9bb5d9fd2dcfbf03f094362e86323c9ef915e6/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"4f1780f427eba400cbc06897e69eda0ecdecd887","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4f1780f427eba400cbc06897e69eda0ecdecd887","html_url":"https://github.com/PyGithub/PyGithub/commit/4f1780f427eba400cbc06897e69eda0ecdecd887"},{"sha":"e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd","html_url":"https://github.com/PyGithub/PyGithub/commit/e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd"}]},{"sha":"e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-11T21:23:33Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T11:01:41Z"},"message":"Add Github.per_page to tweak PaginatedList (Issue #145)","tree":{"sha":"652285e28342a2da2086a62e724b6ed2a168afcf","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/652285e28342a2da2086a62e724b6ed2a168afcf"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd","html_url":"https://github.com/PyGithub/PyGithub/commit/e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e25a6a49d1ab1a10c84db9b6722a6186ff6dfcbd/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"4f1780f427eba400cbc06897e69eda0ecdecd887","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4f1780f427eba400cbc06897e69eda0ecdecd887","html_url":"https://github.com/PyGithub/PyGithub/commit/4f1780f427eba400cbc06897e69eda0ecdecd887"}]},{"sha":"4f1780f427eba400cbc06897e69eda0ecdecd887","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T10:59:37Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-14T10:59:37Z"},"message":"Merge branch 'topic/FixPythonVersions' into develop","tree":{"sha":"db911b11ccf50b20273c8062a574aaba3fa6b7be","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/db911b11ccf50b20273c8062a574aaba3fa6b7be"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/4f1780f427eba400cbc06897e69eda0ecdecd887","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4f1780f427eba400cbc06897e69eda0ecdecd887","html_url":"https://github.com/PyGithub/PyGithub/commit/4f1780f427eba400cbc06897e69eda0ecdecd887","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4f1780f427eba400cbc06897e69eda0ecdecd887/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"03a256a4052cacea998d8205a83d5b5465f31e18","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/03a256a4052cacea998d8205a83d5b5465f31e18","html_url":"https://github.com/PyGithub/PyGithub/commit/03a256a4052cacea998d8205a83d5b5465f31e18"},{"sha":"28648a51a15e430b85d6fe8f2514e1cb06bc76b8","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/28648a51a15e430b85d6fe8f2514e1cb06bc76b8","html_url":"https://github.com/PyGithub/PyGithub/commit/28648a51a15e430b85d6fe8f2514e1cb06bc76b8"}]},{"sha":"28648a51a15e430b85d6fe8f2514e1cb06bc76b8","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-12T09:25:15Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-12T09:25:15Z"},"message":"Fix for Python 2.5","tree":{"sha":"db911b11ccf50b20273c8062a574aaba3fa6b7be","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/db911b11ccf50b20273c8062a574aaba3fa6b7be"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/28648a51a15e430b85d6fe8f2514e1cb06bc76b8","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/28648a51a15e430b85d6fe8f2514e1cb06bc76b8","html_url":"https://github.com/PyGithub/PyGithub/commit/28648a51a15e430b85d6fe8f2514e1cb06bc76b8","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/28648a51a15e430b85d6fe8f2514e1cb06bc76b8/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"a39f421ca24bd7aae984f8703159c7e30798a121","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a39f421ca24bd7aae984f8703159c7e30798a121","html_url":"https://github.com/PyGithub/PyGithub/commit/a39f421ca24bd7aae984f8703159c7e30798a121"}]},{"sha":"a39f421ca24bd7aae984f8703159c7e30798a121","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-12T09:16:06Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-12T09:16:06Z"},"message":"Avoid confusion between github/ and Github.py on case-insensitive file systems (#143)","tree":{"sha":"b54edada88d20ca770ccaf2f209b7b3a5753a54f","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b54edada88d20ca770ccaf2f209b7b3a5753a54f"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/a39f421ca24bd7aae984f8703159c7e30798a121","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a39f421ca24bd7aae984f8703159c7e30798a121","html_url":"https://github.com/PyGithub/PyGithub/commit/a39f421ca24bd7aae984f8703159c7e30798a121","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a39f421ca24bd7aae984f8703159c7e30798a121/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"86fe370b97b62548317cb35bc02ece3fabb7fa03","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/86fe370b97b62548317cb35bc02ece3fabb7fa03","html_url":"https://github.com/PyGithub/PyGithub/commit/86fe370b97b62548317cb35bc02ece3fabb7fa03"}]},{"sha":"86fe370b97b62548317cb35bc02ece3fabb7fa03","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:47:22Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:47:22Z"},"message":"Merge branch 'master' into develop","tree":{"sha":"463b765c51f71b1448ecfc92632cea699c363303","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/463b765c51f71b1448ecfc92632cea699c363303"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/86fe370b97b62548317cb35bc02ece3fabb7fa03","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/86fe370b97b62548317cb35bc02ece3fabb7fa03","html_url":"https://github.com/PyGithub/PyGithub/commit/86fe370b97b62548317cb35bc02ece3fabb7fa03","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/86fe370b97b62548317cb35bc02ece3fabb7fa03/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"fc491bfdb6935d98df983006c929f7962712576c","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/fc491bfdb6935d98df983006c929f7962712576c","html_url":"https://github.com/PyGithub/PyGithub/commit/fc491bfdb6935d98df983006c929f7962712576c"},{"sha":"03a256a4052cacea998d8205a83d5b5465f31e18","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/03a256a4052cacea998d8205a83d5b5465f31e18","html_url":"https://github.com/PyGithub/PyGithub/commit/03a256a4052cacea998d8205a83d5b5465f31e18"}]},{"sha":"03a256a4052cacea998d8205a83d5b5465f31e18","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:44:25Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:44:25Z"},"message":"Publish version 1.12.2","tree":{"sha":"710f92971992e7d33426921172fcb2527a7f608d","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/710f92971992e7d33426921172fcb2527a7f608d"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/03a256a4052cacea998d8205a83d5b5465f31e18","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/03a256a4052cacea998d8205a83d5b5465f31e18","html_url":"https://github.com/PyGithub/PyGithub/commit/03a256a4052cacea998d8205a83d5b5465f31e18","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/03a256a4052cacea998d8205a83d5b5465f31e18/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"9e6b086c2db5e4884484a04934f6f2e53e3f441b","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/9e6b086c2db5e4884484a04934f6f2e53e3f441b","html_url":"https://github.com/PyGithub/PyGithub/commit/9e6b086c2db5e4884484a04934f6f2e53e3f441b"}]},{"sha":"9e6b086c2db5e4884484a04934f6f2e53e3f441b","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:35:50Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:35:50Z"},"message":"Remove a deprecation warning","tree":{"sha":"a8205550281bec9fde58bb7014df2a04c27b765b","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/a8205550281bec9fde58bb7014df2a04c27b765b"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/9e6b086c2db5e4884484a04934f6f2e53e3f441b","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/9e6b086c2db5e4884484a04934f6f2e53e3f441b","html_url":"https://github.com/PyGithub/PyGithub/commit/9e6b086c2db5e4884484a04934f6f2e53e3f441b","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/9e6b086c2db5e4884484a04934f6f2e53e3f441b/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"0ddb34d987b5a03813fdfa2fac13c933834a4804","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0ddb34d987b5a03813fdfa2fac13c933834a4804","html_url":"https://github.com/PyGithub/PyGithub/commit/0ddb34d987b5a03813fdfa2fac13c933834a4804"}]},{"sha":"0ddb34d987b5a03813fdfa2fac13c933834a4804","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:32:10Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-03-03T17:32:10Z"},"message":"Fix decoding on Python3 (bytes instead of str) (Issue #142)","tree":{"sha":"e00c7a4c3cbadbe2c00c8bc14425b3dcc410f629","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/e00c7a4c3cbadbe2c00c8bc14425b3dcc410f629"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0ddb34d987b5a03813fdfa2fac13c933834a4804","comment_count":0},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0ddb34d987b5a03813fdfa2fac13c933834a4804","html_url":"https://github.com/PyGithub/PyGithub/commit/0ddb34d987b5a03813fdfa2fac13c933834a4804","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0ddb34d987b5a03813fdfa2fac13c933834a4804/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"67bdf8c0be32dc195a4545bf90100a1b55eebf45","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/67bdf8c0be32dc195a4545bf90100a1b55eebf45","html_url":"https://github.com/PyGithub/PyGithub/commit/67bdf8c0be32dc195a4545bf90100a1b55eebf45"}]}] diff --git a/tests/ReplayData/Repository.testGetContents.txt b/tests/ReplayData/Repository.testGetContents.txt index 94b715a31b..395b948d95 100644 --- a/tests/ReplayData/Repository.testGetContents.txt +++ b/tests/ReplayData/Repository.testGetContents.txt @@ -2,20 +2,20 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/readme +/repos/PyGithub/PyGithub/readme {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('content-length', '10787'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4997'), ('server', 'nginx/1.0.13'), ('last-modified', 'Wed, 05 Sep 2012 17:54:40 GMT'), ('connection', 'keep-alive'), ('etag', '"71786feb5f476112c5a8aa894ee7ca6c"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Sat, 08 Sep 2012 10:43:48 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"type":"file","sha":"5628799a7d517a4aaa0c1a7004d07569cd154df0","path":"ReadMe.md","encoding":"base64","_links":{"self":"https://api.github.com/repos/jacquev6/PyGithub/contents/ReadMe.md","html":"https://github.com/jacquev6/PyGithub/blob/master/ReadMe.md","git":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/5628799a7d517a4aaa0c1a7004d07569cd154df0"},"content":"VGhpcyBpcyBhIFB5dGhvbiBsaWJyYXJ5IHRvIGFjY2VzcyB0aGUgW0dpdGh1\nYiBBUEkgdjNdKGh0dHA6Ly9kZXZlbG9wZXIuZ2l0aHViLmNvbS92MykuCgpX\naXRoIGl0LCB5b3UgY2FuIG1hbmFnZSB5b3VyIFtHaXRodWJdKGh0dHA6Ly9n\naXRodWIuY29tKSByZXNvdXJjZXMgKHJlcG9zaXRvcmllcywgdXNlciBwcm9m\naWxlcywgb3JnYW5pemF0aW9ucywgZXRjLikgZnJvbSBQeXRob24gc2NyaXB0\ncy4KCkl0IGNvdmVycyB0aGUgKipmdWxsKiogQVBJLCBhbmQgYWxsIG1ldGhv\nZHMgYXJlIHRlc3RlZCBhZ2FpbnN0IHRoZSByZWFsIEdpdGh1YiBzaXRlLgoK\nU2hvdWxkIHlvdSBoYXZlIGFueSBxdWVzdGlvbiwgb3IgaWYgeW91IGZpbmQg\nYSBidWcsIG9yIGlmIHRoZXJlIGlzIHNvbWV0aGluZyB5b3UgY2FuIGRvIHdp\ndGggdGhlIEFQSSBidXQgbm90IHdpdGggUHlHaXRodWIsIHBsZWFzZSBbb3Bl\nbiBhbiBpc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL2phY3F1ZXY2L1B5R2l0\naHViL2lzc3VlcykuCgpQeUdpdGh1YiBpcyBzdGFibGUuIEkgd2lsbCBtYWlu\ndGFpbiBpdCB1cCB0byBkYXRlIHdpdGggdGhlIEFQSSwgYW5kIGZpeCBidWdz\nIGlmIGFueSwgYnV0IEkgZG9uJ3QgcGxhbiBuZXcgaGVhdnkgZGV2ZWxvcG1l\nbnRzLgoKRG93bmxvYWQgYW5kIGluc3RhbGwKPT09PT09PT09PT09PT09PT09\nPT0KClRoaXMgcGFja2FnZSBpcyBpbiB0aGUgW1B5dGhvbiBQYWNrYWdlIElu\nZGV4XShodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvUHlHaXRodWIpLCBz\nbyBgZWFzeV9pbnN0YWxsIFB5R2l0aHViYCBvciBgcGlwIGluc3RhbGwgUHlH\naXRodWJgIHNob3VsZCBiZSBlbm91Z2guCllvdSBjYW4gYWxzbyBjbG9uZSBp\ndCBvbiBbR2l0aHViXShodHRwOi8vZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdp\ndGh1YikuCgpUdXRvcmlhbAo9PT09PT09PQoKRmlyc3QgY3JlYXRlIGEgR2lo\ndHViIGluc3RhbmNlOgoKICAgIGZyb20gZ2l0aHViIGltcG9ydCBHaXRodWIK\nCiAgICBnID0gR2l0aHViKCAidXNlciIsICJwYXNzd29yZCIgKQoKVGhlbiBw\nbGF5IHdpdGggeW91ciBHaXRodWIgb2JqZWN0czoKCiAgICBmb3IgcmVwbyBp\nbiBnLmdldF91c2VyKCkuZ2V0X3JlcG9zKCk6CiAgICAgICAgcHJpbnQgcmVw\nby5uYW1lCiAgICAgICAgcmVwby5lZGl0KCBoYXNfd2lraSA9IEZhbHNlICkK\nCllvdSBjYW4gYWxzbyBjcmVhdGUgYSBHaXRodWIgaW5zdGFuY2Ugd2l0aCBh\nbiBPQXV0aCB0b2tlbjoKCiAgICBnID0gR2l0aHViKCB0b2tlbiApCgpPciB3\naXRob3V0IGF1dGhlbnRpY2F0aW9uOgoKICAgIGcgPSBHaXRodWIoKQoKTGlj\nZW5zaW5nCj09PT09PT09PQoKUHlHaXRodWIgaXMgZGlzdHJpYnV0ZWQgdW5k\nZXIgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5jZS4KU2Vl\nIGZpbGVzIENPUFlJTkcgYW5kIENPUFlJTkcuTEVTU0VSLCBhcyByZXF1ZXN0\nZWQgYnkgW0dOVV0oaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC1o\nb3d0by5odG1sKS4KClByb2plY3RzIHVzaW5nIFB5R2l0aHViCj09PT09PT09\nPT09PT09PT09PT09PT09CgooW09wZW4gYW4gaXNzdWVdKGh0dHBzOi8vZ2l0\naHViLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9pc3N1ZXMpIGlmIHlvdSB3YW50\nIHRvIGJlIGxpc3RlZCBoZXJlLCBJJ2xsIGJlIGdsYWQgdG8gYWRkIHlvdXIg\ncHJvamVjdCkKCiogW1VwdmVydGVyXShodHRwczovL3VwdmVydGVyLmNvbSkg\naXMgYSB3ZWItYmFzZWQgc2NoZW1hdGljIGNhcHR1cmUgYW5kIFBDQiBsYXlv\ndXQgdG9vbCBmb3IgcGVvcGxlIHdobyBkZXNpZ24gZWxlY3Ryb25pY3MuIERl\nc2lnbmVycyBjYW4gYXR0YWNoIGEgR2l0aHViIHByb2plY3QgdG8gYW4gVXB2\nZXJ0ZXIgcHJvamVjdC4KKiBbVHJhdGlodWJpc10oaHR0cDovL3B5cGkucHl0\naG9uLm9yZy9weXBpL3RyYXRpaHViaXMvKSBjb252ZXJ0cyBUcmFjIHRpY2tl\ndHMgdG8gR2l0aHViIGlzc3VlcwoKSGlzdG9yeQo9PT09PT09CgpbVmVyc2lv\nbiAxLjVdKGh0dHBzOi8vZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9p\nc3N1ZXM/bWlsZXN0b25lPTkmc3RhdGU9Y2xvc2VkKSAoU2VwdGVtYmVyIDV0\naCwgMjAxMikKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqIEFkZCBhIHRpbWVvdXQgb3B0\naW9uLCB0aGFuayB5b3UgbXVjaCBbeG9iYjF0XShodHRwczovL2dpdGh1Yi5j\nb20veG9iYjF0KSBmb3IgdGhlIG1lcmdlIHJlcXVlc3QuICpUaGlzIGRyb3Bz\nIFB5dGhvbiAyLjUgc3VwcG9ydCouIEkgbWF5IGJlIGFibGUgdG8gcmVzdG9y\nZSBpdCBpbiBuZXh0IHZlcnNpb24uCiogSW1wbGVtZW50IGBSZXBvc2l0b3J5\nLmRlbGV0ZWAsIHRoYW5rIHlvdSBbcG1jaGVuXShodHRwczovL2dpdGh1Yi5j\nb20vcG1jaGVuKSBmb3IgYXNraW5nCgpbVmVyc2lvbiAxLjRdKGh0dHBzOi8v\nZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9pc3N1ZXM/bWlsZXN0b25l\nPTgmc3RhdGU9Y2xvc2VkKSAoQXVndXN0IDR0aCwgMjAxMikKLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tCgoqIEFsbG93IGNvbm5lY3Rpb24gdG8gYSBjdXN0b20gR2l0aHViIFVS\nTCwgZm9yIEdpdGh1YiBFbnRlcnByaXNlLCB0aGFuayB5b3UgdmVyeSBtdWNo\nIFtlbmdpZV0oaHR0cHM6Ly9naXRodWIuY29tL2VuZ2llKSBmb3IgdGhlIG1l\ncmdlIHJlcXVlc3QKCltWZXJzaW9uIDEuM10oaHR0cHM6Ly9naXRodWIuY29t\nL2phY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxlc3RvbmU9NyZzdGF0ZT1j\nbG9zZWQpIChKdWx5IDEzdGgsIDIwMTIpCi0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqIEltcGxl\nbWVudCBbbWFya2Rvd24gcmVuZGVyaW5nXShodHRwOi8vZGV2ZWxvcGVyLmdp\ndGh1Yi5jb20vdjMvbWFya2Rvd24vKQoqIGBHaXRBdXRob3IuZGF0ZWAgaXMg\nbm93IGEgZGF0ZXRpbWUsIHRoYW5rIHlvdSBbYmlsZGVyYnVjaGldKGh0dHBz\nOi8vZ2l0aHViLmNvbS9iaWxkZXJidWNoaSkKKiBGaXggZG9jdW1lbnRhdGlv\nbiBvZiBgR2l0aHViLmdldF9naXN0YDogYGlkYCBpcyBhIHN0cmluZywgbm90\nIGFuIGludGVnZXIKCltWZXJzaW9uIDEuMl0oaHR0cHM6Ly9naXRodWIuY29t\nL2phY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxlc3RvbmU9NiZzdGF0ZT1j\nbG9zZWQpIChKdW5lIDI5dGgsIDIwMTIpCi0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqIEltcGxl\nbWVudCBbbGVnYWN5IHNlYXJjaCBBUElzXShodHRwOi8vZGV2ZWxvcGVyLmdp\ndGh1Yi5jb20vdjMvc2VhcmNoLyksIHRoYW5rIHlvdSBba3VrdXRzXShodHRw\nczovL2dpdGh1Yi5jb20va3VrdXRzKSBmb3IgdGVsbGluZyBtZSBHaXRodWIg\naGFkIHJlbGVhc2VkIHRoZW0KKiBGaXggYSBidWcgd2l0aCBpc3N1ZSBsYWJl\nbHMgY29udGFpbmluZyBzcGFjZXMsIHRoYW5rIHlvdSBbcGhpbGlwa2ltbWV5\nXShodHRwczovL2dpdGh1Yi5jb20vcGhpbGlwa2ltbWV5KSBmb3IgZGV0ZWN0\naW5nIHRoZSBidWcgYW5kIGZpeGluZyBpdAoqIENsYXJpZnkgaG93IGNvbGxl\nY3Rpb25zIG9mIG9iamVjdHMgYXJlIHJldHVybmVkIGJ5IGBnZXRfKmAgbWV0\naG9kcywgdGhhbmsgeW91IFtiaWxkZXJidWNoaV0oaHR0cHM6Ly9naXRodWIu\nY29tL2JpbGRlcmJ1Y2hpKSBmb3IgYXNraW5nCgpWZXJzaW9uIDEuMSAoSnVu\nZSAyMHRoLCAyMDEyKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK\nKiBSZXN0b3JlIGNvbXBhdGliaWxpdHkgd2l0aCBQeXRob24gMi41LCB0aGFu\nayB5b3UgW3BtdWlsdV0oaHR0cHM6Ly9naXRodWIuY29tL3BtdWlsdSkKKiBV\nc2UgYHBhY2thZ2VfZGF0YWAgaW5zdGVhZCBvZiBgZGF0YV9maWxlc2AgZm9y\nIGRvY3VtZW50YXRpb24gZmlsZXMgaW4gYHNldHVwLnB5YCwgdGhhbmsgeW91\nIFttYWxleHddKGh0dHBzOi8vZ2l0aHViLmNvbS9tYWxleHcpIGZvciByZXBv\ncnRpbmcKCltWZXJzaW9uIDEuMF0oaHR0cHM6Ly9naXRodWIuY29tL2phY3F1\nZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxlc3RvbmU9MiZzdGF0ZT1jbG9zZWQp\nIChKdW5lIDNyZCwgMjAxMikKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKKiBDb21wbGV0ZSByZXdy\naXRlLCB3aXRoIG5vIG1vcmUgY29tcGxpY2F0ZWQgbWV0YS1kZXNjcmlwdGlv\nbgoqIEZ1bGwgdHlwaW5nIG9mIGF0dHJpYnV0ZXMgYW5kIHBhcmFtZXRlcnMK\nKiBGdWxsIGRvY3VtZW50YXRpb24gb2YgYXR0cmlidXRlcyBhbmQgcGFyYW1l\ndGVycwoqIE1vcmUgdXNhYmxlIGV4Y2VwdGlvbnMgcmFpc2VkIGluIGNhc2Ug\nb24gcHJvYmxlbXMgd2l0aCB0aGUgQVBJCiogU29tZSBidWdzIGFuZCBsaW1p\ndGF0aW9ucyBmaXhlZCwgc3BlY2lhbCB0aGFua3MgdG8gW2JpbGRlcmJ1Y2hp\nXShodHRwczovL2dpdGh1Yi5jb20vYmlsZGVyYnVjaGkpLCBbcm9za2Frb3Jp\nXShodHRwczovL2dpdGh1Yi5jb20vcm9za2Frb3JpKSBhbmQgW3RhbGxmb3Jh\nc211cmZdKGh0dHBzOi8vZ2l0aHViLmNvbS90YWxsZm9yYXNtdXJmKSBmb3Ig\ncmVwb3J0aW5nIHRoZW0hCgpbVmVyc2lvbiAwLjddKGh0dHBzOi8vZ2l0aHVi\nLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9pc3N1ZXM/bWlsZXN0b25lPTUmc3Rh\ndGU9Y2xvc2VkKSAoTWF5IDI2dGgsIDIwMTIpCi0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiogVXNl\nIFB5R2l0aHViIHdpdGggT0F1dGggYXV0aGVudGljYXRpb24gb3Igd2l0aCBu\nbyBhdXRoZW50aWNhdGlvbiBhdCBhbGwKCltWZXJzaW9uIDAuNl0oaHR0cHM6\nLy9naXRodWIuY29tL2phY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxlc3Rv\nbmU9NCZzdGF0ZT1jbG9zZWQpIChBcHJpbCAxN3RoLCAyMDEyKQotLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0KCiogRml4IFtpc3N1ZSAyMV0oaHR0cHM6Ly9naXRodWIuY29tL2ph\nY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcy8yMSkgKEtleUVycm9yIHdoZW4gYWNj\nZXNzaW5nIHJlcG9zaXRvcmllcykKKiBSZS1jb21wbGV0ZWQgdGhlIEFQSSB3\naXRoIE5hbWVkVXNlci5jcmVhdGVfZ2lzdAoKCltWZXJzaW9uIDAuNV0oaHR0\ncHM6Ly9naXRodWIuY29tL2phY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxl\nc3RvbmU9MyZzdGF0ZT1jbG9zZWQpIChNYXJjaCAxOXRoLCAyMDEyKQotLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0KCiogTWFqb3IgYWNoaWV2ZW1lbnQ6ICoqYWxsIEFQSXMgYXJl\nIGltcGxlbWVudGVkKioKKiBNb3JlIHJlZmFjdG9yaW5nLCBvZiBjb3Vyc2UK\nCltWZXJzaW9uIDAuNF0oaHR0cHM6Ly9naXRodWIuY29tL2phY3F1ZXY2L1B5\nR2l0aHViL2lzc3Vlcz9taWxlc3RvbmU9MSZzdGF0ZT1jbG9zZWQpIChNYXJj\naCAxMnRoLCAyMDEyKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiogVGhlIGxpc3Qgb2YgdGhl\nIG5vdCBpbXBsZW1lbnRlZCBBUElzIGlzIHNob3J0ZXIgdGhhbiB0aGUgbGlz\ndCBvZiB0aGUgaW1wbGVtZW50ZWQgQVBJcwoqIEFQSXMgKm5vdCBpbXBsZW1l\nbnRlZCo6CiAgICAqIEdFVCBgL2dpc3RzL3B1YmxpY2AKICAgICogR0VUIGAv\naXNzdWVzYAogICAgKiBHRVQgYC9yZXBvcy86dXNlci86cmVwby9jb21wYXJl\nLzpiYXNlLi4uOmhlYWRgCiAgICAqIEdFVCBgL3JlcG9zLzp1c2VyLzpyZXBv\nL2dpdC90cmVlcy86c2hhP3JlY3Vyc2l2ZT0xYAogICAgKiBQT1NUIGAvcmVw\nb3MvOnVzZXIvOnJlcG8vZ2l0L3RyZWVzP2Jhc2VfdHJlZT1gCiogR2lzdHMK\nKiBBdXRvcml6YXRpb25zCiogS2V5cwoqIEhvb2tzCiogRXZlbnRzCiogTWVy\nZ2UgcHVsbCByZXF1ZXN0cwoqIE1vcmUgcmVmYWN0b3JpbmcsIG9uZSBtb3Jl\nIHRpbWUKClZlcnNpb24gMC4zIChGZWJydWFyeSAyNnRoLCAyMDEyKQotLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiogTW9yZSByZWZhY3Rv\ncmluZwoqIElzc3VlcywgbWlsZXN0b25lcyBhbmQgdGhlaXIgbGFiZWxzCiog\nTmFtZWRVc2VyOgogICAgKiBlbWFpbHMKKiBSZXBvc2l0b3J5OgogICAgKiBk\nb3dubG9hZHMKICAgICogdGFncywgYnJhbmNoZXMsIGNvbW1pdHMgYW5kIGNv\nbW1lbnRzIChub3QgdGhlIHNhbWUgYXMgIkdpdCBvYmplY3RzIiBvZiB2ZXJz\naW9uIDAuMikKICAgICogcHVsbCByZXF1ZXN0cyAobm8gYXV0b21hdGljIG1l\ncmdlIHlldCkKKiBBdXRvbWF0aWMgZ2VuZXJhdGlvbiBvZiB0aGUgcmVmZXJl\nbmNlIGRvY3VtZW50YXRpb24gb2YgY2xhc3Nlcywgd2l0aCBsZXNzICJzZWUg\nQVBJInMsIGFuZCBsZXNzIGVycm9ycwoKVmVyc2lvbiAwLjIgKEZlYnJ1YXJ5\nIDIzcmQsIDIwMTIpCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLQoKKiBSZWZhY3RvcmluZwoqIFRlYW1zIGRldGFpbHMgYW5kIG1vZGlmaWNh\ndGlvbgogICAgKiBiYXNpYyBhdHRyaWJ1dGVzCiAgICAqIGxpc3QgdGVhbXMg\naW4gb3JnYW5pemF0aW9ucywgb24gcmVwb3NpdG9yaWVzCiogR2l0IG9iamVj\ndHMKICAgICogY3JlYXRlIGFuZCBnZXQgdGFncywgcmVmZXJlbmNlcywgY29t\nbWl0cywgdHJlZXMsIGJsb2JzCiAgICAqIGxpc3QgYW5kIGVkaXQgcmVmZXJl\nbmNlcwoKVmVyc2lvbiAwLjEgKEZlYnJ1YXJ5IDE5dGgsIDIwMTIpCi0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKKiBVc2VyIGRldGFpbHMg\nYW5kIG1vZGlmaWNhdGlvbgogICAgKiBiYXNpYyBhdHRyaWJ1dGVzCiAgICAq\nIGZvbGxvd2VycywgZm9sbG93aW5nLCB3YXRjaGluZwogICAgKiBvcmdhbml6\nYXRpb25zCiAgICAqIHJlcG9zaXRvcmllcwoqIFJlcG9zaXRvcnkgZGV0YWls\ncyBhbmQgbW9kaWZpY2F0aW9uCiAgICAqIGJhc2ljIGF0dHJpYnV0ZXMKICAg\nICogZm9ya2luZwogICAgKiBjb2xsYWJvcmF0b3JzLCBjb250cmlidXRvcnMs\nIHdhdGNoZXJzCiogT3JnYW5pemF0aW9uIGRldGFpbHMgYW5kIG1vZGlmaWNh\ndGlvbgogICAgKiBiYXNpYyBhdHRyaWJ1dGVzCiAgICAqIG1lbWJlcnMgYW5k\nIHB1YmxpYyBtZW1iZXJzCg==\n","size":7531,"name":"ReadMe.md"} +{"type":"file","sha":"5628799a7d517a4aaa0c1a7004d07569cd154df0","path":"ReadMe.md","encoding":"base64","_links":{"self":"https://api.github.com/repos/PyGithub/PyGithub/contents/ReadMe.md","html":"https://github.com/PyGithub/PyGithub/blob/master/ReadMe.md","git":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/5628799a7d517a4aaa0c1a7004d07569cd154df0"},"content":"VGhpcyBpcyBhIFB5dGhvbiBsaWJyYXJ5IHRvIGFjY2VzcyB0aGUgW0dpdGh1\nYiBBUEkgdjNdKGh0dHA6Ly9kZXZlbG9wZXIuZ2l0aHViLmNvbS92MykuCgpX\naXRoIGl0LCB5b3UgY2FuIG1hbmFnZSB5b3VyIFtHaXRodWJdKGh0dHA6Ly9n\naXRodWIuY29tKSByZXNvdXJjZXMgKHJlcG9zaXRvcmllcywgdXNlciBwcm9m\naWxlcywgb3JnYW5pemF0aW9ucywgZXRjLikgZnJvbSBQeXRob24gc2NyaXB0\ncy4KCkl0IGNvdmVycyB0aGUgKipmdWxsKiogQVBJLCBhbmQgYWxsIG1ldGhv\nZHMgYXJlIHRlc3RlZCBhZ2FpbnN0IHRoZSByZWFsIEdpdGh1YiBzaXRlLgoK\nU2hvdWxkIHlvdSBoYXZlIGFueSBxdWVzdGlvbiwgb3IgaWYgeW91IGZpbmQg\nYSBidWcsIG9yIGlmIHRoZXJlIGlzIHNvbWV0aGluZyB5b3UgY2FuIGRvIHdp\ndGggdGhlIEFQSSBidXQgbm90IHdpdGggUHlHaXRodWIsIHBsZWFzZSBbb3Bl\nbiBhbiBpc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL2phY3F1ZXY2L1B5R2l0\naHViL2lzc3VlcykuCgpQeUdpdGh1YiBpcyBzdGFibGUuIEkgd2lsbCBtYWlu\ndGFpbiBpdCB1cCB0byBkYXRlIHdpdGggdGhlIEFQSSwgYW5kIGZpeCBidWdz\nIGlmIGFueSwgYnV0IEkgZG9uJ3QgcGxhbiBuZXcgaGVhdnkgZGV2ZWxvcG1l\nbnRzLgoKRG93bmxvYWQgYW5kIGluc3RhbGwKPT09PT09PT09PT09PT09PT09\nPT0KClRoaXMgcGFja2FnZSBpcyBpbiB0aGUgW1B5dGhvbiBQYWNrYWdlIElu\nZGV4XShodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvUHlHaXRodWIpLCBz\nbyBgZWFzeV9pbnN0YWxsIFB5R2l0aHViYCBvciBgcGlwIGluc3RhbGwgUHlH\naXRodWJgIHNob3VsZCBiZSBlbm91Z2guCllvdSBjYW4gYWxzbyBjbG9uZSBp\ndCBvbiBbR2l0aHViXShodHRwOi8vZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdp\ndGh1YikuCgpUdXRvcmlhbAo9PT09PT09PQoKRmlyc3QgY3JlYXRlIGEgR2lo\ndHViIGluc3RhbmNlOgoKICAgIGZyb20gZ2l0aHViIGltcG9ydCBHaXRodWIK\nCiAgICBnID0gR2l0aHViKCAidXNlciIsICJwYXNzd29yZCIgKQoKVGhlbiBw\nbGF5IHdpdGggeW91ciBHaXRodWIgb2JqZWN0czoKCiAgICBmb3IgcmVwbyBp\nbiBnLmdldF91c2VyKCkuZ2V0X3JlcG9zKCk6CiAgICAgICAgcHJpbnQgcmVw\nby5uYW1lCiAgICAgICAgcmVwby5lZGl0KCBoYXNfd2lraSA9IEZhbHNlICkK\nCllvdSBjYW4gYWxzbyBjcmVhdGUgYSBHaXRodWIgaW5zdGFuY2Ugd2l0aCBh\nbiBPQXV0aCB0b2tlbjoKCiAgICBnID0gR2l0aHViKCB0b2tlbiApCgpPciB3\naXRob3V0IGF1dGhlbnRpY2F0aW9uOgoKICAgIGcgPSBHaXRodWIoKQoKTGlj\nZW5zaW5nCj09PT09PT09PQoKUHlHaXRodWIgaXMgZGlzdHJpYnV0ZWQgdW5k\nZXIgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5jZS4KU2Vl\nIGZpbGVzIENPUFlJTkcgYW5kIENPUFlJTkcuTEVTU0VSLCBhcyByZXF1ZXN0\nZWQgYnkgW0dOVV0oaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC1o\nb3d0by5odG1sKS4KClByb2plY3RzIHVzaW5nIFB5R2l0aHViCj09PT09PT09\nPT09PT09PT09PT09PT09CgooW09wZW4gYW4gaXNzdWVdKGh0dHBzOi8vZ2l0\naHViLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9pc3N1ZXMpIGlmIHlvdSB3YW50\nIHRvIGJlIGxpc3RlZCBoZXJlLCBJJ2xsIGJlIGdsYWQgdG8gYWRkIHlvdXIg\ncHJvamVjdCkKCiogW1VwdmVydGVyXShodHRwczovL3VwdmVydGVyLmNvbSkg\naXMgYSB3ZWItYmFzZWQgc2NoZW1hdGljIGNhcHR1cmUgYW5kIFBDQiBsYXlv\ndXQgdG9vbCBmb3IgcGVvcGxlIHdobyBkZXNpZ24gZWxlY3Ryb25pY3MuIERl\nc2lnbmVycyBjYW4gYXR0YWNoIGEgR2l0aHViIHByb2plY3QgdG8gYW4gVXB2\nZXJ0ZXIgcHJvamVjdC4KKiBbVHJhdGlodWJpc10oaHR0cDovL3B5cGkucHl0\naG9uLm9yZy9weXBpL3RyYXRpaHViaXMvKSBjb252ZXJ0cyBUcmFjIHRpY2tl\ndHMgdG8gR2l0aHViIGlzc3VlcwoKSGlzdG9yeQo9PT09PT09CgpbVmVyc2lv\nbiAxLjVdKGh0dHBzOi8vZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9p\nc3N1ZXM/bWlsZXN0b25lPTkmc3RhdGU9Y2xvc2VkKSAoU2VwdGVtYmVyIDV0\naCwgMjAxMikKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqIEFkZCBhIHRpbWVvdXQgb3B0\naW9uLCB0aGFuayB5b3UgbXVjaCBbeG9iYjF0XShodHRwczovL2dpdGh1Yi5j\nb20veG9iYjF0KSBmb3IgdGhlIG1lcmdlIHJlcXVlc3QuICpUaGlzIGRyb3Bz\nIFB5dGhvbiAyLjUgc3VwcG9ydCouIEkgbWF5IGJlIGFibGUgdG8gcmVzdG9y\nZSBpdCBpbiBuZXh0IHZlcnNpb24uCiogSW1wbGVtZW50IGBSZXBvc2l0b3J5\nLmRlbGV0ZWAsIHRoYW5rIHlvdSBbcG1jaGVuXShodHRwczovL2dpdGh1Yi5j\nb20vcG1jaGVuKSBmb3IgYXNraW5nCgpbVmVyc2lvbiAxLjRdKGh0dHBzOi8v\nZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9pc3N1ZXM/bWlsZXN0b25l\nPTgmc3RhdGU9Y2xvc2VkKSAoQXVndXN0IDR0aCwgMjAxMikKLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tCgoqIEFsbG93IGNvbm5lY3Rpb24gdG8gYSBjdXN0b20gR2l0aHViIFVS\nTCwgZm9yIEdpdGh1YiBFbnRlcnByaXNlLCB0aGFuayB5b3UgdmVyeSBtdWNo\nIFtlbmdpZV0oaHR0cHM6Ly9naXRodWIuY29tL2VuZ2llKSBmb3IgdGhlIG1l\ncmdlIHJlcXVlc3QKCltWZXJzaW9uIDEuM10oaHR0cHM6Ly9naXRodWIuY29t\nL2phY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxlc3RvbmU9NyZzdGF0ZT1j\nbG9zZWQpIChKdWx5IDEzdGgsIDIwMTIpCi0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqIEltcGxl\nbWVudCBbbWFya2Rvd24gcmVuZGVyaW5nXShodHRwOi8vZGV2ZWxvcGVyLmdp\ndGh1Yi5jb20vdjMvbWFya2Rvd24vKQoqIGBHaXRBdXRob3IuZGF0ZWAgaXMg\nbm93IGEgZGF0ZXRpbWUsIHRoYW5rIHlvdSBbYmlsZGVyYnVjaGldKGh0dHBz\nOi8vZ2l0aHViLmNvbS9iaWxkZXJidWNoaSkKKiBGaXggZG9jdW1lbnRhdGlv\nbiBvZiBgR2l0aHViLmdldF9naXN0YDogYGlkYCBpcyBhIHN0cmluZywgbm90\nIGFuIGludGVnZXIKCltWZXJzaW9uIDEuMl0oaHR0cHM6Ly9naXRodWIuY29t\nL2phY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxlc3RvbmU9NiZzdGF0ZT1j\nbG9zZWQpIChKdW5lIDI5dGgsIDIwMTIpCi0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqIEltcGxl\nbWVudCBbbGVnYWN5IHNlYXJjaCBBUElzXShodHRwOi8vZGV2ZWxvcGVyLmdp\ndGh1Yi5jb20vdjMvc2VhcmNoLyksIHRoYW5rIHlvdSBba3VrdXRzXShodHRw\nczovL2dpdGh1Yi5jb20va3VrdXRzKSBmb3IgdGVsbGluZyBtZSBHaXRodWIg\naGFkIHJlbGVhc2VkIHRoZW0KKiBGaXggYSBidWcgd2l0aCBpc3N1ZSBsYWJl\nbHMgY29udGFpbmluZyBzcGFjZXMsIHRoYW5rIHlvdSBbcGhpbGlwa2ltbWV5\nXShodHRwczovL2dpdGh1Yi5jb20vcGhpbGlwa2ltbWV5KSBmb3IgZGV0ZWN0\naW5nIHRoZSBidWcgYW5kIGZpeGluZyBpdAoqIENsYXJpZnkgaG93IGNvbGxl\nY3Rpb25zIG9mIG9iamVjdHMgYXJlIHJldHVybmVkIGJ5IGBnZXRfKmAgbWV0\naG9kcywgdGhhbmsgeW91IFtiaWxkZXJidWNoaV0oaHR0cHM6Ly9naXRodWIu\nY29tL2JpbGRlcmJ1Y2hpKSBmb3IgYXNraW5nCgpWZXJzaW9uIDEuMSAoSnVu\nZSAyMHRoLCAyMDEyKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK\nKiBSZXN0b3JlIGNvbXBhdGliaWxpdHkgd2l0aCBQeXRob24gMi41LCB0aGFu\nayB5b3UgW3BtdWlsdV0oaHR0cHM6Ly9naXRodWIuY29tL3BtdWlsdSkKKiBV\nc2UgYHBhY2thZ2VfZGF0YWAgaW5zdGVhZCBvZiBgZGF0YV9maWxlc2AgZm9y\nIGRvY3VtZW50YXRpb24gZmlsZXMgaW4gYHNldHVwLnB5YCwgdGhhbmsgeW91\nIFttYWxleHddKGh0dHBzOi8vZ2l0aHViLmNvbS9tYWxleHcpIGZvciByZXBv\ncnRpbmcKCltWZXJzaW9uIDEuMF0oaHR0cHM6Ly9naXRodWIuY29tL2phY3F1\nZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxlc3RvbmU9MiZzdGF0ZT1jbG9zZWQp\nIChKdW5lIDNyZCwgMjAxMikKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKKiBDb21wbGV0ZSByZXdy\naXRlLCB3aXRoIG5vIG1vcmUgY29tcGxpY2F0ZWQgbWV0YS1kZXNjcmlwdGlv\nbgoqIEZ1bGwgdHlwaW5nIG9mIGF0dHJpYnV0ZXMgYW5kIHBhcmFtZXRlcnMK\nKiBGdWxsIGRvY3VtZW50YXRpb24gb2YgYXR0cmlidXRlcyBhbmQgcGFyYW1l\ndGVycwoqIE1vcmUgdXNhYmxlIGV4Y2VwdGlvbnMgcmFpc2VkIGluIGNhc2Ug\nb24gcHJvYmxlbXMgd2l0aCB0aGUgQVBJCiogU29tZSBidWdzIGFuZCBsaW1p\ndGF0aW9ucyBmaXhlZCwgc3BlY2lhbCB0aGFua3MgdG8gW2JpbGRlcmJ1Y2hp\nXShodHRwczovL2dpdGh1Yi5jb20vYmlsZGVyYnVjaGkpLCBbcm9za2Frb3Jp\nXShodHRwczovL2dpdGh1Yi5jb20vcm9za2Frb3JpKSBhbmQgW3RhbGxmb3Jh\nc211cmZdKGh0dHBzOi8vZ2l0aHViLmNvbS90YWxsZm9yYXNtdXJmKSBmb3Ig\ncmVwb3J0aW5nIHRoZW0hCgpbVmVyc2lvbiAwLjddKGh0dHBzOi8vZ2l0aHVi\nLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9pc3N1ZXM/bWlsZXN0b25lPTUmc3Rh\ndGU9Y2xvc2VkKSAoTWF5IDI2dGgsIDIwMTIpCi0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiogVXNl\nIFB5R2l0aHViIHdpdGggT0F1dGggYXV0aGVudGljYXRpb24gb3Igd2l0aCBu\nbyBhdXRoZW50aWNhdGlvbiBhdCBhbGwKCltWZXJzaW9uIDAuNl0oaHR0cHM6\nLy9naXRodWIuY29tL2phY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxlc3Rv\nbmU9NCZzdGF0ZT1jbG9zZWQpIChBcHJpbCAxN3RoLCAyMDEyKQotLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0KCiogRml4IFtpc3N1ZSAyMV0oaHR0cHM6Ly9naXRodWIuY29tL2ph\nY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcy8yMSkgKEtleUVycm9yIHdoZW4gYWNj\nZXNzaW5nIHJlcG9zaXRvcmllcykKKiBSZS1jb21wbGV0ZWQgdGhlIEFQSSB3\naXRoIE5hbWVkVXNlci5jcmVhdGVfZ2lzdAoKCltWZXJzaW9uIDAuNV0oaHR0\ncHM6Ly9naXRodWIuY29tL2phY3F1ZXY2L1B5R2l0aHViL2lzc3Vlcz9taWxl\nc3RvbmU9MyZzdGF0ZT1jbG9zZWQpIChNYXJjaCAxOXRoLCAyMDEyKQotLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0KCiogTWFqb3IgYWNoaWV2ZW1lbnQ6ICoqYWxsIEFQSXMgYXJl\nIGltcGxlbWVudGVkKioKKiBNb3JlIHJlZmFjdG9yaW5nLCBvZiBjb3Vyc2UK\nCltWZXJzaW9uIDAuNF0oaHR0cHM6Ly9naXRodWIuY29tL2phY3F1ZXY2L1B5\nR2l0aHViL2lzc3Vlcz9taWxlc3RvbmU9MSZzdGF0ZT1jbG9zZWQpIChNYXJj\naCAxMnRoLCAyMDEyKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiogVGhlIGxpc3Qgb2YgdGhl\nIG5vdCBpbXBsZW1lbnRlZCBBUElzIGlzIHNob3J0ZXIgdGhhbiB0aGUgbGlz\ndCBvZiB0aGUgaW1wbGVtZW50ZWQgQVBJcwoqIEFQSXMgKm5vdCBpbXBsZW1l\nbnRlZCo6CiAgICAqIEdFVCBgL2dpc3RzL3B1YmxpY2AKICAgICogR0VUIGAv\naXNzdWVzYAogICAgKiBHRVQgYC9yZXBvcy86dXNlci86cmVwby9jb21wYXJl\nLzpiYXNlLi4uOmhlYWRgCiAgICAqIEdFVCBgL3JlcG9zLzp1c2VyLzpyZXBv\nL2dpdC90cmVlcy86c2hhP3JlY3Vyc2l2ZT0xYAogICAgKiBQT1NUIGAvcmVw\nb3MvOnVzZXIvOnJlcG8vZ2l0L3RyZWVzP2Jhc2VfdHJlZT1gCiogR2lzdHMK\nKiBBdXRvcml6YXRpb25zCiogS2V5cwoqIEhvb2tzCiogRXZlbnRzCiogTWVy\nZ2UgcHVsbCByZXF1ZXN0cwoqIE1vcmUgcmVmYWN0b3JpbmcsIG9uZSBtb3Jl\nIHRpbWUKClZlcnNpb24gMC4zIChGZWJydWFyeSAyNnRoLCAyMDEyKQotLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiogTW9yZSByZWZhY3Rv\ncmluZwoqIElzc3VlcywgbWlsZXN0b25lcyBhbmQgdGhlaXIgbGFiZWxzCiog\nTmFtZWRVc2VyOgogICAgKiBlbWFpbHMKKiBSZXBvc2l0b3J5OgogICAgKiBk\nb3dubG9hZHMKICAgICogdGFncywgYnJhbmNoZXMsIGNvbW1pdHMgYW5kIGNv\nbW1lbnRzIChub3QgdGhlIHNhbWUgYXMgIkdpdCBvYmplY3RzIiBvZiB2ZXJz\naW9uIDAuMikKICAgICogcHVsbCByZXF1ZXN0cyAobm8gYXV0b21hdGljIG1l\ncmdlIHlldCkKKiBBdXRvbWF0aWMgZ2VuZXJhdGlvbiBvZiB0aGUgcmVmZXJl\nbmNlIGRvY3VtZW50YXRpb24gb2YgY2xhc3Nlcywgd2l0aCBsZXNzICJzZWUg\nQVBJInMsIGFuZCBsZXNzIGVycm9ycwoKVmVyc2lvbiAwLjIgKEZlYnJ1YXJ5\nIDIzcmQsIDIwMTIpCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLQoKKiBSZWZhY3RvcmluZwoqIFRlYW1zIGRldGFpbHMgYW5kIG1vZGlmaWNh\ndGlvbgogICAgKiBiYXNpYyBhdHRyaWJ1dGVzCiAgICAqIGxpc3QgdGVhbXMg\naW4gb3JnYW5pemF0aW9ucywgb24gcmVwb3NpdG9yaWVzCiogR2l0IG9iamVj\ndHMKICAgICogY3JlYXRlIGFuZCBnZXQgdGFncywgcmVmZXJlbmNlcywgY29t\nbWl0cywgdHJlZXMsIGJsb2JzCiAgICAqIGxpc3QgYW5kIGVkaXQgcmVmZXJl\nbmNlcwoKVmVyc2lvbiAwLjEgKEZlYnJ1YXJ5IDE5dGgsIDIwMTIpCi0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKKiBVc2VyIGRldGFpbHMg\nYW5kIG1vZGlmaWNhdGlvbgogICAgKiBiYXNpYyBhdHRyaWJ1dGVzCiAgICAq\nIGZvbGxvd2VycywgZm9sbG93aW5nLCB3YXRjaGluZwogICAgKiBvcmdhbml6\nYXRpb25zCiAgICAqIHJlcG9zaXRvcmllcwoqIFJlcG9zaXRvcnkgZGV0YWls\ncyBhbmQgbW9kaWZpY2F0aW9uCiAgICAqIGJhc2ljIGF0dHJpYnV0ZXMKICAg\nICogZm9ya2luZwogICAgKiBjb2xsYWJvcmF0b3JzLCBjb250cmlidXRvcnMs\nIHdhdGNoZXJzCiogT3JnYW5pemF0aW9uIGRldGFpbHMgYW5kIG1vZGlmaWNh\ndGlvbgogICAgKiBiYXNpYyBhdHRyaWJ1dGVzCiAgICAqIG1lbWJlcnMgYW5k\nIHB1YmxpYyBtZW1iZXJzCg==\n","size":7531,"name":"ReadMe.md"} https GET api.github.com None -/repos/jacquev6/PyGithub/contents/doc/ReferenceOfClasses.md +/repos/PyGithub/PyGithub/contents/doc/ReferenceOfClasses.md {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '39214'), ('server', 'nginx/1.0.13'), ('last-modified', 'Wed, 05 Sep 2012 17:54:40 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"71786feb5f476112c5a8aa894ee7ca6c"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Sat, 08 Sep 2012 10:43:48 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"_links":{"self":"https://api.github.com/repos/jacquev6/PyGithub/contents/doc/ReferenceOfClasses.md","git":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/b82d109eca7f58b32e6b3be6694578fa5451766b","html":"https://github.com/jacquev6/PyGithub/blob/master/doc/ReferenceOfClasses.md"},"type":"file","sha":"b82d109eca7f58b32e6b3be6694578fa5451766b","path":"doc/ReferenceOfClasses.md","encoding":"base64","size":28122,"name":"ReferenceOfClasses.md","content":"WW91IGRvbid0IG5vcm1hbHkgY3JlYXRlIGluc3RhbmNlcyBvZiBhbnkgY2xh\nc3MgYnV0IGBHaXRodWJgLgpZb3Ugb2J0YWluIGluc3RhbmNlcyB0aHJvdWdo\nIGNhbGxzIHRvIGBzZWFyY2hfYCwgYGdldF9gIGFuZCBgY3JlYXRlX2AgbWV0\naG9kcy4KCk1ldGhvZHMgcmV0dXJuaW5nIGFuICJpdGVyYXRvciBvZiBgU29t\nZVR5cGVgIiByZXR1cm4gYW4gaXRlcmF0b3Igd2hpY2ggeWllbGRzIGluc3Rh\nbmNlcyBvZiBgU29tZVR5cGVgLgpUaGlzIGltcGxlbWVudHMgbGF6eSBbcGFn\naW5hdGlvbiByZXF1ZXN0c10oaHR0cDovL2RldmVsb3Blci5naXRodWIuY29t\nL3YzLyNwYWdpbmF0aW9uKS4KWW91IGNhbiB1c2UgdGhpcyBpdGVyYXRvciBp\nbiBhIGBmb3IgZiBpbiB1c2VyLmdldF9mb2xsb3dlcnMoKTpgIGxvb3Agb3Ig\nd2l0aCBhbnkgW2l0ZXJ0b29sc10oaHR0cDovL2RvY3MucHl0aG9uLm9yZy9s\naWJyYXJ5L2l0ZXJ0b29scy5odG1sKSBmdW5jdGlvbnMsCmJ1dCB5b3UgY2Fu\nbm90IGtub3cgdGhlIG51bWJlciBvZiBvYmplY3RzIHJldHVybmVkIGJlZm9y\nZSB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24uCklmIHRoYXQncyByZWFsbHkg\nd2hhdCB5b3UgbmVlZCwgeW91IGNhbnQgdXNlIGBsZW4oIGxpc3QoIHVzZXIu\nZ2V0X2ZvbGxvd2VycygpICkgKWAsIHdoaWNoIGRvZXMgYWxsIHRoZSByZXF1\nZXN0cyBuZWVkZWQgdG8gZW51bWVyYXRlIHRoZSB1c2VyJ3MgZm9sbG93ZXJz\nLgpOb3RlIHRoYXQgdGhlcmUgaXMgb2Z0ZW4gYW4gYXR0cmlidXRlIGdpdmlu\nZyB0aGlzIHZhbHVlIChpbiB0aGF0IGNhc2UgYHVzZXIuZm9sbG93ZXJzYCku\nCgpDbGFzcyBgR2l0aHViYAo9PT09PT09PT09PT09PQoKQ29uc3RydWN0ZWQg\nZnJvbSB1c2VyJ3MgbG9naW4gYW5kIHBhc3N3b3JkIG9yIE9BdXRoIHRva2Vu\nIG9yIG5vdGhpbmc6CgogICAgZyA9IEdpdGh1YiggbG9naW4sIHBhc3N3b3Jk\nICkKICAgIGcgPSBHaXRodWIoIHRva2VuICkKICAgIGcgPSBHaXRodWIoKQoK\nWW91IGNhbiBhZGQgYW4gYXJndW1lbnQgYGJhc2VfdXJsID0gImh0dHA6Ly9t\neS5lbnRlcnByaXNlLmNvbTo4MDgwL3BhdGgvdG8vZ2l0aHViImAgdG8gY29u\nbmVjdCB0byBhIGxvY2FsIGluc3RhbGwgb2YgR2l0aHViIChpZS4gR2l0aHVi\nIEVudGVycHJpc2UpLgpBbm90aGVyIGFyZ3VtZW50LCB0aGF0IGNhbiBiZSBw\nYXNzZWQgaXMgYHRpbWVvdXRgIHdoaWNoIGhhcyBkZWZhdWx0IHZhbHVlIGAx\nMGAuCgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgcmF0ZV9saW1pdGluZ2A6\nIHR1cGxlIG9mIHR3byBpbnRlZ2VyczogcmVtYWluaW5nIGFuZCBsaW1pdCwg\nYXMgZXhwbGFpbmVkIGluIFtSYXRlIExpbWl0aW5nXShodHRwOi8vZGV2ZWxv\ncGVyLmdpdGh1Yi5jb20vdjMvI3JhdGUtbGltaXRpbmcpCgpNZXRob2RzCi0t\nLS0tLS0KKiBgZ2V0X3VzZXIoKWA6IGBBdXRoZW50aWNhdGVkVXNlcmAKKiBg\nZ2V0X3VzZXIoIGxvZ2luIClgOiBgTmFtZWRVc2VyYAoqIGBnZXRfb3JnYW5p\nemF0aW9uKCBsb2dpbiApYDogYE9yZ2FuaXphdGlvbmAKKiBgZ2V0X2dpc3Qo\nIGlkIClgOiBgR2lzdGAKICAgICogYGlkYDogc3RyaW5nCiogYGdldF9naXN0\ncygpYDogaXRlcmF0b3Igb2YgYEdpc3RgCiogYHNlYXJjaF9yZXBvcygga2V5\nd29yZCApYDogaXRlcmF0b3Igb2YgYFJlcG9zaXRvcnlgCiogYGxlZ2FjeV9z\nZWFyY2hfcmVwb3MoIGtleXdvcmQsIFtsYW5ndWFnZV0gKWA6IGl0ZXJhdG9y\nIG9mIGBSZXBvc2l0b3J5YAogICAgKiBga2V5d29yZGA6IHN0cmluZwogICAg\nKiBgbGFuZ3VhZ2VgOiBzdHJpbmcKKiBgbGVnYWN5X3NlYXJjaF91c2Vycygg\na2V5d29yZCApYDogaXRlcmF0b3Igb2YgYE5hbWVkVXNlcmAKICAgICogYGtl\neXdvcmRgOiBzdHJpbmcKKiBgbGVnYWN5X3NlYXJjaF91c2VyX2J5X2VtYWls\nKCBlbWFpbCApYDogYE5hbWVkVXNlcmAKICAgICogYGVtYWlsYDogc3RyaW5n\nCiogYHJlbmRlcl9tYXJrZG93biggdGV4dCwgW2NvbnRleHRdIClgOiBzdHJp\nbmcKICAgICogYHRleHRgOiBzdHJpbmcKICAgICogYGNvbnRleHRgOiBgUmVw\nb3NpdG9yeWAKCkNsYXNzIGBHaXRodWJFeGNlcHRpb25gCj09PT09PT09PT09\nPT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgc3RhdHVz\nYDogaW50ZWdlcgoqIGBkYXRhYDogZGljdAoKQ2xhc3MgYEF1dGhlbnRpY2F0\nZWRVc2VyYAo9PT09PT09PT09PT09PT09PT09PT09PT09CgpBdHRyaWJ1dGVz\nCi0tLS0tLS0tLS0KKiBgYXZhdGFyX3VybGA6IHN0cmluZwoqIGBiaW9gOiBz\ndHJpbmcKKiBgYmxvZ2A6IHN0cmluZwoqIGBjb2xsYWJvcmF0b3JzYDogaW50\nZWdlcgoqIGBjb21wYW55YDogc3RyaW5nCiogYGNyZWF0ZWRfYXRgOiBkYXRl\ndGltZS5kYXRldGltZQoqIGBkaXNrX3VzYWdlYDogaW50ZWdlcgoqIGBlbWFp\nbGA6IHN0cmluZwoqIGBmb2xsb3dlcnNgOiBpbnRlZ2VyCiogYGZvbGxvd2lu\nZ2A6IGludGVnZXIKKiBgZ3JhdmF0YXJfaWRgOiBzdHJpbmcKKiBgaGlyZWFi\nbGVgOiBib29sCiogYGh0bWxfdXJsYDogc3RyaW5nCiogYGlkYDogaW50ZWdl\ncgoqIGBsb2NhdGlvbmA6IHN0cmluZwoqIGBsb2dpbmA6IHN0cmluZwoqIGBu\nYW1lYDogc3RyaW5nCiogYG93bmVkX3ByaXZhdGVfcmVwb3NgOiBpbnRlZ2Vy\nCiogYHBsYW5gOiBgUGxhbmAKKiBgcHJpdmF0ZV9naXN0c2A6IGludGVnZXIK\nKiBgcHVibGljX2dpc3RzYDogaW50ZWdlcgoqIGBwdWJsaWNfcmVwb3NgOiBp\nbnRlZ2VyCiogYHRvdGFsX3ByaXZhdGVfcmVwb3NgOiBpbnRlZ2VyCiogYHR5\ncGVgOiBzdHJpbmcKKiBgdXJsYDogc3RyaW5nCgpBdXRob3JpemF0aW9ucwot\nLS0tLS0tLS0tLS0tLQoqIGBjcmVhdGVfYXV0aG9yaXphdGlvbiggW3Njb3Bl\ncywgbm90ZSwgbm90ZV91cmxdIClgOiBgQXV0aG9yaXphdGlvbmAKICAgICog\nYHNjb3Blc2A6IGxpc3Qgb2Ygc3RyaW5nCiAgICAqIGBub3RlYDogc3RyaW5n\nCiAgICAqIGBub3RlX3VybGA6IHN0cmluZwoqIGBnZXRfYXV0aG9yaXphdGlv\nbiggaWQgKWA6IGBBdXRob3JpemF0aW9uYAogICAgKiBgaWRgOiBpbnRlZ2Vy\nCiogYGdldF9hdXRob3JpemF0aW9ucygpYDogaXRlcmF0b3Igb2YgYEF1dGhv\ncml6YXRpb25gCgpFbWFpbHMKLS0tLS0tCiogYGFkZF90b19lbWFpbHMoIGVt\nYWlsLCAuLi4gKWAKICAgICogYGVtYWlsYDogc3RyaW5nCiogYGdldF9lbWFp\nbHMoKWA6IGxpc3Qgb2Ygc3RyaW5nCiogYHJlbW92ZV9mcm9tX2VtYWlscygg\nZW1haWwsIC4uLiApYAogICAgKiBgZW1haWxgOiBzdHJpbmcKCkV2ZW50cwot\nLS0tLS0KKiBgZ2V0X2V2ZW50cygpYDogaXRlcmF0b3Igb2YgYEV2ZW50YAoq\nIGBnZXRfb3JnYW5pemF0aW9uX2V2ZW50cyggb3JnIClgOiBpdGVyYXRvciBv\nZiBgRXZlbnRgCiAgICAqIGBvcmdgOiBgT3JnYW5pemF0aW9uYAoKRm9sbG93\nZXJzCi0tLS0tLS0tLQoqIGBnZXRfZm9sbG93ZXJzKClgOiBpdGVyYXRvciBv\nZiBgTmFtZWRVc2VyYAoKRm9sbG93aW5nCi0tLS0tLS0tLQoqIGBhZGRfdG9f\nZm9sbG93aW5nKCBmb2xsb3dpbmcgKWAKICAgICogYGZvbGxvd2luZ2A6IGBO\nYW1lZFVzZXJgCiogYGdldF9mb2xsb3dpbmcoKWA6IGl0ZXJhdG9yIG9mIGBO\nYW1lZFVzZXJgCiogYGhhc19pbl9mb2xsb3dpbmcoIGZvbGxvd2luZyApYDog\nYm9vbAogICAgKiBgZm9sbG93aW5nYDogYE5hbWVkVXNlcmAKKiBgcmVtb3Zl\nX2Zyb21fZm9sbG93aW5nKCBmb2xsb3dpbmcgKWAKICAgICogYGZvbGxvd2lu\nZ2A6IGBOYW1lZFVzZXJgCgpGb3JraW5nCi0tLS0tLS0KKiBgY3JlYXRlX2Zv\ncmsoIHJlcG8gKWA6IGBSZXBvc2l0b3J5YAogICAgKiBgcmVwb2A6IGBSZXBv\nc2l0b3J5YAoKR2lzdHMKLS0tLS0KKiBgY3JlYXRlX2dpc3QoIHB1YmxpYywg\nZmlsZXMsIFtkZXNjcmlwdGlvbl0gKWA6IGBHaXN0YAogICAgKiBgcHVibGlj\nYDogYm9vbAogICAgKiBgZmlsZXNgOiBkaWN0IG9mIHN0cmluZyB0byBgSW5w\ndXRGaWxlQ29udGVudGAKICAgICogYGRlc2NyaXB0aW9uYDogc3RyaW5nCiog\nYGdldF9naXN0cygpYDogaXRlcmF0b3Igb2YgYEdpc3RgCiogYGdldF9zdGFy\ncmVkX2dpc3RzKClgOiBpdGVyYXRvciBvZiBgR2lzdGAKCklzc3VlcwotLS0t\nLS0KKiBgZ2V0X2lzc3VlcygpYDogaXRlcmF0b3Igb2YgYElzc3VlYAoKS2V5\ncwotLS0tCiogYGNyZWF0ZV9rZXkoIHRpdGxlLCBrZXkgKWA6IGBVc2VyS2V5\nYAogICAgKiBgdGl0bGVgOiBzdHJpbmcKICAgICogYGtleWA6IHN0cmluZwoq\nIGBnZXRfa2V5KCBpZCApYDogYFVzZXJLZXlgCiAgICAqIGBpZGA6IGludGVn\nZXIKKiBgZ2V0X2tleXMoKWA6IGl0ZXJhdG9yIG9mIGBVc2VyS2V5YAoKTW9k\naWZpY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBbbmFtZSwgZW1haWws\nIGJsb2csIGNvbXBhbnksIGxvY2F0aW9uLCBoaXJlYWJsZSwgYmlvXSApYAog\nICAgKiBgbmFtZWA6IHN0cmluZwogICAgKiBgZW1haWxgOiBzdHJpbmcKICAg\nICogYGJsb2dgOiBzdHJpbmcKICAgICogYGNvbXBhbnlgOiBzdHJpbmcKICAg\nICogYGxvY2F0aW9uYDogc3RyaW5nCiAgICAqIGBoaXJlYWJsZWA6IGJvb2wK\nICAgICogYGJpb2A6IHN0cmluZwoKT3JncwotLS0tCiogYGdldF9vcmdzKClg\nOiBpdGVyYXRvciBvZiBgT3JnYW5pemF0aW9uYAoKUmVwb3MKLS0tLS0KKiBg\nY3JlYXRlX3JlcG8oIG5hbWUsIFtkZXNjcmlwdGlvbiwgaG9tZXBhZ2UsIHBy\naXZhdGUsIGhhc19pc3N1ZXMsIGhhc193aWtpLCBoYXNfZG93bmxvYWRzXSAp\nYDogYFJlcG9zaXRvcnlgCiAgICAqIGBuYW1lYDogc3RyaW5nCiAgICAqIGBk\nZXNjcmlwdGlvbmA6IHN0cmluZwogICAgKiBgaG9tZXBhZ2VgOiBzdHJpbmcK\nICAgICogYHByaXZhdGVgOiBib29sCiAgICAqIGBoYXNfaXNzdWVzYDogYm9v\nbAogICAgKiBgaGFzX3dpa2lgOiBib29sCiAgICAqIGBoYXNfZG93bmxvYWRz\nYDogYm9vbAoqIGBnZXRfcmVwbyggbmFtZSApYDogYFJlcG9zaXRvcnlgCiAg\nICAqIGBuYW1lYDogc3RyaW5nCiogYGdldF9yZXBvcyggW3R5cGUsIHNvcnQs\nIGRpcmVjdGlvbl0gKWA6IGl0ZXJhdG9yIG9mIGBSZXBvc2l0b3J5YAogICAg\nKiBgdHlwZWA6IHN0cmluZwogICAgKiBgc29ydGA6IHN0cmluZwogICAgKiBg\nZGlyZWN0aW9uYDogc3RyaW5nCgpXYXRjaGVkCi0tLS0tLS0KKiBgYWRkX3Rv\nX3dhdGNoZWQoIHdhdGNoZWQgKWAKICAgICogYHdhdGNoZWRgOiBgUmVwb3Np\ndG9yeWAKKiBgZ2V0X3dhdGNoZWQoKWA6IGl0ZXJhdG9yIG9mIGBSZXBvc2l0\nb3J5YAoqIGBoYXNfaW5fd2F0Y2hlZCggd2F0Y2hlZCApYDogYm9vbAogICAg\nKiBgd2F0Y2hlZGA6IGBSZXBvc2l0b3J5YAoqIGByZW1vdmVfZnJvbV93YXRj\naGVkKCB3YXRjaGVkIClgCiAgICAqIGB3YXRjaGVkYDogYFJlcG9zaXRvcnlg\nCgpDbGFzcyBgQXV0aG9yaXphdGlvbmAKPT09PT09PT09PT09PT09PT09PT09\nCgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgYXBwYDogYEF1dGhvcml6YXRp\nb25BcHBsaWNhdGlvbmAKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0\naW1lCiogYGlkYDogaW50ZWdlcgoqIGBub3RlYDogc3RyaW5nCiogYG5vdGVf\ndXJsYDogc3RyaW5nCiogYHNjb3Blc2A6IGxpc3Qgb2Ygc3RyaW5nCiogYHRv\na2VuYDogc3RyaW5nCiogYHVwZGF0ZWRfYXRgOiBkYXRldGltZS5kYXRldGlt\nZQoqIGB1cmxgOiBzdHJpbmcKCkRlbGV0aW9uCi0tLS0tLS0tCiogYGRlbGV0\nZSgpYAoKTW9kaWZpY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBbc2Nv\ncGVzLCBhZGRfc2NvcGVzLCByZW1vdmVfc2NvcGVzLCBub3RlLCBub3RlX3Vy\nbF0gKWAKICAgICogYHNjb3Blc2A6IGxpc3Qgb2Ygc3RyaW5nCiAgICAqIGBh\nZGRfc2NvcGVzYDogbGlzdCBvZiBzdHJpbmcKICAgICogYHJlbW92ZV9zY29w\nZXNgOiBsaXN0IG9mIHN0cmluZwogICAgKiBgbm90ZWA6IHN0cmluZwogICAg\nKiBgbm90ZV91cmxgOiBzdHJpbmcKCkNsYXNzIGBBdXRob3JpemF0aW9uQXBw\nbGljYXRpb25gCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpB\ndHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgbmFtZWA6IHN0cmluZwoqIGB1cmxg\nOiBzdHJpbmcKCkNsYXNzIGBCcmFuY2hgCj09PT09PT09PT09PT09CgpBdHRy\naWJ1dGVzCi0tLS0tLS0tLS0KKiBgY29tbWl0YDogYENvbW1pdGAKKiBgbmFt\nZWA6IHN0cmluZwoKQ2xhc3MgYENvbW1pdGAKPT09PT09PT09PT09PT0KCkF0\ndHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBhdXRob3JgOiBgTmFtZWRVc2VyYAoq\nIGBjb21taXRgOiBgR2l0Q29tbWl0YAoqIGBjb21taXR0ZXJgOiBgTmFtZWRV\nc2VyYAoqIGBmaWxlc2A6IGxpc3Qgb2YgYEZpbGVgCiogYHBhcmVudHNgOiBs\naXN0IG9mIGBDb21taXRgCiogYHNoYWA6IHN0cmluZwoqIGBzdGF0c2A6IGBD\nb21taXRTdGF0c2AKKiBgdXJsYDogc3RyaW5nCgpDb21tZW50cwotLS0tLS0t\nLQoqIGBjcmVhdGVfY29tbWVudCggYm9keSwgW2xpbmUsIHBhdGgsIHBvc2l0\naW9uXSApYDogYENvbW1pdENvbW1lbnRgCiAgICAqIGBib2R5YDogc3RyaW5n\nCiAgICAqIGBsaW5lYDogaW50ZWdlcgogICAgKiBgcGF0aGA6IHN0cmluZwog\nICAgKiBgcG9zaXRpb25gOiBpbnRlZ2VyCiogYGdldF9jb21tZW50cygpYDog\naXRlcmF0b3Igb2YgYENvbW1pdENvbW1lbnRgCgpDbGFzcyBgQ29tbWl0Q29t\nbWVudGAKPT09PT09PT09PT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0t\nLS0tLS0KKiBgYm9keWA6IHN0cmluZwoqIGBjb21taXRfaWRgOiBzdHJpbmcK\nKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGh0bWxfdXJs\nYDogc3RyaW5nCiogYGlkYDogaW50ZWdlcgoqIGBsaW5lYDogaW50ZWdlcgoq\nIGBwYXRoYDogc3RyaW5nCiogYHBvc2l0aW9uYDogaW50ZWdlcgoqIGB1cGRh\ndGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgdXJsYDogc3RyaW5nCiog\nYHVzZXJgOiBgTmFtZWRVc2VyYAoKRGVsZXRpb24KLS0tLS0tLS0KKiBgZGVs\nZXRlKClgCgpNb2RpZmljYXRpb24KLS0tLS0tLS0tLS0tCiogYGVkaXQoIGJv\nZHkgKWAKICAgICogYGJvZHlgOiBzdHJpbmcKCkNsYXNzIGBDb21taXRTdGF0\nc2AKPT09PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0t\nCiogYGFkZGl0aW9uc2A6IGludGVnZXIKKiBgZGVsZXRpb25zYDogaW50ZWdl\ncgoqIGB0b3RhbGA6IGludGVnZXIKCkNsYXNzIGBDb21wYXJpc29uYAo9PT09\nPT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBhaGVh\nZF9ieWA6IGludGVnZXIKKiBgYmFzZV9jb21taXRgOiBgQ29tbWl0YAoqIGBi\nZWhpbmRfYnlgOiBpbnRlZ2VyCiogYGNvbW1pdHNgOiBsaXN0IG9mIGBDb21t\naXRgCiogYGRpZmZfdXJsYDogc3RyaW5nCiogYGZpbGVzYDogbGlzdCBvZiBg\nRmlsZWAKKiBgaHRtbF91cmxgOiBzdHJpbmcKKiBgcGF0Y2hfdXJsYDogc3Ry\naW5nCiogYHBlcm1hbGlua191cmxgOiBzdHJpbmcKKiBgc3RhdHVzYDogc3Ry\naW5nCiogYHRvdGFsX2NvbW1pdHNgOiBpbnRlZ2VyCiogYHVybGA6IHN0cmlu\nZwoKQ2xhc3MgYERvd25sb2FkYAo9PT09PT09PT09PT09PT09CgpBdHRyaWJ1\ndGVzCi0tLS0tLS0tLS0KKiBgYWNjZXNza2V5aWRgOiBzdHJpbmcKKiBgYWNs\nYDogc3RyaW5nCiogYGJ1Y2tldGA6IHN0cmluZwoqIGBjb250ZW50X3R5cGVg\nOiBzdHJpbmcKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiog\nYGRlc2NyaXB0aW9uYDogc3RyaW5nCiogYGRvd25sb2FkX2NvdW50YDogaW50\nZWdlcgoqIGBleHBpcmF0aW9uZGF0ZWA6IGRhdGV0aW1lLmRhdGV0aW1lCiog\nYGh0bWxfdXJsYDogc3RyaW5nCiogYGlkYDogaW50ZWdlcgoqIGBtaW1lX3R5\ncGVgOiBzdHJpbmcKKiBgbmFtZWA6IHN0cmluZwoqIGBwYXRoYDogc3RyaW5n\nCiogYHBvbGljeWA6IHN0cmluZwoqIGBwcmVmaXhgOiBzdHJpbmcKKiBgcmVk\naXJlY3RgOiBib29sCiogYHMzX3VybGA6IHN0cmluZwoqIGBzaWduYXR1cmVg\nOiBzdHJpbmcKKiBgc2l6ZWA6IGludGVnZXIKKiBgdXJsYDogc3RyaW5nCgpE\nZWxldGlvbgotLS0tLS0tLQoqIGBkZWxldGUoKWAKCkNsYXNzIGBFdmVudGAK\nPT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGFjdG9y\nYDogYE5hbWVkVXNlcmAKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0\naW1lCiogYGlkYDogc3RyaW5nCiogYG9yZ2A6IGBPcmdhbml6YXRpb25gCiog\nYHBheWxvYWRgOiBkaWN0CiogYHB1YmxpY2A6IGJvb2wKKiBgcmVwb2A6IGBS\nZXBvc2l0b3J5YAoqIGB0eXBlYDogc3RyaW5nCgpDbGFzcyBgRmlsZWAKPT09\nPT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgYWRkaXRpb25z\nYDogaW50ZWdlcgoqIGBibG9iX3VybGA6IHN0cmluZwoqIGBjaGFuZ2VzYDog\naW50ZWdlcgoqIGBkZWxldGlvbnNgOiBpbnRlZ2VyCiogYGZpbGVuYW1lYDog\nc3RyaW5nCiogYHBhdGNoYDogc3RyaW5nCiogYHJhd191cmxgOiBzdHJpbmcK\nKiBgc2hhYDogc3RyaW5nCiogYHN0YXR1c2A6IHN0cmluZwoKQ2xhc3MgYEdp\nc3RgCj09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNv\nbW1lbnRzYDogaW50ZWdlcgoqIGBjcmVhdGVkX2F0YDogZGF0ZXRpbWUuZGF0\nZXRpbWUKKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcKKiBgZmlsZXNgOiBkaWN0\nIG9mIHN0cmluZyB0byBgR2lzdEZpbGVgCiogYGZvcmtfb2ZgOiBgR2lzdGAK\nKiBgZm9ya3NgOiBsaXN0IG9mIGBHaXN0YAoqIGBnaXRfcHVsbF91cmxgOiBz\ndHJpbmcKKiBgZ2l0X3B1c2hfdXJsYDogc3RyaW5nCiogYGhpc3RvcnlgOiBs\naXN0IG9mIGBHaXN0SGlzdG9yeVN0YXRlYAoqIGBodG1sX3VybGA6IHN0cmlu\nZwoqIGBpZGA6IHN0cmluZwoqIGBwdWJsaWNgOiBib29sCiogYHVwZGF0ZWRf\nYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGB1cmxgOiBzdHJpbmcKKiBgdXNl\ncmA6IGBOYW1lZFVzZXJgCgpDb21tZW50cwotLS0tLS0tLQoqIGBjcmVhdGVf\nY29tbWVudCggYm9keSApYDogYEdpc3RDb21tZW50YAogICAgKiBgYm9keWA6\nIHN0cmluZwoqIGBnZXRfY29tbWVudCggaWQgKWA6IGBHaXN0Q29tbWVudGAK\nICAgICogYGlkYDogaW50ZWdlcgoqIGBnZXRfY29tbWVudHMoKWA6IGl0ZXJh\ndG9yIG9mIGBHaXN0Q29tbWVudGAKCkRlbGV0aW9uCi0tLS0tLS0tCiogYGRl\nbGV0ZSgpYAoKRm9ya2luZwotLS0tLS0tCiogYGNyZWF0ZV9mb3JrKClgOiBg\nR2lzdGAKCk1vZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0KKiBgZWRpdCggW2Rl\nc2NyaXB0aW9uLCBmaWxlc10gKWAKICAgICogYGRlc2NyaXB0aW9uYDogc3Ry\naW5nCiAgICAqIGBmaWxlc2A6IGRpY3Qgb2Ygc3RyaW5nIHRvIGBJbnB1dEZp\nbGVDb250ZW50YAoKU3RhcnJpbmcKLS0tLS0tLS0KKiBgaXNfc3RhcnJlZCgp\nYDogYm9vbAoqIGByZXNldF9zdGFycmVkKClgCiogYHNldF9zdGFycmVkKClg\nCgpDbGFzcyBgR2lzdENvbW1lbnRgCj09PT09PT09PT09PT09PT09PT0KCkF0\ndHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBib2R5YDogc3RyaW5nCiogYGNyZWF0\nZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBpZGA6IGludGVnZXIKKiBg\ndXBkYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYHVybGA6IHN0cmlu\nZwoqIGB1c2VyYDogYE5hbWVkVXNlcmAKCkRlbGV0aW9uCi0tLS0tLS0tCiog\nYGRlbGV0ZSgpYAoKTW9kaWZpY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0\nKCBib2R5IClgCiAgICAqIGBib2R5YDogc3RyaW5nCgpDbGFzcyBgR2lzdEZp\nbGVgCj09PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoq\nIGBjb250ZW50YDogc3RyaW5nCiogYGZpbGVuYW1lYDogc3RyaW5nCiogYGxh\nbmd1YWdlYDogc3RyaW5nCiogYHJhd191cmxgOiBzdHJpbmcKKiBgc2l6ZWA6\nIGludGVnZXIKCkNsYXNzIGBHaXN0SGlzdG9yeVN0YXRlYAo9PT09PT09PT09\nPT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBjaGFu\nZ2Vfc3RhdHVzYDogYENvbW1pdFN0YXRzYAoqIGBjb21taXR0ZWRfYXRgOiBk\nYXRldGltZS5kYXRldGltZQoqIGB1cmxgOiBzdHJpbmcKKiBgdXNlcmA6IGBO\nYW1lZFVzZXJgCiogYHZlcnNpb25gOiBzdHJpbmcKCkNsYXNzIGBHaXRBdXRo\nb3JgCj09PT09PT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0K\nKiBgZGF0ZWA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGVtYWlsYDogc3RyaW5n\nCiogYG5hbWVgOiBzdHJpbmcKCkNsYXNzIGBHaXRCbG9iYAo9PT09PT09PT09\nPT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBjb250ZW50YDogc3Ry\naW5nCiogYGVuY29kaW5nYDogc3RyaW5nCiogYHNoYWA6IHN0cmluZwoqIGBz\naXplYDogaW50ZWdlcgoqIGB1cmxgOiBzdHJpbmcKCkNsYXNzIGBHaXRDb21t\naXRgCj09PT09PT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0K\nKiBgYXV0aG9yYDogYEdpdEF1dGhvcmAKKiBgY29tbWl0dGVyYDogYEdpdEF1\ndGhvcmAKKiBgbWVzc2FnZWA6IHN0cmluZwoqIGBwYXJlbnRzYDogbGlzdCBv\nZiBgR2l0Q29tbWl0YAoqIGBzaGFgOiBzdHJpbmcKKiBgdHJlZWA6IGBHaXRU\ncmVlYAoqIGB1cmxgOiBzdHJpbmcKCkNsYXNzIGBHaXRPYmplY3RgCj09PT09\nPT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgc2hhYDog\nc3RyaW5nCiogYHR5cGVgOiBzdHJpbmcKKiBgdXJsYDogc3RyaW5nCgpDbGFz\ncyBgR2l0UmVmYAo9PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0t\nLS0tCiogYG9iamVjdGA6IGBHaXRPYmplY3RgCiogYHJlZmA6IHN0cmluZwoq\nIGB1cmxgOiBzdHJpbmcKCkRlbGV0aW9uCi0tLS0tLS0tCiogYGRlbGV0ZSgp\nYAoKTW9kaWZpY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBzaGEsIFtm\nb3JjZV0gKWAKICAgICogYHNoYWA6IHN0cmluZwogICAgKiBgZm9yY2VgOiBi\nb29sCgpDbGFzcyBgR2l0VGFnYAo9PT09PT09PT09PT09PQoKQXR0cmlidXRl\ncwotLS0tLS0tLS0tCiogYG1lc3NhZ2VgOiBzdHJpbmcKKiBgb2JqZWN0YDog\nYEdpdE9iamVjdGAKKiBgc2hhYDogc3RyaW5nCiogYHRhZ2A6IHN0cmluZwoq\nIGB0YWdnZXJgOiBgR2l0QXV0aG9yYAoqIGB1cmxgOiBzdHJpbmcKCkNsYXNz\nIGBHaXRUcmVlYAo9PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0t\nLS0tLQoqIGBzaGFgOiBzdHJpbmcKKiBgdHJlZWA6IGxpc3Qgb2YgYEdpdFRy\nZWVFbGVtZW50YAoqIGB1cmxgOiBzdHJpbmcKCkNsYXNzIGBHaXRUcmVlRWxl\nbWVudGAKPT09PT09PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0t\nLS0tLS0tCiogYG1vZGVgOiBzdHJpbmcKKiBgcGF0aGA6IHN0cmluZwoqIGBz\naGFgOiBzdHJpbmcKKiBgc2l6ZWA6IGludGVnZXIKKiBgdHlwZWA6IHN0cmlu\nZwoqIGB1cmxgOiBzdHJpbmcKCkNsYXNzIGBIb29rYAo9PT09PT09PT09PT0K\nCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBhY3RpdmVgOiBib29sCiogYGNv\nbmZpZ2A6IGRpY3QKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1l\nCiogYGV2ZW50c2A6IGxpc3Qgb2Ygc3RyaW5nCiogYGlkYDogaW50ZWdlcgoq\nIGBsYXN0X3Jlc3BvbnNlYDogYEhvb2tSZXNwb25zZWAKKiBgbmFtZWA6IHN0\ncmluZwoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgdXJs\nYDogc3RyaW5nCgpEZWxldGlvbgotLS0tLS0tLQoqIGBkZWxldGUoKWAKCk1v\nZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0KKiBgZWRpdCggbmFtZSwgY29uZmln\nLCBbZXZlbnRzLCBhZGRfZXZlbnRzLCByZW1vdmVfZXZlbnRzLCBhY3RpdmVd\nIClgCiAgICAqIGBuYW1lYDogc3RyaW5nCiAgICAqIGBjb25maWdgOiBkaWN0\nCiAgICAqIGBldmVudHNgOiBsaXN0IG9mIHN0cmluZwogICAgKiBgYWRkX2V2\nZW50c2A6IGxpc3Qgb2Ygc3RyaW5nCiAgICAqIGByZW1vdmVfZXZlbnRzYDog\nbGlzdCBvZiBzdHJpbmcKICAgICogYGFjdGl2ZWA6IGJvb2wKClRlc3RpbmcK\nLS0tLS0tLQoqIGB0ZXN0KClgCgpDbGFzcyBgSG9va1Jlc3BvbnNlYAo9PT09\nPT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNv\nZGVgOiBpbnRlZ2VyCiogYG1lc3NhZ2VgOiBzdHJpbmcKKiBgc3RhdHVzYDog\nc3RyaW5nCgpDbGFzcyBgSXNzdWVgCj09PT09PT09PT09PT0KCkF0dHJpYnV0\nZXMKLS0tLS0tLS0tLQoqIGBhc3NpZ25lZWA6IGBOYW1lZFVzZXJgCiogYGJv\nZHlgOiBzdHJpbmcKKiBgY2xvc2VkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUK\nKiBgY2xvc2VkX2J5YDogYE5hbWVkVXNlcmAKKiBgY29tbWVudHNgOiBpbnRl\nZ2VyCiogYGNyZWF0ZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBodG1s\nX3VybGA6IHN0cmluZwoqIGBpZGA6IGludGVnZXIKKiBgbGFiZWxzYDogbGlz\ndCBvZiBgTGFiZWxgCiogYG1pbGVzdG9uZWA6IGBNaWxlc3RvbmVgCiogYG51\nbWJlcmA6IGludGVnZXIKKiBgcHVsbF9yZXF1ZXN0YDogYElzc3VlUHVsbFJl\ncXVlc3RgCiogYHJlcG9zaXRvcnlgOiBgUmVwb3NpdG9yeWAKKiBgc3RhdGVg\nOiBzdHJpbmcKKiBgdGl0bGVgOiBzdHJpbmcKKiBgdXBkYXRlZF9hdGA6IGRh\ndGV0aW1lLmRhdGV0aW1lCiogYHVybGA6IHN0cmluZwoqIGB1c2VyYDogYE5h\nbWVkVXNlcmAKCkNvbW1lbnRzCi0tLS0tLS0tCiogYGNyZWF0ZV9jb21tZW50\nKCBib2R5IClgOiBgSXNzdWVDb21tZW50YAogICAgKiBgYm9keWA6IHN0cmlu\nZwoqIGBnZXRfY29tbWVudCggaWQgKWA6IGBJc3N1ZUNvbW1lbnRgCiAgICAq\nIGBpZGA6IGludGVnZXIKKiBgZ2V0X2NvbW1lbnRzKClgOiBpdGVyYXRvciBv\nZiBgSXNzdWVDb21tZW50YAoKRXZlbnRzCi0tLS0tLQoqIGBnZXRfZXZlbnRz\nKClgOiBpdGVyYXRvciBvZiBgSXNzdWVFdmVudGAKCkxhYmVscwotLS0tLS0K\nKiBgYWRkX3RvX2xhYmVscyggbGFiZWwsIC4uLiApYAogICAgKiBgbGFiZWxg\nOiBgTGFiZWxgCiogYGRlbGV0ZV9sYWJlbHMoKWAKKiBgZ2V0X2xhYmVscygp\nYDogaXRlcmF0b3Igb2YgYExhYmVsYAoqIGByZW1vdmVfZnJvbV9sYWJlbHMo\nIGxhYmVsIClgCiAgICAqIGBsYWJlbGA6IGBMYWJlbGAKKiBgc2V0X2xhYmVs\ncyggbGFiZWwsIC4uLiApYAogICAgKiBgbGFiZWxgOiBgTGFiZWxgCgpNb2Rp\nZmljYXRpb24KLS0tLS0tLS0tLS0tCiogYGVkaXQoIFt0aXRsZSwgYm9keSwg\nYXNzaWduZWUsIHN0YXRlLCBtaWxlc3RvbmUsIGxhYmVsc10gKWAKICAgICog\nYHRpdGxlYDogc3RyaW5nCiAgICAqIGBib2R5YDogc3RyaW5nCiAgICAqIGBh\nc3NpZ25lZWA6IGBOYW1lZFVzZXJgCiAgICAqIGBzdGF0ZWA6IHN0cmluZwog\nICAgKiBgbWlsZXN0b25lYDogYE1pbGVzdG9uZWAKICAgICogYGxhYmVsc2A6\nIGxpc3Qgb2Ygc3RyaW5nCgpDbGFzcyBgSXNzdWVDb21tZW50YAo9PT09PT09\nPT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGJvZHlg\nOiBzdHJpbmcKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiog\nYGlkYDogaW50ZWdlcgoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRp\nbWUKKiBgdXJsYDogc3RyaW5nCiogYHVzZXJgOiBgTmFtZWRVc2VyYAoKRGVs\nZXRpb24KLS0tLS0tLS0KKiBgZGVsZXRlKClgCgpNb2RpZmljYXRpb24KLS0t\nLS0tLS0tLS0tCiogYGVkaXQoIGJvZHkgKWAKICAgICogYGJvZHlgOiBzdHJp\nbmcKCkNsYXNzIGBJc3N1ZUV2ZW50YAo9PT09PT09PT09PT09PT09PT0KCkF0\ndHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBhY3RvcmA6IGBOYW1lZFVzZXJgCiog\nYGNvbW1pdF9pZGA6IHN0cmluZwoqIGBjcmVhdGVkX2F0YDogZGF0ZXRpbWUu\nZGF0ZXRpbWUKKiBgZXZlbnRgOiBzdHJpbmcKKiBgaWRgOiBpbnRlZ2VyCiog\nYGlzc3VlYDogYElzc3VlYAoqIGB1cmxgOiBzdHJpbmcKCkNsYXNzIGBJc3N1\nZVB1bGxSZXF1ZXN0YAo9PT09PT09PT09PT09PT09PT09PT09PT0KCkF0dHJp\nYnV0ZXMKLS0tLS0tLS0tLQoqIGBkaWZmX3VybGA6IHN0cmluZwoqIGBodG1s\nX3VybGA6IHN0cmluZwoqIGBwYXRjaF91cmxgOiBzdHJpbmcKCkNsYXNzIGBM\nYWJlbGAKPT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiog\nYGNvbG9yYDogc3RyaW5nCiogYG5hbWVgOiBzdHJpbmcKKiBgdXJsYDogc3Ry\naW5nCgpEZWxldGlvbgotLS0tLS0tLQoqIGBkZWxldGUoKWAKCk1vZGlmaWNh\ndGlvbgotLS0tLS0tLS0tLS0KKiBgZWRpdCggbmFtZSwgY29sb3IgKWAKICAg\nICogYG5hbWVgOiBzdHJpbmcKICAgICogYGNvbG9yYDogc3RyaW5nCgpDbGFz\ncyBgTWlsZXN0b25lYAo9PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwot\nLS0tLS0tLS0tCiogYGNsb3NlZF9pc3N1ZXNgOiBpbnRlZ2VyCiogYGNyZWF0\nZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBjcmVhdG9yYDogYE5hbWVk\nVXNlcmAKKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcKKiBgZHVlX29uYDogZGF0\nZXRpbWUuZGF0ZXRpbWUKKiBgaWRgOiBpbnRlZ2VyCiogYG51bWJlcmA6IGlu\ndGVnZXIKKiBgb3Blbl9pc3N1ZXNgOiBpbnRlZ2VyCiogYHN0YXRlYDogc3Ry\naW5nCiogYHRpdGxlYDogc3RyaW5nCiogYHVybGA6IHN0cmluZwoKRGVsZXRp\nb24KLS0tLS0tLS0KKiBgZGVsZXRlKClgCgpMYWJlbHMKLS0tLS0tCiogYGdl\ndF9sYWJlbHMoKWA6IGl0ZXJhdG9yIG9mIGBMYWJlbGAKCk1vZGlmaWNhdGlv\nbgotLS0tLS0tLS0tLS0KKiBgZWRpdCggdGl0bGUsIFtzdGF0ZSwgZGVzY3Jp\ncHRpb24sIGR1ZV9vbl0gKWAKICAgICogYHRpdGxlYDogc3RyaW5nCiAgICAq\nIGBzdGF0ZWA6IHN0cmluZwogICAgKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcK\nICAgICogYGR1ZV9vbmA6IGRhdGUKCkNsYXNzIGBOYW1lZFVzZXJgCj09PT09\nPT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgYXZhdGFy\nX3VybGA6IHN0cmluZwoqIGBiaW9gOiBzdHJpbmcKKiBgYmxvZ2A6IHN0cmlu\nZwoqIGBjb2xsYWJvcmF0b3JzYDogaW50ZWdlcgoqIGBjb21wYW55YDogc3Ry\naW5nCiogYGNvbnRyaWJ1dGlvbnNgOiBpbnRlZ2VyCiogYGNyZWF0ZWRfYXRg\nOiBkYXRldGltZS5kYXRldGltZQoqIGBkaXNrX3VzYWdlYDogaW50ZWdlcgoq\nIGBlbWFpbGA6IHN0cmluZwoqIGBmb2xsb3dlcnNgOiBpbnRlZ2VyCiogYGZv\nbGxvd2luZ2A6IGludGVnZXIKKiBgZ3JhdmF0YXJfaWRgOiBzdHJpbmcKKiBg\naGlyZWFibGVgOiBib29sCiogYGh0bWxfdXJsYDogc3RyaW5nCiogYGlkYDog\naW50ZWdlcgoqIGBsb2NhdGlvbmA6IHN0cmluZwoqIGBsb2dpbmA6IHN0cmlu\nZwoqIGBuYW1lYDogc3RyaW5nCiogYG93bmVkX3ByaXZhdGVfcmVwb3NgOiBp\nbnRlZ2VyCiogYHBsYW5gOiBgUGxhbmAKKiBgcHJpdmF0ZV9naXN0c2A6IGlu\ndGVnZXIKKiBgcHVibGljX2dpc3RzYDogaW50ZWdlcgoqIGBwdWJsaWNfcmVw\nb3NgOiBpbnRlZ2VyCiogYHRvdGFsX3ByaXZhdGVfcmVwb3NgOiBpbnRlZ2Vy\nCiogYHR5cGVgOiBzdHJpbmcKKiBgdXJsYDogc3RyaW5nCgpFdmVudHMKLS0t\nLS0tCiogYGdldF9ldmVudHMoKWA6IGl0ZXJhdG9yIG9mIGBFdmVudGAKKiBg\nZ2V0X3B1YmxpY19ldmVudHMoKWA6IGl0ZXJhdG9yIG9mIGBFdmVudGAKKiBg\nZ2V0X3JlY2VpdmVkX2V2ZW50cygpYDogaXRlcmF0b3Igb2YgYEV2ZW50YAoq\nIGBnZXRfcHVibGljX3JlY2VpdmVkX2V2ZW50cygpYDogaXRlcmF0b3Igb2Yg\nYEV2ZW50YAoKRm9sbG93ZXJzCi0tLS0tLS0tLQoqIGBnZXRfZm9sbG93ZXJz\nKClgOiBpdGVyYXRvciBvZiBgTmFtZWRVc2VyYAoKRm9sbG93aW5nCi0tLS0t\nLS0tLQoqIGBnZXRfZm9sbG93aW5nKClgOiBpdGVyYXRvciBvZiBgTmFtZWRV\nc2VyYAoKR2lzdHMKLS0tLS0KKiBgY3JlYXRlX2dpc3QoIHB1YmxpYywgZmls\nZXMsIFtkZXNjcmlwdGlvbl0gKWA6IGBHaXN0YAogICAgKiBgcHVibGljYDog\nYm9vbAogICAgKiBgZmlsZXNgOiBkaWN0IG9mIHN0cmluZyB0byBgSW5wdXRG\naWxlQ29udGVudGAKICAgICogYGRlc2NyaXB0aW9uYDogc3RyaW5nCiogYGdl\ndF9naXN0cygpYDogaXRlcmF0b3Igb2YgYEdpc3RgCgpPcmdzCi0tLS0KKiBg\nZ2V0X29yZ3MoKWA6IGl0ZXJhdG9yIG9mIGBPcmdhbml6YXRpb25gCgpSZXBv\ncwotLS0tLQoqIGBnZXRfcmVwbyggbmFtZSApYDogYFJlcG9zaXRvcnlgCiAg\nICAqIGBuYW1lYDogc3RyaW5nCiogYGdldF9yZXBvcyggW3R5cGVdIClgOiBp\ndGVyYXRvciBvZiBgUmVwb3NpdG9yeWAKICAgICogYHR5cGVgOiBzdHJpbmcK\nCldhdGNoZWQKLS0tLS0tLQoqIGBnZXRfd2F0Y2hlZCgpYDogaXRlcmF0b3Ig\nb2YgYFJlcG9zaXRvcnlgCgpDbGFzcyBgT3JnYW5pemF0aW9uYAo9PT09PT09\nPT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGF2YXRh\ncl91cmxgOiBzdHJpbmcKKiBgYmlsbGluZ19lbWFpbGA6IHN0cmluZwoqIGBi\nbG9nYDogc3RyaW5nCiogYGNvbGxhYm9yYXRvcnNgOiBpbnRlZ2VyCiogYGNv\nbXBhbnlgOiBzdHJpbmcKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0\naW1lCiogYGRpc2tfdXNhZ2VgOiBpbnRlZ2VyCiogYGVtYWlsYDogc3RyaW5n\nCiogYGZvbGxvd2Vyc2A6IGludGVnZXIKKiBgZm9sbG93aW5nYDogaW50ZWdl\ncgoqIGBncmF2YXRhcl9pZGA6IHN0cmluZwoqIGBodG1sX3VybGA6IHN0cmlu\nZwoqIGBpZGA6IGludGVnZXIKKiBgbG9jYXRpb25gOiBzdHJpbmcKKiBgbG9n\naW5gOiBzdHJpbmcKKiBgbmFtZWA6IHN0cmluZwoqIGBvd25lZF9wcml2YXRl\nX3JlcG9zYDogaW50ZWdlcgoqIGBwbGFuYDogYFBsYW5gCiogYHByaXZhdGVf\nZ2lzdHNgOiBpbnRlZ2VyCiogYHB1YmxpY19naXN0c2A6IGludGVnZXIKKiBg\ncHVibGljX3JlcG9zYDogaW50ZWdlcgoqIGB0b3RhbF9wcml2YXRlX3JlcG9z\nYDogaW50ZWdlcgoqIGB0eXBlYDogc3RyaW5nCiogYHVybGA6IHN0cmluZwoK\nRXZlbnRzCi0tLS0tLQoqIGBnZXRfZXZlbnRzKClgOiBpdGVyYXRvciBvZiBg\nRXZlbnRgCgpGb3JraW5nCi0tLS0tLS0KKiBgY3JlYXRlX2ZvcmsoIHJlcG8g\nKWA6IGBSZXBvc2l0b3J5YAogICAgKiBgcmVwb2A6IGBSZXBvc2l0b3J5YAoK\nTWVtYmVycwotLS0tLS0tCiogYGdldF9tZW1iZXJzKClgOiBpdGVyYXRvciBv\nZiBgTmFtZWRVc2VyYAoqIGBoYXNfaW5fbWVtYmVycyggbWVtYmVyIClgOiBi\nb29sCiAgICAqIGBtZW1iZXJgOiBgTmFtZWRVc2VyYAoqIGByZW1vdmVfZnJv\nbV9tZW1iZXJzKCBtZW1iZXIgKWAKICAgICogYG1lbWJlcmA6IGBOYW1lZFVz\nZXJgCgpNb2RpZmljYXRpb24KLS0tLS0tLS0tLS0tCiogYGVkaXQoIFtiaWxs\naW5nX2VtYWlsLCBibG9nLCBjb21wYW55LCBlbWFpbCwgbG9jYXRpb24sIG5h\nbWVdIClgCiAgICAqIGBiaWxsaW5nX2VtYWlsYDogc3RyaW5nCiAgICAqIGBi\nbG9nYDogc3RyaW5nCiAgICAqIGBjb21wYW55YDogc3RyaW5nCiAgICAqIGBl\nbWFpbGA6IHN0cmluZwogICAgKiBgbG9jYXRpb25gOiBzdHJpbmcKICAgICog\nYG5hbWVgOiBzdHJpbmcKClB1YmxpY19tZW1iZXJzCi0tLS0tLS0tLS0tLS0t\nCiogYGFkZF90b19wdWJsaWNfbWVtYmVycyggcHVibGljX21lbWJlciApYAog\nICAgKiBgcHVibGljX21lbWJlcmA6IGBOYW1lZFVzZXJgCiogYGdldF9wdWJs\naWNfbWVtYmVycygpYDogaXRlcmF0b3Igb2YgYE5hbWVkVXNlcmAKKiBgaGFz\nX2luX3B1YmxpY19tZW1iZXJzKCBwdWJsaWNfbWVtYmVyIClgOiBib29sCiAg\nICAqIGBwdWJsaWNfbWVtYmVyYDogYE5hbWVkVXNlcmAKKiBgcmVtb3ZlX2Zy\nb21fcHVibGljX21lbWJlcnMoIHB1YmxpY19tZW1iZXIgKWAKICAgICogYHB1\nYmxpY19tZW1iZXJgOiBgTmFtZWRVc2VyYAoKUmVwb3MKLS0tLS0KKiBgY3Jl\nYXRlX3JlcG8oIG5hbWUsIFtkZXNjcmlwdGlvbiwgaG9tZXBhZ2UsIHByaXZh\ndGUsIGhhc19pc3N1ZXMsIGhhc193aWtpLCBoYXNfZG93bmxvYWRzLCB0ZWFt\nX2lkXSApYDogYFJlcG9zaXRvcnlgCiAgICAqIGBuYW1lYDogc3RyaW5nCiAg\nICAqIGBkZXNjcmlwdGlvbmA6IHN0cmluZwogICAgKiBgaG9tZXBhZ2VgOiBz\ndHJpbmcKICAgICogYHByaXZhdGVgOiBib29sCiAgICAqIGBoYXNfaXNzdWVz\nYDogYm9vbAogICAgKiBgaGFzX3dpa2lgOiBib29sCiAgICAqIGBoYXNfZG93\nbmxvYWRzYDogYm9vbAogICAgKiBgdGVhbV9pZGA6IGBUZWFtYAoqIGBnZXRf\ncmVwbyggbmFtZSApYDogYFJlcG9zaXRvcnlgCiAgICAqIGBuYW1lYDogc3Ry\naW5nCiogYGdldF9yZXBvcyggW3R5cGVdIClgOiBpdGVyYXRvciBvZiBgUmVw\nb3NpdG9yeWAKICAgICogYHR5cGVgOiBzdHJpbmcKClRlYW1zCi0tLS0tCiog\nYGNyZWF0ZV90ZWFtKCBuYW1lLCBbcmVwb19uYW1lcywgcGVybWlzc2lvbl0g\nKWA6IGBUZWFtYAogICAgKiBgbmFtZWA6IHN0cmluZwogICAgKiBgcmVwb19u\nYW1lc2A6IGxpc3Qgb2YgYFJlcG9zaXRvcnlgCiAgICAqIGBwZXJtaXNzaW9u\nYDogc3RyaW5nCiogYGdldF90ZWFtKCBpZCApYDogYFRlYW1gCiAgICAqIGBp\nZGA6IGludGVnZXIKKiBgZ2V0X3RlYW1zKClgOiBpdGVyYXRvciBvZiBgVGVh\nbWAKCkNsYXNzIGBQZXJtaXNzaW9uc2AKPT09PT09PT09PT09PT09PT09PQoK\nQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGFkbWluYDogYm9vbAoqIGBwdWxs\nYDogYm9vbAoqIGBwdXNoYDogYm9vbAoKQ2xhc3MgYFBsYW5gCj09PT09PT09\nPT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNvbGxhYm9yYXRvcnNg\nOiBpbnRlZ2VyCiogYG5hbWVgOiBzdHJpbmcKKiBgcHJpdmF0ZV9yZXBvc2A6\nIGludGVnZXIKKiBgc3BhY2VgOiBpbnRlZ2VyCgpDbGFzcyBgUHVsbFJlcXVl\nc3RgCj09PT09PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0t\nLQoqIGBhZGRpdGlvbnNgOiBpbnRlZ2VyCiogYGJhc2VgOiBgUHVsbFJlcXVl\nc3RQYXJ0YAoqIGBib2R5YDogc3RyaW5nCiogYGNoYW5nZWRfZmlsZXNgOiBp\nbnRlZ2VyCiogYGNsb3NlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGNv\nbW1lbnRzYDogaW50ZWdlcgoqIGBjb21taXRzYDogaW50ZWdlcgoqIGBjcmVh\ndGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgZGVsZXRpb25zYDogaW50\nZWdlcgoqIGBkaWZmX3VybGA6IHN0cmluZwoqIGBoZWFkYDogYFB1bGxSZXF1\nZXN0UGFydGAKKiBgaHRtbF91cmxgOiBzdHJpbmcKKiBgaWRgOiBpbnRlZ2Vy\nCiogYGlzc3VlX3VybGA6IHN0cmluZwoqIGBtZXJnZWFibGVgOiBib29sCiog\nYG1lcmdlZGA6IGJvb2wKKiBgbWVyZ2VkX2F0YDogZGF0ZXRpbWUuZGF0ZXRp\nbWUKKiBgbWVyZ2VkX2J5YDogYE5hbWVkVXNlcmAKKiBgbnVtYmVyYDogaW50\nZWdlcgoqIGBwYXRjaF91cmxgOiBzdHJpbmcKKiBgcmV2aWV3X2NvbW1lbnRz\nYDogaW50ZWdlcgoqIGBzdGF0ZWA6IHN0cmluZwoqIGB0aXRsZWA6IHN0cmlu\nZwoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgdXJsYDog\nc3RyaW5nCiogYHVzZXJgOiBgTmFtZWRVc2VyYAoKQ29tbWVudHMKLS0tLS0t\nLS0KKiBgY3JlYXRlX2NvbW1lbnQoIGJvZHksIGNvbW1pdF9pZCwgcGF0aCwg\ncG9zaXRpb24gKWA6IGBQdWxsUmVxdWVzdENvbW1lbnRgCiAgICAqIGBib2R5\nYDogc3RyaW5nCiAgICAqIGBjb21taXRfaWRgOiBgQ29tbWl0YAogICAgKiBg\ncGF0aGA6IHN0cmluZwogICAgKiBgcG9zaXRpb25gOiBpbnRlZ2VyCiogYGdl\ndF9jb21tZW50KCBpZCApYDogYFB1bGxSZXF1ZXN0Q29tbWVudGAKICAgICog\nYGlkYDogaW50ZWdlcgoqIGBnZXRfY29tbWVudHMoKWA6IGl0ZXJhdG9yIG9m\nIGBQdWxsUmVxdWVzdENvbW1lbnRgCgpDb21taXRzCi0tLS0tLS0KKiBgZ2V0\nX2NvbW1pdHMoKWA6IGl0ZXJhdG9yIG9mIGBDb21taXRgCgpGaWxlcwotLS0t\nLQoqIGBnZXRfZmlsZXMoKWA6IGl0ZXJhdG9yIG9mIGBGaWxlYAoKTWVyZ2lu\nZwotLS0tLS0tCiogYGlzX21lcmdlZCgpYDogYm9vbAoqIGBtZXJnZSggW2Nv\nbW1pdF9tZXNzYWdlXSApYDogYFB1bGxSZXF1ZXN0TWVyZ2VTdGF0dXNgCiAg\nICAqIGBjb21taXRfbWVzc2FnZWA6IHN0cmluZwoKTW9kaWZpY2F0aW9uCi0t\nLS0tLS0tLS0tLQoqIGBlZGl0KCBbdGl0bGUsIGJvZHksIHN0YXRlXSApYAog\nICAgKiBgdGl0bGVgOiBzdHJpbmcKICAgICogYGJvZHlgOiBzdHJpbmcKICAg\nICogYHN0YXRlYDogc3RyaW5nCgpDbGFzcyBgUHVsbFJlcXVlc3RDb21tZW50\nYAo9PT09PT09PT09PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0t\nLS0tLS0tCiogYGJvZHlgOiBzdHJpbmcKKiBgY29tbWl0X2lkYDogc3RyaW5n\nCiogYGNyZWF0ZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBpZGA6IGlu\ndGVnZXIKKiBgb3JpZ2luYWxfY29tbWl0X2lkYDogc3RyaW5nCiogYG9yaWdp\nbmFsX3Bvc2l0aW9uYDogaW50ZWdlcgoqIGBwYXRoYDogc3RyaW5nCiogYHBv\nc2l0aW9uYDogaW50ZWdlcgoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUuZGF0\nZXRpbWUKKiBgdXJsYDogc3RyaW5nCiogYHVzZXJgOiBgTmFtZWRVc2VyYAoK\nRGVsZXRpb24KLS0tLS0tLS0KKiBgZGVsZXRlKClgCgpNb2RpZmljYXRpb24K\nLS0tLS0tLS0tLS0tCiogYGVkaXQoIGJvZHkgKWAKICAgICogYGJvZHlgOiBz\ndHJpbmcKCkNsYXNzIGBQdWxsUmVxdWVzdE1lcmdlU3RhdHVzYAo9PT09PT09\nPT09PT09PT09PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0t\nLQoqIGBtZXJnZWRgOiBib29sCiogYG1lc3NhZ2VgOiBzdHJpbmcKKiBgc2hh\nYDogc3RyaW5nCgpDbGFzcyBgUHVsbFJlcXVlc3RQYXJ0YAo9PT09PT09PT09\nPT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGxhYmVs\nYDogc3RyaW5nCiogYHJlZmA6IHN0cmluZwoqIGByZXBvYDogYFJlcG9zaXRv\ncnlgCiogYHNoYWA6IHN0cmluZwoqIGB1c2VyYDogYE5hbWVkVXNlcmAKCkNs\nYXNzIGBSZXBvc2l0b3J5YAo9PT09PT09PT09PT09PT09PT0KCkF0dHJpYnV0\nZXMKLS0tLS0tLS0tLQoqIGBjbG9uZV91cmxgOiBzdHJpbmcKKiBgY3JlYXRl\nZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGRlc2NyaXB0aW9uYDogc3Ry\naW5nCiogYGZvcmtgOiBib29sCiogYGZvcmtzYDogaW50ZWdlcgoqIGBmdWxs\nX25hbWVgOiBzdHJpbmcKKiBgZ2l0X3VybGA6IHN0cmluZwoqIGBoYXNfZG93\nbmxvYWRzYDogYm9vbAoqIGBoYXNfaXNzdWVzYDogYm9vbAoqIGBoYXNfd2lr\naWA6IGJvb2wKKiBgaG9tZXBhZ2VgOiBzdHJpbmcKKiBgaHRtbF91cmxgOiBz\ndHJpbmcKKiBgaWRgOiBpbnRlZ2VyCiogYGxhbmd1YWdlYDogc3RyaW5nCiog\nYG1hc3Rlcl9icmFuY2hgOiBzdHJpbmcKKiBgbmFtZWA6IHN0cmluZwoqIGBv\ncGVuX2lzc3Vlc2A6IGludGVnZXIKKiBgb3JnYW5pemF0aW9uYDogYE9yZ2Fu\naXphdGlvbmAKKiBgb3duZXJgOiBgTmFtZWRVc2VyYAoqIGBwYXJlbnRgOiBg\nUmVwb3NpdG9yeWAKKiBgcGVybWlzc2lvbnNgOiBgUGVybWlzc2lvbnNgCiog\nYHByaXZhdGVgOiBib29sCiogYHB1c2hlZF9hdGA6IGRhdGV0aW1lLmRhdGV0\naW1lCiogYHNpemVgOiBpbnRlZ2VyCiogYHNvdXJjZWA6IGBSZXBvc2l0b3J5\nYAoqIGBzc2hfdXJsYDogc3RyaW5nCiogYHN2bl91cmxgOiBzdHJpbmcKKiBg\ndXBkYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYHVybGA6IHN0cmlu\nZwoqIGB3YXRjaGVyc2A6IGludGVnZXIKCkRlbGV0aW9uCi0tLS0tLS0tCiog\nYGRlbGV0ZSgpYAoKQ29tcGFyaXNvbgotLS0tLS0tLS0tCiogYGNvbXBhcmUo\nIGJhc2UsIGhlYWQgKWA6IGBDb21wYXJpc29uYAogICAgKiBgYmFzZWA6IHN0\ncmluZwogICAgKiBgaGVhZGA6IHN0cmluZwoKQnJhbmNoZXMKLS0tLS0tLS0K\nKiBgZ2V0X2JyYW5jaGVzKClgOiBpdGVyYXRvciBvZiBgQnJhbmNoYAoKQ29s\nbGFib3JhdG9ycwotLS0tLS0tLS0tLS0tCiogYGFkZF90b19jb2xsYWJvcmF0\nb3JzKCBjb2xsYWJvcmF0b3IgKWAKICAgICogYGNvbGxhYm9yYXRvcmA6IGBO\nYW1lZFVzZXJgCiogYGdldF9jb2xsYWJvcmF0b3JzKClgOiBpdGVyYXRvciBv\nZiBgTmFtZWRVc2VyYAoqIGBoYXNfaW5fY29sbGFib3JhdG9ycyggY29sbGFi\nb3JhdG9yIClgOiBib29sCiAgICAqIGBjb2xsYWJvcmF0b3JgOiBgTmFtZWRV\nc2VyYAoqIGByZW1vdmVfZnJvbV9jb2xsYWJvcmF0b3JzKCBjb2xsYWJvcmF0\nb3IgKWAKICAgICogYGNvbGxhYm9yYXRvcmA6IGBOYW1lZFVzZXJgCgpDb21t\nZW50cwotLS0tLS0tLQoqIGBnZXRfY29tbWVudCggaWQgKWA6IGBDb21taXRD\nb21tZW50YAogICAgKiBgaWRgOiBpbnRlZ2VyCiogYGdldF9jb21tZW50cygp\nYDogaXRlcmF0b3Igb2YgYENvbW1pdENvbW1lbnRgCgpDb21taXRzCi0tLS0t\nLS0KKiBgZ2V0X2NvbW1pdCggc2hhIClgOiBgQ29tbWl0YAogICAgKiBgc2hh\nYDogc3RyaW5nCiogYGdldF9jb21taXRzKCBbc2hhLCBwYXRoXSApYDogaXRl\ncmF0b3Igb2YgYENvbW1pdGAKICAgICogYHNoYWA6IHN0cmluZwogICAgKiBg\ncGF0aGA6IHN0cmluZwoKQ29udHJpYnV0b3JzCi0tLS0tLS0tLS0tLQoqIGBn\nZXRfY29udHJpYnV0b3JzKClgOiBpdGVyYXRvciBvZiBgTmFtZWRVc2VyYAoK\nRG93bmxvYWRzCi0tLS0tLS0tLQoqIGBjcmVhdGVfZG93bmxvYWQoIG5hbWUs\nIHNpemUsIFtkZXNjcmlwdGlvbiwgY29udGVudF90eXBlXSApYDogYERvd25s\nb2FkYAogICAgKiBgbmFtZWA6IHN0cmluZwogICAgKiBgc2l6ZWA6IGludGVn\nZXIKICAgICogYGRlc2NyaXB0aW9uYDogc3RyaW5nCiAgICAqIGBjb250ZW50\nX3R5cGVgOiBzdHJpbmcKKiBgZ2V0X2Rvd25sb2FkKCBpZCApYDogYERvd25s\nb2FkYAogICAgKiBgaWRgOiBpbnRlZ2VyCiogYGdldF9kb3dubG9hZHMoKWA6\nIGl0ZXJhdG9yIG9mIGBEb3dubG9hZGAKCkV2ZW50cwotLS0tLS0KKiBgZ2V0\nX2V2ZW50cygpYDogaXRlcmF0b3Igb2YgYEV2ZW50YAoqIGBnZXRfbmV0d29y\na19ldmVudHMoKWA6IGl0ZXJhdG9yIG9mIGBFdmVudGAKCkZvcmtzCi0tLS0t\nCiogYGdldF9mb3JrcygpYDogaXRlcmF0b3Igb2YgYFJlcG9zaXRvcnlgCgpH\naXRfYmxvYnMKLS0tLS0tLS0tCiogYGNyZWF0ZV9naXRfYmxvYiggY29udGVu\ndCwgZW5jb2RpbmcgKWA6IGBHaXRCbG9iYAogICAgKiBgY29udGVudGA6IHN0\ncmluZwogICAgKiBgZW5jb2RpbmdgOiBzdHJpbmcKKiBgZ2V0X2dpdF9ibG9i\nKCBzaGEgKWA6IGBHaXRCbG9iYAogICAgKiBgc2hhYDogc3RyaW5nCgpHaXRf\nY29tbWl0cwotLS0tLS0tLS0tLQoqIGBjcmVhdGVfZ2l0X2NvbW1pdCggbWVz\nc2FnZSwgdHJlZSwgcGFyZW50cywgW2F1dGhvciwgY29tbWl0dGVyXSApYDog\nYEdpdENvbW1pdGAKICAgICogYG1lc3NhZ2VgOiBzdHJpbmcKICAgICogYHRy\nZWVgOiBgR2l0VHJlZWAKICAgICogYHBhcmVudHNgOiBsaXN0IG9mIGBHaXRD\nb21taXRgCiAgICAqIGBhdXRob3JgOiBgSW5wdXRHaXRBdXRob3JgCiAgICAq\nIGBjb21taXR0ZXJgOiBgSW5wdXRHaXRBdXRob3JgCiogYGdldF9naXRfY29t\nbWl0KCBzaGEgKWA6IGBHaXRDb21taXRgCiAgICAqIGBzaGFgOiBzdHJpbmcK\nCkdpdF9yZWZzCi0tLS0tLS0tCiogYGNyZWF0ZV9naXRfcmVmKCByZWYsIHNo\nYSApYDogYEdpdFJlZmAKICAgICogYHJlZmA6IHN0cmluZwogICAgKiBgc2hh\nYDogc3RyaW5nCiogYGdldF9naXRfcmVmKCByZWYgKWA6IGBHaXRSZWZgCiAg\nICAqIGByZWZgOiBzdHJpbmcKKiBgZ2V0X2dpdF9yZWZzKClgOiBpdGVyYXRv\nciBvZiBgR2l0UmVmYAoKR2l0X3RhZ3MKLS0tLS0tLS0KKiBgY3JlYXRlX2dp\ndF90YWcoIHRhZywgbWVzc2FnZSwgb2JqZWN0LCB0eXBlLCBbdGFnZ2VyXSAp\nYDogYEdpdFRhZ2AKICAgICogYHRhZ2A6IHN0cmluZwogICAgKiBgbWVzc2Fn\nZWA6IHN0cmluZwogICAgKiBgb2JqZWN0YDogc3RyaW5nCiAgICAqIGB0eXBl\nYDogc3RyaW5nCiAgICAqIGB0YWdnZXJgOiBgSW5wdXRHaXRBdXRob3JgCiog\nYGdldF9naXRfdGFnKCBzaGEgKWA6IGBHaXRUYWdgCiAgICAqIGBzaGFgOiBz\ndHJpbmcKCkdpdF90cmVlcwotLS0tLS0tLS0KKiBgY3JlYXRlX2dpdF90cmVl\nKCB0cmVlLCBbYmFzZV90cmVlXSApYDogYEdpdFRyZWVgCiAgICAqIGB0cmVl\nYDogbGlzdCBvZiBgSW5wdXRHaXRUcmVlRWxlbWVudGAKICAgICogYGJhc2Vf\ndHJlZWA6IGBHaXRUcmVlYAoqIGBnZXRfZ2l0X3RyZWUoIHNoYSwgW3JlY3Vy\nc2l2ZV0gKWA6IGBHaXRUcmVlYAogICAgKiBgc2hhYDogc3RyaW5nCiAgICAq\nIGByZWN1cnNpdmVgOiBib29sCgpIb29rcwotLS0tLQoqIGBjcmVhdGVfaG9v\nayggbmFtZSwgY29uZmlnLCBbZXZlbnRzLCBhY3RpdmVdIClgOiBgSG9va2AK\nICAgICogYG5hbWVgOiBzdHJpbmcKICAgICogYGNvbmZpZ2A6IGRpY3QKICAg\nICogYGV2ZW50c2A6IGxpc3Qgb2Ygc3RyaW5nCiAgICAqIGBhY3RpdmVgOiBi\nb29sCiogYGdldF9ob29rKCBpZCApYDogYEhvb2tgCiAgICAqIGBpZGA6IGlu\ndGVnZXIKKiBgZ2V0X2hvb2tzKClgOiBpdGVyYXRvciBvZiBgSG9va2AKCklz\nc3VlcwotLS0tLS0KKiBgY3JlYXRlX2lzc3VlKCB0aXRsZSwgW2JvZHksIGFz\nc2lnbmVlLCBtaWxlc3RvbmUsIGxhYmVsc10gKWA6IGBJc3N1ZWAKICAgICog\nYHRpdGxlYDogc3RyaW5nCiAgICAqIGBib2R5YDogc3RyaW5nCiAgICAqIGBh\nc3NpZ25lZWA6IGBOYW1lZFVzZXJgCiAgICAqIGBtaWxlc3RvbmVgOiBgTWls\nZXN0b25lYAogICAgKiBgbGFiZWxzYDogbGlzdCBvZiBgTGFiZWxgCiogYGdl\ndF9pc3N1ZSggbnVtYmVyIClgOiBgSXNzdWVgCiAgICAqIGBudW1iZXJgOiBp\nbnRlZ2VyCiogYGdldF9pc3N1ZXMoIFttaWxlc3RvbmUsIHN0YXRlLCBhc3Np\nZ25lZSwgbWVudGlvbmVkLCBsYWJlbHMsIHNvcnQsIGRpcmVjdGlvbiwgc2lu\nY2VdIClgOiBpdGVyYXRvciBvZiBgSXNzdWVgCiAgICAqIGBtaWxlc3RvbmVg\nOiBgTWlsZXN0b25lYCBvciAibm9uZSIgb3IgIioiCiAgICAqIGBzdGF0ZWA6\nIHN0cmluZwogICAgKiBgYXNzaWduZWVgOiBgTmFtZWRVc2VyYCBvciAibm9u\nZSIgb3IgIioiCiAgICAqIGBtZW50aW9uZWRgOiBgTmFtZWRVc2VyYAogICAg\nKiBgbGFiZWxzYDogbGlzdCBvZiBgTGFiZWxgCiAgICAqIGBzb3J0YDogc3Ry\naW5nCiAgICAqIGBkaXJlY3Rpb25gOiBzdHJpbmcKICAgICogYHNpbmNlYDog\nZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgbGVnYWN5X3NlYXJjaF9pc3N1ZXMoIHN0\nYXRlLCBrZXl3b3JkIClgOiBpdGVyYXRvciBvZiBgSXNzdWVgCiAgICAqIGBz\ndGF0ZWA6ICJvcGVuIiBvciAiY2xvc2VkIgogICAgKiBga2V5d29yZGA6IHN0\ncmluZwoKSXNzdWVzX2V2ZW50cwotLS0tLS0tLS0tLS0tCiogYGdldF9pc3N1\nZXNfZXZlbnQoIGlkIClgOiBgSXNzdWVFdmVudGAKICAgICogYGlkYDogaW50\nZWdlcgoqIGBnZXRfaXNzdWVzX2V2ZW50cygpYDogaXRlcmF0b3Igb2YgYElz\nc3VlRXZlbnRgCgpLZXlzCi0tLS0KKiBgY3JlYXRlX2tleSggdGl0bGUsIGtl\neSApYDogYFJlcG9zaXRvcnlLZXlgCiAgICAqIGB0aXRsZWA6IHN0cmluZwog\nICAgKiBga2V5YDogc3RyaW5nCiogYGdldF9rZXkoIGlkIClgOiBgUmVwb3Np\ndG9yeUtleWAKICAgICogYGlkYDogaW50ZWdlcgoqIGBnZXRfa2V5cygpYDog\naXRlcmF0b3Igb2YgYFJlcG9zaXRvcnlLZXlgCgpMYWJlbHMKLS0tLS0tCiog\nYGNyZWF0ZV9sYWJlbCggbmFtZSwgY29sb3IgKWA6IGBMYWJlbGAKICAgICog\nYG5hbWVgOiBzdHJpbmcKICAgICogYGNvbG9yYDogc3RyaW5nCiogYGdldF9s\nYWJlbCggbmFtZSApYDogYExhYmVsYAogICAgKiBgbmFtZWA6IHN0cmluZwoq\nIGBnZXRfbGFiZWxzKClgOiBpdGVyYXRvciBvZiBgTGFiZWxgCgpMYW5ndWFn\nZXMKLS0tLS0tLS0tCiogYGdldF9sYW5ndWFnZXMoKWA6IGRpY3Qgb2Ygc3Ry\naW5nIHRvIGludGVnZXIKCk1pbGVzdG9uZXMKLS0tLS0tLS0tLQoqIGBjcmVh\ndGVfbWlsZXN0b25lKCB0aXRsZSwgW3N0YXRlLCBkZXNjcmlwdGlvbiwgZHVl\nX29uXSApYDogYE1pbGVzdG9uZWAKICAgICogYHRpdGxlYDogc3RyaW5nCiAg\nICAqIGBzdGF0ZWA6IHN0cmluZwogICAgKiBgZGVzY3JpcHRpb25gOiBzdHJp\nbmcKICAgICogYGR1ZV9vbmA6IGRhdGUKKiBgZ2V0X21pbGVzdG9uZSggbnVt\nYmVyIClgOiBgTWlsZXN0b25lYAogICAgKiBgbnVtYmVyYDogaW50ZWdlcgoq\nIGBnZXRfbWlsZXN0b25lcyggW3N0YXRlLCBzb3J0LCBkaXJlY3Rpb25dIClg\nOiBpdGVyYXRvciBvZiBgTWlsZXN0b25lYAogICAgKiBgc3RhdGVgOiBzdHJp\nbmcKICAgICogYHNvcnRgOiBzdHJpbmcKICAgICogYGRpcmVjdGlvbmA6IHN0\ncmluZwoKTW9kaWZpY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBuYW1l\nLCBbZGVzY3JpcHRpb24sIGhvbWVwYWdlLCBwdWJsaWMsIGhhc19pc3N1ZXMs\nIGhhc193aWtpLCBoYXNfZG93bmxvYWRzXSApYAogICAgKiBgbmFtZWA6IHN0\ncmluZwogICAgKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcKICAgICogYGhvbWVw\nYWdlYDogc3RyaW5nCiAgICAqIGBwdWJsaWNgOiBib29sCiAgICAqIGBoYXNf\naXNzdWVzYDogYm9vbAogICAgKiBgaGFzX3dpa2lgOiBib29sCiAgICAqIGBo\nYXNfZG93bmxvYWRzYDogYm9vbAoKUHVsbHMKLS0tLS0KKiBgY3JlYXRlX3B1\nbGwoIDwgdGl0bGUsIGJvZHksIGJhc2UsIGhlYWQgPiBvciA8IGlzc3VlLCBi\nYXNlLCBoZWFkID4gKWA6IGBQdWxsUmVxdWVzdGAKICAgICogYHRpdGxlYDog\nc3RyaW5nCiAgICAqIGBib2R5YDogc3RyaW5nCiAgICAqIGBpc3N1ZWA6IGBJ\nc3N1ZWAKICAgICogYGJhc2VgOiBzdHJpbmcKICAgICogYGhlYWRgOiBzdHJp\nbmcKKiBgZ2V0X3B1bGwoIG51bWJlciApYDogYFB1bGxSZXF1ZXN0YAogICAg\nKiBgbnVtYmVyYDogaW50ZWdlcgoqIGBnZXRfcHVsbHMoIFtzdGF0ZV0gKWA6\nIGl0ZXJhdG9yIG9mIGBQdWxsUmVxdWVzdGAKICAgICogYHN0YXRlYDogc3Ry\naW5nCgpUYWdzCi0tLS0KKiBgZ2V0X3RhZ3MoKWA6IGl0ZXJhdG9yIG9mIGBU\nYWdgCgpUZWFtcwotLS0tLQoqIGBnZXRfdGVhbXMoKWA6IGl0ZXJhdG9yIG9m\nIGBUZWFtYAoKV2F0Y2hlcnMKLS0tLS0tLS0KKiBgZ2V0X3dhdGNoZXJzKClg\nOiBpdGVyYXRvciBvZiBgTmFtZWRVc2VyYAoKQ2xhc3MgYFJlcG9zaXRvcnlL\nZXlgCj09PT09PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0t\nLS0tCiogYGlkYDogaW50ZWdlcgoqIGBrZXlgOiBzdHJpbmcKKiBgdGl0bGVg\nOiBzdHJpbmcKKiBgdXJsYDogc3RyaW5nCiogYHZlcmlmaWVkYDogYm9vbAoK\nRGVsZXRpb24KLS0tLS0tLS0KKiBgZGVsZXRlKClgCgpNb2RpZmljYXRpb24K\nLS0tLS0tLS0tLS0tCiogYGVkaXQoIFt0aXRsZSwga2V5XSApYAogICAgKiBg\ndGl0bGVgOiBzdHJpbmcKICAgICogYGtleWA6IHN0cmluZwoKQ2xhc3MgYFRh\nZ2AKPT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBjb21t\naXRgOiBgQ29tbWl0YAoqIGBuYW1lYDogc3RyaW5nCiogYHRhcmJhbGxfdXJs\nYDogc3RyaW5nCiogYHppcGJhbGxfdXJsYDogc3RyaW5nCgpDbGFzcyBgVGVh\nbWAKPT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgaWRg\nOiBpbnRlZ2VyCiogYG1lbWJlcnNfY291bnRgOiBpbnRlZ2VyCiogYG5hbWVg\nOiBzdHJpbmcKKiBgcGVybWlzc2lvbmA6IHN0cmluZwoqIGByZXBvc19jb3Vu\ndGA6IGludGVnZXIKKiBgdXJsYDogc3RyaW5nCgpEZWxldGlvbgotLS0tLS0t\nLQoqIGBkZWxldGUoKWAKCk1lbWJlcnMKLS0tLS0tLQoqIGBhZGRfdG9fbWVt\nYmVycyggbWVtYmVyIClgCiAgICAqIGBtZW1iZXJgOiBgTmFtZWRVc2VyYAoq\nIGBnZXRfbWVtYmVycygpYDogaXRlcmF0b3Igb2YgYE5hbWVkVXNlcmAKKiBg\naGFzX2luX21lbWJlcnMoIG1lbWJlciApYDogYm9vbAogICAgKiBgbWVtYmVy\nYDogYE5hbWVkVXNlcmAKKiBgcmVtb3ZlX2Zyb21fbWVtYmVycyggbWVtYmVy\nIClgCiAgICAqIGBtZW1iZXJgOiBgTmFtZWRVc2VyYAoKTW9kaWZpY2F0aW9u\nCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBuYW1lLCBbcGVybWlzc2lvbl0gKWAK\nICAgICogYG5hbWVgOiBzdHJpbmcKICAgICogYHBlcm1pc3Npb25gOiBzdHJp\nbmcKClJlcG9zCi0tLS0tCiogYGFkZF90b19yZXBvcyggcmVwbyApYAogICAg\nKiBgcmVwb2A6IGBSZXBvc2l0b3J5YAoqIGBnZXRfcmVwb3MoKWA6IGl0ZXJh\ndG9yIG9mIGBSZXBvc2l0b3J5YAoqIGBoYXNfaW5fcmVwb3MoIHJlcG8gKWA6\nIGJvb2wKICAgICogYHJlcG9gOiBgUmVwb3NpdG9yeWAKKiBgcmVtb3ZlX2Zy\nb21fcmVwb3MoIHJlcG8gKWAKICAgICogYHJlcG9gOiBgUmVwb3NpdG9yeWAK\nCkNsYXNzIGBVc2VyS2V5YAo9PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMK\nLS0tLS0tLS0tLQoqIGBpZGA6IGludGVnZXIKKiBga2V5YDogc3RyaW5nCiog\nYHRpdGxlYDogc3RyaW5nCiogYHVybGA6IHN0cmluZwoqIGB2ZXJpZmllZGA6\nIGJvb2wKCkRlbGV0aW9uCi0tLS0tLS0tCiogYGRlbGV0ZSgpYAoKTW9kaWZp\nY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBbdGl0bGUsIGtleV0gKWAK\nICAgICogYHRpdGxlYDogc3RyaW5nCiAgICAqIGBrZXlgOiBzdHJpbmcK\n"} +{"_links":{"self":"https://api.github.com/repos/PyGithub/PyGithub/contents/doc/ReferenceOfClasses.md","git":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/b82d109eca7f58b32e6b3be6694578fa5451766b","html":"https://github.com/PyGithub/PyGithub/blob/master/doc/ReferenceOfClasses.md"},"type":"file","sha":"b82d109eca7f58b32e6b3be6694578fa5451766b","path":"doc/ReferenceOfClasses.md","encoding":"base64","size":28122,"name":"ReferenceOfClasses.md","content":"WW91IGRvbid0IG5vcm1hbHkgY3JlYXRlIGluc3RhbmNlcyBvZiBhbnkgY2xh\nc3MgYnV0IGBHaXRodWJgLgpZb3Ugb2J0YWluIGluc3RhbmNlcyB0aHJvdWdo\nIGNhbGxzIHRvIGBzZWFyY2hfYCwgYGdldF9gIGFuZCBgY3JlYXRlX2AgbWV0\naG9kcy4KCk1ldGhvZHMgcmV0dXJuaW5nIGFuICJpdGVyYXRvciBvZiBgU29t\nZVR5cGVgIiByZXR1cm4gYW4gaXRlcmF0b3Igd2hpY2ggeWllbGRzIGluc3Rh\nbmNlcyBvZiBgU29tZVR5cGVgLgpUaGlzIGltcGxlbWVudHMgbGF6eSBbcGFn\naW5hdGlvbiByZXF1ZXN0c10oaHR0cDovL2RldmVsb3Blci5naXRodWIuY29t\nL3YzLyNwYWdpbmF0aW9uKS4KWW91IGNhbiB1c2UgdGhpcyBpdGVyYXRvciBp\nbiBhIGBmb3IgZiBpbiB1c2VyLmdldF9mb2xsb3dlcnMoKTpgIGxvb3Agb3Ig\nd2l0aCBhbnkgW2l0ZXJ0b29sc10oaHR0cDovL2RvY3MucHl0aG9uLm9yZy9s\naWJyYXJ5L2l0ZXJ0b29scy5odG1sKSBmdW5jdGlvbnMsCmJ1dCB5b3UgY2Fu\nbm90IGtub3cgdGhlIG51bWJlciBvZiBvYmplY3RzIHJldHVybmVkIGJlZm9y\nZSB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24uCklmIHRoYXQncyByZWFsbHkg\nd2hhdCB5b3UgbmVlZCwgeW91IGNhbnQgdXNlIGBsZW4oIGxpc3QoIHVzZXIu\nZ2V0X2ZvbGxvd2VycygpICkgKWAsIHdoaWNoIGRvZXMgYWxsIHRoZSByZXF1\nZXN0cyBuZWVkZWQgdG8gZW51bWVyYXRlIHRoZSB1c2VyJ3MgZm9sbG93ZXJz\nLgpOb3RlIHRoYXQgdGhlcmUgaXMgb2Z0ZW4gYW4gYXR0cmlidXRlIGdpdmlu\nZyB0aGlzIHZhbHVlIChpbiB0aGF0IGNhc2UgYHVzZXIuZm9sbG93ZXJzYCku\nCgpDbGFzcyBgR2l0aHViYAo9PT09PT09PT09PT09PQoKQ29uc3RydWN0ZWQg\nZnJvbSB1c2VyJ3MgbG9naW4gYW5kIHBhc3N3b3JkIG9yIE9BdXRoIHRva2Vu\nIG9yIG5vdGhpbmc6CgogICAgZyA9IEdpdGh1YiggbG9naW4sIHBhc3N3b3Jk\nICkKICAgIGcgPSBHaXRodWIoIHRva2VuICkKICAgIGcgPSBHaXRodWIoKQoK\nWW91IGNhbiBhZGQgYW4gYXJndW1lbnQgYGJhc2VfdXJsID0gImh0dHA6Ly9t\neS5lbnRlcnByaXNlLmNvbTo4MDgwL3BhdGgvdG8vZ2l0aHViImAgdG8gY29u\nbmVjdCB0byBhIGxvY2FsIGluc3RhbGwgb2YgR2l0aHViIChpZS4gR2l0aHVi\nIEVudGVycHJpc2UpLgpBbm90aGVyIGFyZ3VtZW50LCB0aGF0IGNhbiBiZSBw\nYXNzZWQgaXMgYHRpbWVvdXRgIHdoaWNoIGhhcyBkZWZhdWx0IHZhbHVlIGAx\nMGAuCgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgcmF0ZV9saW1pdGluZ2A6\nIHR1cGxlIG9mIHR3byBpbnRlZ2VyczogcmVtYWluaW5nIGFuZCBsaW1pdCwg\nYXMgZXhwbGFpbmVkIGluIFtSYXRlIExpbWl0aW5nXShodHRwOi8vZGV2ZWxv\ncGVyLmdpdGh1Yi5jb20vdjMvI3JhdGUtbGltaXRpbmcpCgpNZXRob2RzCi0t\nLS0tLS0KKiBgZ2V0X3VzZXIoKWA6IGBBdXRoZW50aWNhdGVkVXNlcmAKKiBg\nZ2V0X3VzZXIoIGxvZ2luIClgOiBgTmFtZWRVc2VyYAoqIGBnZXRfb3JnYW5p\nemF0aW9uKCBsb2dpbiApYDogYE9yZ2FuaXphdGlvbmAKKiBgZ2V0X2dpc3Qo\nIGlkIClgOiBgR2lzdGAKICAgICogYGlkYDogc3RyaW5nCiogYGdldF9naXN0\ncygpYDogaXRlcmF0b3Igb2YgYEdpc3RgCiogYHNlYXJjaF9yZXBvcygga2V5\nd29yZCApYDogaXRlcmF0b3Igb2YgYFJlcG9zaXRvcnlgCiogYGxlZ2FjeV9z\nZWFyY2hfcmVwb3MoIGtleXdvcmQsIFtsYW5ndWFnZV0gKWA6IGl0ZXJhdG9y\nIG9mIGBSZXBvc2l0b3J5YAogICAgKiBga2V5d29yZGA6IHN0cmluZwogICAg\nKiBgbGFuZ3VhZ2VgOiBzdHJpbmcKKiBgbGVnYWN5X3NlYXJjaF91c2Vycygg\na2V5d29yZCApYDogaXRlcmF0b3Igb2YgYE5hbWVkVXNlcmAKICAgICogYGtl\neXdvcmRgOiBzdHJpbmcKKiBgbGVnYWN5X3NlYXJjaF91c2VyX2J5X2VtYWls\nKCBlbWFpbCApYDogYE5hbWVkVXNlcmAKICAgICogYGVtYWlsYDogc3RyaW5n\nCiogYHJlbmRlcl9tYXJrZG93biggdGV4dCwgW2NvbnRleHRdIClgOiBzdHJp\nbmcKICAgICogYHRleHRgOiBzdHJpbmcKICAgICogYGNvbnRleHRgOiBgUmVw\nb3NpdG9yeWAKCkNsYXNzIGBHaXRodWJFeGNlcHRpb25gCj09PT09PT09PT09\nPT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgc3RhdHVz\nYDogaW50ZWdlcgoqIGBkYXRhYDogZGljdAoKQ2xhc3MgYEF1dGhlbnRpY2F0\nZWRVc2VyYAo9PT09PT09PT09PT09PT09PT09PT09PT09CgpBdHRyaWJ1dGVz\nCi0tLS0tLS0tLS0KKiBgYXZhdGFyX3VybGA6IHN0cmluZwoqIGBiaW9gOiBz\ndHJpbmcKKiBgYmxvZ2A6IHN0cmluZwoqIGBjb2xsYWJvcmF0b3JzYDogaW50\nZWdlcgoqIGBjb21wYW55YDogc3RyaW5nCiogYGNyZWF0ZWRfYXRgOiBkYXRl\ndGltZS5kYXRldGltZQoqIGBkaXNrX3VzYWdlYDogaW50ZWdlcgoqIGBlbWFp\nbGA6IHN0cmluZwoqIGBmb2xsb3dlcnNgOiBpbnRlZ2VyCiogYGZvbGxvd2lu\nZ2A6IGludGVnZXIKKiBgZ3JhdmF0YXJfaWRgOiBzdHJpbmcKKiBgaGlyZWFi\nbGVgOiBib29sCiogYGh0bWxfdXJsYDogc3RyaW5nCiogYGlkYDogaW50ZWdl\ncgoqIGBsb2NhdGlvbmA6IHN0cmluZwoqIGBsb2dpbmA6IHN0cmluZwoqIGBu\nYW1lYDogc3RyaW5nCiogYG93bmVkX3ByaXZhdGVfcmVwb3NgOiBpbnRlZ2Vy\nCiogYHBsYW5gOiBgUGxhbmAKKiBgcHJpdmF0ZV9naXN0c2A6IGludGVnZXIK\nKiBgcHVibGljX2dpc3RzYDogaW50ZWdlcgoqIGBwdWJsaWNfcmVwb3NgOiBp\nbnRlZ2VyCiogYHRvdGFsX3ByaXZhdGVfcmVwb3NgOiBpbnRlZ2VyCiogYHR5\ncGVgOiBzdHJpbmcKKiBgdXJsYDogc3RyaW5nCgpBdXRob3JpemF0aW9ucwot\nLS0tLS0tLS0tLS0tLQoqIGBjcmVhdGVfYXV0aG9yaXphdGlvbiggW3Njb3Bl\ncywgbm90ZSwgbm90ZV91cmxdIClgOiBgQXV0aG9yaXphdGlvbmAKICAgICog\nYHNjb3Blc2A6IGxpc3Qgb2Ygc3RyaW5nCiAgICAqIGBub3RlYDogc3RyaW5n\nCiAgICAqIGBub3RlX3VybGA6IHN0cmluZwoqIGBnZXRfYXV0aG9yaXphdGlv\nbiggaWQgKWA6IGBBdXRob3JpemF0aW9uYAogICAgKiBgaWRgOiBpbnRlZ2Vy\nCiogYGdldF9hdXRob3JpemF0aW9ucygpYDogaXRlcmF0b3Igb2YgYEF1dGhv\ncml6YXRpb25gCgpFbWFpbHMKLS0tLS0tCiogYGFkZF90b19lbWFpbHMoIGVt\nYWlsLCAuLi4gKWAKICAgICogYGVtYWlsYDogc3RyaW5nCiogYGdldF9lbWFp\nbHMoKWA6IGxpc3Qgb2Ygc3RyaW5nCiogYHJlbW92ZV9mcm9tX2VtYWlscygg\nZW1haWwsIC4uLiApYAogICAgKiBgZW1haWxgOiBzdHJpbmcKCkV2ZW50cwot\nLS0tLS0KKiBgZ2V0X2V2ZW50cygpYDogaXRlcmF0b3Igb2YgYEV2ZW50YAoq\nIGBnZXRfb3JnYW5pemF0aW9uX2V2ZW50cyggb3JnIClgOiBpdGVyYXRvciBv\nZiBgRXZlbnRgCiAgICAqIGBvcmdgOiBgT3JnYW5pemF0aW9uYAoKRm9sbG93\nZXJzCi0tLS0tLS0tLQoqIGBnZXRfZm9sbG93ZXJzKClgOiBpdGVyYXRvciBv\nZiBgTmFtZWRVc2VyYAoKRm9sbG93aW5nCi0tLS0tLS0tLQoqIGBhZGRfdG9f\nZm9sbG93aW5nKCBmb2xsb3dpbmcgKWAKICAgICogYGZvbGxvd2luZ2A6IGBO\nYW1lZFVzZXJgCiogYGdldF9mb2xsb3dpbmcoKWA6IGl0ZXJhdG9yIG9mIGBO\nYW1lZFVzZXJgCiogYGhhc19pbl9mb2xsb3dpbmcoIGZvbGxvd2luZyApYDog\nYm9vbAogICAgKiBgZm9sbG93aW5nYDogYE5hbWVkVXNlcmAKKiBgcmVtb3Zl\nX2Zyb21fZm9sbG93aW5nKCBmb2xsb3dpbmcgKWAKICAgICogYGZvbGxvd2lu\nZ2A6IGBOYW1lZFVzZXJgCgpGb3JraW5nCi0tLS0tLS0KKiBgY3JlYXRlX2Zv\ncmsoIHJlcG8gKWA6IGBSZXBvc2l0b3J5YAogICAgKiBgcmVwb2A6IGBSZXBv\nc2l0b3J5YAoKR2lzdHMKLS0tLS0KKiBgY3JlYXRlX2dpc3QoIHB1YmxpYywg\nZmlsZXMsIFtkZXNjcmlwdGlvbl0gKWA6IGBHaXN0YAogICAgKiBgcHVibGlj\nYDogYm9vbAogICAgKiBgZmlsZXNgOiBkaWN0IG9mIHN0cmluZyB0byBgSW5w\ndXRGaWxlQ29udGVudGAKICAgICogYGRlc2NyaXB0aW9uYDogc3RyaW5nCiog\nYGdldF9naXN0cygpYDogaXRlcmF0b3Igb2YgYEdpc3RgCiogYGdldF9zdGFy\ncmVkX2dpc3RzKClgOiBpdGVyYXRvciBvZiBgR2lzdGAKCklzc3VlcwotLS0t\nLS0KKiBgZ2V0X2lzc3VlcygpYDogaXRlcmF0b3Igb2YgYElzc3VlYAoKS2V5\ncwotLS0tCiogYGNyZWF0ZV9rZXkoIHRpdGxlLCBrZXkgKWA6IGBVc2VyS2V5\nYAogICAgKiBgdGl0bGVgOiBzdHJpbmcKICAgICogYGtleWA6IHN0cmluZwoq\nIGBnZXRfa2V5KCBpZCApYDogYFVzZXJLZXlgCiAgICAqIGBpZGA6IGludGVn\nZXIKKiBgZ2V0X2tleXMoKWA6IGl0ZXJhdG9yIG9mIGBVc2VyS2V5YAoKTW9k\naWZpY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBbbmFtZSwgZW1haWws\nIGJsb2csIGNvbXBhbnksIGxvY2F0aW9uLCBoaXJlYWJsZSwgYmlvXSApYAog\nICAgKiBgbmFtZWA6IHN0cmluZwogICAgKiBgZW1haWxgOiBzdHJpbmcKICAg\nICogYGJsb2dgOiBzdHJpbmcKICAgICogYGNvbXBhbnlgOiBzdHJpbmcKICAg\nICogYGxvY2F0aW9uYDogc3RyaW5nCiAgICAqIGBoaXJlYWJsZWA6IGJvb2wK\nICAgICogYGJpb2A6IHN0cmluZwoKT3JncwotLS0tCiogYGdldF9vcmdzKClg\nOiBpdGVyYXRvciBvZiBgT3JnYW5pemF0aW9uYAoKUmVwb3MKLS0tLS0KKiBg\nY3JlYXRlX3JlcG8oIG5hbWUsIFtkZXNjcmlwdGlvbiwgaG9tZXBhZ2UsIHBy\naXZhdGUsIGhhc19pc3N1ZXMsIGhhc193aWtpLCBoYXNfZG93bmxvYWRzXSAp\nYDogYFJlcG9zaXRvcnlgCiAgICAqIGBuYW1lYDogc3RyaW5nCiAgICAqIGBk\nZXNjcmlwdGlvbmA6IHN0cmluZwogICAgKiBgaG9tZXBhZ2VgOiBzdHJpbmcK\nICAgICogYHByaXZhdGVgOiBib29sCiAgICAqIGBoYXNfaXNzdWVzYDogYm9v\nbAogICAgKiBgaGFzX3dpa2lgOiBib29sCiAgICAqIGBoYXNfZG93bmxvYWRz\nYDogYm9vbAoqIGBnZXRfcmVwbyggbmFtZSApYDogYFJlcG9zaXRvcnlgCiAg\nICAqIGBuYW1lYDogc3RyaW5nCiogYGdldF9yZXBvcyggW3R5cGUsIHNvcnQs\nIGRpcmVjdGlvbl0gKWA6IGl0ZXJhdG9yIG9mIGBSZXBvc2l0b3J5YAogICAg\nKiBgdHlwZWA6IHN0cmluZwogICAgKiBgc29ydGA6IHN0cmluZwogICAgKiBg\nZGlyZWN0aW9uYDogc3RyaW5nCgpXYXRjaGVkCi0tLS0tLS0KKiBgYWRkX3Rv\nX3dhdGNoZWQoIHdhdGNoZWQgKWAKICAgICogYHdhdGNoZWRgOiBgUmVwb3Np\ndG9yeWAKKiBgZ2V0X3dhdGNoZWQoKWA6IGl0ZXJhdG9yIG9mIGBSZXBvc2l0\nb3J5YAoqIGBoYXNfaW5fd2F0Y2hlZCggd2F0Y2hlZCApYDogYm9vbAogICAg\nKiBgd2F0Y2hlZGA6IGBSZXBvc2l0b3J5YAoqIGByZW1vdmVfZnJvbV93YXRj\naGVkKCB3YXRjaGVkIClgCiAgICAqIGB3YXRjaGVkYDogYFJlcG9zaXRvcnlg\nCgpDbGFzcyBgQXV0aG9yaXphdGlvbmAKPT09PT09PT09PT09PT09PT09PT09\nCgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgYXBwYDogYEF1dGhvcml6YXRp\nb25BcHBsaWNhdGlvbmAKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0\naW1lCiogYGlkYDogaW50ZWdlcgoqIGBub3RlYDogc3RyaW5nCiogYG5vdGVf\ndXJsYDogc3RyaW5nCiogYHNjb3Blc2A6IGxpc3Qgb2Ygc3RyaW5nCiogYHRv\na2VuYDogc3RyaW5nCiogYHVwZGF0ZWRfYXRgOiBkYXRldGltZS5kYXRldGlt\nZQoqIGB1cmxgOiBzdHJpbmcKCkRlbGV0aW9uCi0tLS0tLS0tCiogYGRlbGV0\nZSgpYAoKTW9kaWZpY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBbc2Nv\ncGVzLCBhZGRfc2NvcGVzLCByZW1vdmVfc2NvcGVzLCBub3RlLCBub3RlX3Vy\nbF0gKWAKICAgICogYHNjb3Blc2A6IGxpc3Qgb2Ygc3RyaW5nCiAgICAqIGBh\nZGRfc2NvcGVzYDogbGlzdCBvZiBzdHJpbmcKICAgICogYHJlbW92ZV9zY29w\nZXNgOiBsaXN0IG9mIHN0cmluZwogICAgKiBgbm90ZWA6IHN0cmluZwogICAg\nKiBgbm90ZV91cmxgOiBzdHJpbmcKCkNsYXNzIGBBdXRob3JpemF0aW9uQXBw\nbGljYXRpb25gCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpB\ndHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgbmFtZWA6IHN0cmluZwoqIGB1cmxg\nOiBzdHJpbmcKCkNsYXNzIGBCcmFuY2hgCj09PT09PT09PT09PT09CgpBdHRy\naWJ1dGVzCi0tLS0tLS0tLS0KKiBgY29tbWl0YDogYENvbW1pdGAKKiBgbmFt\nZWA6IHN0cmluZwoKQ2xhc3MgYENvbW1pdGAKPT09PT09PT09PT09PT0KCkF0\ndHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBhdXRob3JgOiBgTmFtZWRVc2VyYAoq\nIGBjb21taXRgOiBgR2l0Q29tbWl0YAoqIGBjb21taXR0ZXJgOiBgTmFtZWRV\nc2VyYAoqIGBmaWxlc2A6IGxpc3Qgb2YgYEZpbGVgCiogYHBhcmVudHNgOiBs\naXN0IG9mIGBDb21taXRgCiogYHNoYWA6IHN0cmluZwoqIGBzdGF0c2A6IGBD\nb21taXRTdGF0c2AKKiBgdXJsYDogc3RyaW5nCgpDb21tZW50cwotLS0tLS0t\nLQoqIGBjcmVhdGVfY29tbWVudCggYm9keSwgW2xpbmUsIHBhdGgsIHBvc2l0\naW9uXSApYDogYENvbW1pdENvbW1lbnRgCiAgICAqIGBib2R5YDogc3RyaW5n\nCiAgICAqIGBsaW5lYDogaW50ZWdlcgogICAgKiBgcGF0aGA6IHN0cmluZwog\nICAgKiBgcG9zaXRpb25gOiBpbnRlZ2VyCiogYGdldF9jb21tZW50cygpYDog\naXRlcmF0b3Igb2YgYENvbW1pdENvbW1lbnRgCgpDbGFzcyBgQ29tbWl0Q29t\nbWVudGAKPT09PT09PT09PT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0t\nLS0tLS0KKiBgYm9keWA6IHN0cmluZwoqIGBjb21taXRfaWRgOiBzdHJpbmcK\nKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGh0bWxfdXJs\nYDogc3RyaW5nCiogYGlkYDogaW50ZWdlcgoqIGBsaW5lYDogaW50ZWdlcgoq\nIGBwYXRoYDogc3RyaW5nCiogYHBvc2l0aW9uYDogaW50ZWdlcgoqIGB1cGRh\ndGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgdXJsYDogc3RyaW5nCiog\nYHVzZXJgOiBgTmFtZWRVc2VyYAoKRGVsZXRpb24KLS0tLS0tLS0KKiBgZGVs\nZXRlKClgCgpNb2RpZmljYXRpb24KLS0tLS0tLS0tLS0tCiogYGVkaXQoIGJv\nZHkgKWAKICAgICogYGJvZHlgOiBzdHJpbmcKCkNsYXNzIGBDb21taXRTdGF0\nc2AKPT09PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0t\nCiogYGFkZGl0aW9uc2A6IGludGVnZXIKKiBgZGVsZXRpb25zYDogaW50ZWdl\ncgoqIGB0b3RhbGA6IGludGVnZXIKCkNsYXNzIGBDb21wYXJpc29uYAo9PT09\nPT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBhaGVh\nZF9ieWA6IGludGVnZXIKKiBgYmFzZV9jb21taXRgOiBgQ29tbWl0YAoqIGBi\nZWhpbmRfYnlgOiBpbnRlZ2VyCiogYGNvbW1pdHNgOiBsaXN0IG9mIGBDb21t\naXRgCiogYGRpZmZfdXJsYDogc3RyaW5nCiogYGZpbGVzYDogbGlzdCBvZiBg\nRmlsZWAKKiBgaHRtbF91cmxgOiBzdHJpbmcKKiBgcGF0Y2hfdXJsYDogc3Ry\naW5nCiogYHBlcm1hbGlua191cmxgOiBzdHJpbmcKKiBgc3RhdHVzYDogc3Ry\naW5nCiogYHRvdGFsX2NvbW1pdHNgOiBpbnRlZ2VyCiogYHVybGA6IHN0cmlu\nZwoKQ2xhc3MgYERvd25sb2FkYAo9PT09PT09PT09PT09PT09CgpBdHRyaWJ1\ndGVzCi0tLS0tLS0tLS0KKiBgYWNjZXNza2V5aWRgOiBzdHJpbmcKKiBgYWNs\nYDogc3RyaW5nCiogYGJ1Y2tldGA6IHN0cmluZwoqIGBjb250ZW50X3R5cGVg\nOiBzdHJpbmcKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiog\nYGRlc2NyaXB0aW9uYDogc3RyaW5nCiogYGRvd25sb2FkX2NvdW50YDogaW50\nZWdlcgoqIGBleHBpcmF0aW9uZGF0ZWA6IGRhdGV0aW1lLmRhdGV0aW1lCiog\nYGh0bWxfdXJsYDogc3RyaW5nCiogYGlkYDogaW50ZWdlcgoqIGBtaW1lX3R5\ncGVgOiBzdHJpbmcKKiBgbmFtZWA6IHN0cmluZwoqIGBwYXRoYDogc3RyaW5n\nCiogYHBvbGljeWA6IHN0cmluZwoqIGBwcmVmaXhgOiBzdHJpbmcKKiBgcmVk\naXJlY3RgOiBib29sCiogYHMzX3VybGA6IHN0cmluZwoqIGBzaWduYXR1cmVg\nOiBzdHJpbmcKKiBgc2l6ZWA6IGludGVnZXIKKiBgdXJsYDogc3RyaW5nCgpE\nZWxldGlvbgotLS0tLS0tLQoqIGBkZWxldGUoKWAKCkNsYXNzIGBFdmVudGAK\nPT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGFjdG9y\nYDogYE5hbWVkVXNlcmAKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0\naW1lCiogYGlkYDogc3RyaW5nCiogYG9yZ2A6IGBPcmdhbml6YXRpb25gCiog\nYHBheWxvYWRgOiBkaWN0CiogYHB1YmxpY2A6IGJvb2wKKiBgcmVwb2A6IGBS\nZXBvc2l0b3J5YAoqIGB0eXBlYDogc3RyaW5nCgpDbGFzcyBgRmlsZWAKPT09\nPT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgYWRkaXRpb25z\nYDogaW50ZWdlcgoqIGBibG9iX3VybGA6IHN0cmluZwoqIGBjaGFuZ2VzYDog\naW50ZWdlcgoqIGBkZWxldGlvbnNgOiBpbnRlZ2VyCiogYGZpbGVuYW1lYDog\nc3RyaW5nCiogYHBhdGNoYDogc3RyaW5nCiogYHJhd191cmxgOiBzdHJpbmcK\nKiBgc2hhYDogc3RyaW5nCiogYHN0YXR1c2A6IHN0cmluZwoKQ2xhc3MgYEdp\nc3RgCj09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNv\nbW1lbnRzYDogaW50ZWdlcgoqIGBjcmVhdGVkX2F0YDogZGF0ZXRpbWUuZGF0\nZXRpbWUKKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcKKiBgZmlsZXNgOiBkaWN0\nIG9mIHN0cmluZyB0byBgR2lzdEZpbGVgCiogYGZvcmtfb2ZgOiBgR2lzdGAK\nKiBgZm9ya3NgOiBsaXN0IG9mIGBHaXN0YAoqIGBnaXRfcHVsbF91cmxgOiBz\ndHJpbmcKKiBgZ2l0X3B1c2hfdXJsYDogc3RyaW5nCiogYGhpc3RvcnlgOiBs\naXN0IG9mIGBHaXN0SGlzdG9yeVN0YXRlYAoqIGBodG1sX3VybGA6IHN0cmlu\nZwoqIGBpZGA6IHN0cmluZwoqIGBwdWJsaWNgOiBib29sCiogYHVwZGF0ZWRf\nYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGB1cmxgOiBzdHJpbmcKKiBgdXNl\ncmA6IGBOYW1lZFVzZXJgCgpDb21tZW50cwotLS0tLS0tLQoqIGBjcmVhdGVf\nY29tbWVudCggYm9keSApYDogYEdpc3RDb21tZW50YAogICAgKiBgYm9keWA6\nIHN0cmluZwoqIGBnZXRfY29tbWVudCggaWQgKWA6IGBHaXN0Q29tbWVudGAK\nICAgICogYGlkYDogaW50ZWdlcgoqIGBnZXRfY29tbWVudHMoKWA6IGl0ZXJh\ndG9yIG9mIGBHaXN0Q29tbWVudGAKCkRlbGV0aW9uCi0tLS0tLS0tCiogYGRl\nbGV0ZSgpYAoKRm9ya2luZwotLS0tLS0tCiogYGNyZWF0ZV9mb3JrKClgOiBg\nR2lzdGAKCk1vZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0KKiBgZWRpdCggW2Rl\nc2NyaXB0aW9uLCBmaWxlc10gKWAKICAgICogYGRlc2NyaXB0aW9uYDogc3Ry\naW5nCiAgICAqIGBmaWxlc2A6IGRpY3Qgb2Ygc3RyaW5nIHRvIGBJbnB1dEZp\nbGVDb250ZW50YAoKU3RhcnJpbmcKLS0tLS0tLS0KKiBgaXNfc3RhcnJlZCgp\nYDogYm9vbAoqIGByZXNldF9zdGFycmVkKClgCiogYHNldF9zdGFycmVkKClg\nCgpDbGFzcyBgR2lzdENvbW1lbnRgCj09PT09PT09PT09PT09PT09PT0KCkF0\ndHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBib2R5YDogc3RyaW5nCiogYGNyZWF0\nZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBpZGA6IGludGVnZXIKKiBg\ndXBkYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYHVybGA6IHN0cmlu\nZwoqIGB1c2VyYDogYE5hbWVkVXNlcmAKCkRlbGV0aW9uCi0tLS0tLS0tCiog\nYGRlbGV0ZSgpYAoKTW9kaWZpY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0\nKCBib2R5IClgCiAgICAqIGBib2R5YDogc3RyaW5nCgpDbGFzcyBgR2lzdEZp\nbGVgCj09PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoq\nIGBjb250ZW50YDogc3RyaW5nCiogYGZpbGVuYW1lYDogc3RyaW5nCiogYGxh\nbmd1YWdlYDogc3RyaW5nCiogYHJhd191cmxgOiBzdHJpbmcKKiBgc2l6ZWA6\nIGludGVnZXIKCkNsYXNzIGBHaXN0SGlzdG9yeVN0YXRlYAo9PT09PT09PT09\nPT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBjaGFu\nZ2Vfc3RhdHVzYDogYENvbW1pdFN0YXRzYAoqIGBjb21taXR0ZWRfYXRgOiBk\nYXRldGltZS5kYXRldGltZQoqIGB1cmxgOiBzdHJpbmcKKiBgdXNlcmA6IGBO\nYW1lZFVzZXJgCiogYHZlcnNpb25gOiBzdHJpbmcKCkNsYXNzIGBHaXRBdXRo\nb3JgCj09PT09PT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0K\nKiBgZGF0ZWA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGVtYWlsYDogc3RyaW5n\nCiogYG5hbWVgOiBzdHJpbmcKCkNsYXNzIGBHaXRCbG9iYAo9PT09PT09PT09\nPT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBjb250ZW50YDogc3Ry\naW5nCiogYGVuY29kaW5nYDogc3RyaW5nCiogYHNoYWA6IHN0cmluZwoqIGBz\naXplYDogaW50ZWdlcgoqIGB1cmxgOiBzdHJpbmcKCkNsYXNzIGBHaXRDb21t\naXRgCj09PT09PT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0K\nKiBgYXV0aG9yYDogYEdpdEF1dGhvcmAKKiBgY29tbWl0dGVyYDogYEdpdEF1\ndGhvcmAKKiBgbWVzc2FnZWA6IHN0cmluZwoqIGBwYXJlbnRzYDogbGlzdCBv\nZiBgR2l0Q29tbWl0YAoqIGBzaGFgOiBzdHJpbmcKKiBgdHJlZWA6IGBHaXRU\ncmVlYAoqIGB1cmxgOiBzdHJpbmcKCkNsYXNzIGBHaXRPYmplY3RgCj09PT09\nPT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgc2hhYDog\nc3RyaW5nCiogYHR5cGVgOiBzdHJpbmcKKiBgdXJsYDogc3RyaW5nCgpDbGFz\ncyBgR2l0UmVmYAo9PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0t\nLS0tCiogYG9iamVjdGA6IGBHaXRPYmplY3RgCiogYHJlZmA6IHN0cmluZwoq\nIGB1cmxgOiBzdHJpbmcKCkRlbGV0aW9uCi0tLS0tLS0tCiogYGRlbGV0ZSgp\nYAoKTW9kaWZpY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBzaGEsIFtm\nb3JjZV0gKWAKICAgICogYHNoYWA6IHN0cmluZwogICAgKiBgZm9yY2VgOiBi\nb29sCgpDbGFzcyBgR2l0VGFnYAo9PT09PT09PT09PT09PQoKQXR0cmlidXRl\ncwotLS0tLS0tLS0tCiogYG1lc3NhZ2VgOiBzdHJpbmcKKiBgb2JqZWN0YDog\nYEdpdE9iamVjdGAKKiBgc2hhYDogc3RyaW5nCiogYHRhZ2A6IHN0cmluZwoq\nIGB0YWdnZXJgOiBgR2l0QXV0aG9yYAoqIGB1cmxgOiBzdHJpbmcKCkNsYXNz\nIGBHaXRUcmVlYAo9PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0t\nLS0tLQoqIGBzaGFgOiBzdHJpbmcKKiBgdHJlZWA6IGxpc3Qgb2YgYEdpdFRy\nZWVFbGVtZW50YAoqIGB1cmxgOiBzdHJpbmcKCkNsYXNzIGBHaXRUcmVlRWxl\nbWVudGAKPT09PT09PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0t\nLS0tLS0tCiogYG1vZGVgOiBzdHJpbmcKKiBgcGF0aGA6IHN0cmluZwoqIGBz\naGFgOiBzdHJpbmcKKiBgc2l6ZWA6IGludGVnZXIKKiBgdHlwZWA6IHN0cmlu\nZwoqIGB1cmxgOiBzdHJpbmcKCkNsYXNzIGBIb29rYAo9PT09PT09PT09PT0K\nCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBhY3RpdmVgOiBib29sCiogYGNv\nbmZpZ2A6IGRpY3QKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1l\nCiogYGV2ZW50c2A6IGxpc3Qgb2Ygc3RyaW5nCiogYGlkYDogaW50ZWdlcgoq\nIGBsYXN0X3Jlc3BvbnNlYDogYEhvb2tSZXNwb25zZWAKKiBgbmFtZWA6IHN0\ncmluZwoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgdXJs\nYDogc3RyaW5nCgpEZWxldGlvbgotLS0tLS0tLQoqIGBkZWxldGUoKWAKCk1v\nZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0KKiBgZWRpdCggbmFtZSwgY29uZmln\nLCBbZXZlbnRzLCBhZGRfZXZlbnRzLCByZW1vdmVfZXZlbnRzLCBhY3RpdmVd\nIClgCiAgICAqIGBuYW1lYDogc3RyaW5nCiAgICAqIGBjb25maWdgOiBkaWN0\nCiAgICAqIGBldmVudHNgOiBsaXN0IG9mIHN0cmluZwogICAgKiBgYWRkX2V2\nZW50c2A6IGxpc3Qgb2Ygc3RyaW5nCiAgICAqIGByZW1vdmVfZXZlbnRzYDog\nbGlzdCBvZiBzdHJpbmcKICAgICogYGFjdGl2ZWA6IGJvb2wKClRlc3RpbmcK\nLS0tLS0tLQoqIGB0ZXN0KClgCgpDbGFzcyBgSG9va1Jlc3BvbnNlYAo9PT09\nPT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNv\nZGVgOiBpbnRlZ2VyCiogYG1lc3NhZ2VgOiBzdHJpbmcKKiBgc3RhdHVzYDog\nc3RyaW5nCgpDbGFzcyBgSXNzdWVgCj09PT09PT09PT09PT0KCkF0dHJpYnV0\nZXMKLS0tLS0tLS0tLQoqIGBhc3NpZ25lZWA6IGBOYW1lZFVzZXJgCiogYGJv\nZHlgOiBzdHJpbmcKKiBgY2xvc2VkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUK\nKiBgY2xvc2VkX2J5YDogYE5hbWVkVXNlcmAKKiBgY29tbWVudHNgOiBpbnRl\nZ2VyCiogYGNyZWF0ZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBodG1s\nX3VybGA6IHN0cmluZwoqIGBpZGA6IGludGVnZXIKKiBgbGFiZWxzYDogbGlz\ndCBvZiBgTGFiZWxgCiogYG1pbGVzdG9uZWA6IGBNaWxlc3RvbmVgCiogYG51\nbWJlcmA6IGludGVnZXIKKiBgcHVsbF9yZXF1ZXN0YDogYElzc3VlUHVsbFJl\ncXVlc3RgCiogYHJlcG9zaXRvcnlgOiBgUmVwb3NpdG9yeWAKKiBgc3RhdGVg\nOiBzdHJpbmcKKiBgdGl0bGVgOiBzdHJpbmcKKiBgdXBkYXRlZF9hdGA6IGRh\ndGV0aW1lLmRhdGV0aW1lCiogYHVybGA6IHN0cmluZwoqIGB1c2VyYDogYE5h\nbWVkVXNlcmAKCkNvbW1lbnRzCi0tLS0tLS0tCiogYGNyZWF0ZV9jb21tZW50\nKCBib2R5IClgOiBgSXNzdWVDb21tZW50YAogICAgKiBgYm9keWA6IHN0cmlu\nZwoqIGBnZXRfY29tbWVudCggaWQgKWA6IGBJc3N1ZUNvbW1lbnRgCiAgICAq\nIGBpZGA6IGludGVnZXIKKiBgZ2V0X2NvbW1lbnRzKClgOiBpdGVyYXRvciBv\nZiBgSXNzdWVDb21tZW50YAoKRXZlbnRzCi0tLS0tLQoqIGBnZXRfZXZlbnRz\nKClgOiBpdGVyYXRvciBvZiBgSXNzdWVFdmVudGAKCkxhYmVscwotLS0tLS0K\nKiBgYWRkX3RvX2xhYmVscyggbGFiZWwsIC4uLiApYAogICAgKiBgbGFiZWxg\nOiBgTGFiZWxgCiogYGRlbGV0ZV9sYWJlbHMoKWAKKiBgZ2V0X2xhYmVscygp\nYDogaXRlcmF0b3Igb2YgYExhYmVsYAoqIGByZW1vdmVfZnJvbV9sYWJlbHMo\nIGxhYmVsIClgCiAgICAqIGBsYWJlbGA6IGBMYWJlbGAKKiBgc2V0X2xhYmVs\ncyggbGFiZWwsIC4uLiApYAogICAgKiBgbGFiZWxgOiBgTGFiZWxgCgpNb2Rp\nZmljYXRpb24KLS0tLS0tLS0tLS0tCiogYGVkaXQoIFt0aXRsZSwgYm9keSwg\nYXNzaWduZWUsIHN0YXRlLCBtaWxlc3RvbmUsIGxhYmVsc10gKWAKICAgICog\nYHRpdGxlYDogc3RyaW5nCiAgICAqIGBib2R5YDogc3RyaW5nCiAgICAqIGBh\nc3NpZ25lZWA6IGBOYW1lZFVzZXJgCiAgICAqIGBzdGF0ZWA6IHN0cmluZwog\nICAgKiBgbWlsZXN0b25lYDogYE1pbGVzdG9uZWAKICAgICogYGxhYmVsc2A6\nIGxpc3Qgb2Ygc3RyaW5nCgpDbGFzcyBgSXNzdWVDb21tZW50YAo9PT09PT09\nPT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGJvZHlg\nOiBzdHJpbmcKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiog\nYGlkYDogaW50ZWdlcgoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRp\nbWUKKiBgdXJsYDogc3RyaW5nCiogYHVzZXJgOiBgTmFtZWRVc2VyYAoKRGVs\nZXRpb24KLS0tLS0tLS0KKiBgZGVsZXRlKClgCgpNb2RpZmljYXRpb24KLS0t\nLS0tLS0tLS0tCiogYGVkaXQoIGJvZHkgKWAKICAgICogYGJvZHlgOiBzdHJp\nbmcKCkNsYXNzIGBJc3N1ZUV2ZW50YAo9PT09PT09PT09PT09PT09PT0KCkF0\ndHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBhY3RvcmA6IGBOYW1lZFVzZXJgCiog\nYGNvbW1pdF9pZGA6IHN0cmluZwoqIGBjcmVhdGVkX2F0YDogZGF0ZXRpbWUu\nZGF0ZXRpbWUKKiBgZXZlbnRgOiBzdHJpbmcKKiBgaWRgOiBpbnRlZ2VyCiog\nYGlzc3VlYDogYElzc3VlYAoqIGB1cmxgOiBzdHJpbmcKCkNsYXNzIGBJc3N1\nZVB1bGxSZXF1ZXN0YAo9PT09PT09PT09PT09PT09PT09PT09PT0KCkF0dHJp\nYnV0ZXMKLS0tLS0tLS0tLQoqIGBkaWZmX3VybGA6IHN0cmluZwoqIGBodG1s\nX3VybGA6IHN0cmluZwoqIGBwYXRjaF91cmxgOiBzdHJpbmcKCkNsYXNzIGBM\nYWJlbGAKPT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiog\nYGNvbG9yYDogc3RyaW5nCiogYG5hbWVgOiBzdHJpbmcKKiBgdXJsYDogc3Ry\naW5nCgpEZWxldGlvbgotLS0tLS0tLQoqIGBkZWxldGUoKWAKCk1vZGlmaWNh\ndGlvbgotLS0tLS0tLS0tLS0KKiBgZWRpdCggbmFtZSwgY29sb3IgKWAKICAg\nICogYG5hbWVgOiBzdHJpbmcKICAgICogYGNvbG9yYDogc3RyaW5nCgpDbGFz\ncyBgTWlsZXN0b25lYAo9PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwot\nLS0tLS0tLS0tCiogYGNsb3NlZF9pc3N1ZXNgOiBpbnRlZ2VyCiogYGNyZWF0\nZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBjcmVhdG9yYDogYE5hbWVk\nVXNlcmAKKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcKKiBgZHVlX29uYDogZGF0\nZXRpbWUuZGF0ZXRpbWUKKiBgaWRgOiBpbnRlZ2VyCiogYG51bWJlcmA6IGlu\ndGVnZXIKKiBgb3Blbl9pc3N1ZXNgOiBpbnRlZ2VyCiogYHN0YXRlYDogc3Ry\naW5nCiogYHRpdGxlYDogc3RyaW5nCiogYHVybGA6IHN0cmluZwoKRGVsZXRp\nb24KLS0tLS0tLS0KKiBgZGVsZXRlKClgCgpMYWJlbHMKLS0tLS0tCiogYGdl\ndF9sYWJlbHMoKWA6IGl0ZXJhdG9yIG9mIGBMYWJlbGAKCk1vZGlmaWNhdGlv\nbgotLS0tLS0tLS0tLS0KKiBgZWRpdCggdGl0bGUsIFtzdGF0ZSwgZGVzY3Jp\ncHRpb24sIGR1ZV9vbl0gKWAKICAgICogYHRpdGxlYDogc3RyaW5nCiAgICAq\nIGBzdGF0ZWA6IHN0cmluZwogICAgKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcK\nICAgICogYGR1ZV9vbmA6IGRhdGUKCkNsYXNzIGBOYW1lZFVzZXJgCj09PT09\nPT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgYXZhdGFy\nX3VybGA6IHN0cmluZwoqIGBiaW9gOiBzdHJpbmcKKiBgYmxvZ2A6IHN0cmlu\nZwoqIGBjb2xsYWJvcmF0b3JzYDogaW50ZWdlcgoqIGBjb21wYW55YDogc3Ry\naW5nCiogYGNvbnRyaWJ1dGlvbnNgOiBpbnRlZ2VyCiogYGNyZWF0ZWRfYXRg\nOiBkYXRldGltZS5kYXRldGltZQoqIGBkaXNrX3VzYWdlYDogaW50ZWdlcgoq\nIGBlbWFpbGA6IHN0cmluZwoqIGBmb2xsb3dlcnNgOiBpbnRlZ2VyCiogYGZv\nbGxvd2luZ2A6IGludGVnZXIKKiBgZ3JhdmF0YXJfaWRgOiBzdHJpbmcKKiBg\naGlyZWFibGVgOiBib29sCiogYGh0bWxfdXJsYDogc3RyaW5nCiogYGlkYDog\naW50ZWdlcgoqIGBsb2NhdGlvbmA6IHN0cmluZwoqIGBsb2dpbmA6IHN0cmlu\nZwoqIGBuYW1lYDogc3RyaW5nCiogYG93bmVkX3ByaXZhdGVfcmVwb3NgOiBp\nbnRlZ2VyCiogYHBsYW5gOiBgUGxhbmAKKiBgcHJpdmF0ZV9naXN0c2A6IGlu\ndGVnZXIKKiBgcHVibGljX2dpc3RzYDogaW50ZWdlcgoqIGBwdWJsaWNfcmVw\nb3NgOiBpbnRlZ2VyCiogYHRvdGFsX3ByaXZhdGVfcmVwb3NgOiBpbnRlZ2Vy\nCiogYHR5cGVgOiBzdHJpbmcKKiBgdXJsYDogc3RyaW5nCgpFdmVudHMKLS0t\nLS0tCiogYGdldF9ldmVudHMoKWA6IGl0ZXJhdG9yIG9mIGBFdmVudGAKKiBg\nZ2V0X3B1YmxpY19ldmVudHMoKWA6IGl0ZXJhdG9yIG9mIGBFdmVudGAKKiBg\nZ2V0X3JlY2VpdmVkX2V2ZW50cygpYDogaXRlcmF0b3Igb2YgYEV2ZW50YAoq\nIGBnZXRfcHVibGljX3JlY2VpdmVkX2V2ZW50cygpYDogaXRlcmF0b3Igb2Yg\nYEV2ZW50YAoKRm9sbG93ZXJzCi0tLS0tLS0tLQoqIGBnZXRfZm9sbG93ZXJz\nKClgOiBpdGVyYXRvciBvZiBgTmFtZWRVc2VyYAoKRm9sbG93aW5nCi0tLS0t\nLS0tLQoqIGBnZXRfZm9sbG93aW5nKClgOiBpdGVyYXRvciBvZiBgTmFtZWRV\nc2VyYAoKR2lzdHMKLS0tLS0KKiBgY3JlYXRlX2dpc3QoIHB1YmxpYywgZmls\nZXMsIFtkZXNjcmlwdGlvbl0gKWA6IGBHaXN0YAogICAgKiBgcHVibGljYDog\nYm9vbAogICAgKiBgZmlsZXNgOiBkaWN0IG9mIHN0cmluZyB0byBgSW5wdXRG\naWxlQ29udGVudGAKICAgICogYGRlc2NyaXB0aW9uYDogc3RyaW5nCiogYGdl\ndF9naXN0cygpYDogaXRlcmF0b3Igb2YgYEdpc3RgCgpPcmdzCi0tLS0KKiBg\nZ2V0X29yZ3MoKWA6IGl0ZXJhdG9yIG9mIGBPcmdhbml6YXRpb25gCgpSZXBv\ncwotLS0tLQoqIGBnZXRfcmVwbyggbmFtZSApYDogYFJlcG9zaXRvcnlgCiAg\nICAqIGBuYW1lYDogc3RyaW5nCiogYGdldF9yZXBvcyggW3R5cGVdIClgOiBp\ndGVyYXRvciBvZiBgUmVwb3NpdG9yeWAKICAgICogYHR5cGVgOiBzdHJpbmcK\nCldhdGNoZWQKLS0tLS0tLQoqIGBnZXRfd2F0Y2hlZCgpYDogaXRlcmF0b3Ig\nb2YgYFJlcG9zaXRvcnlgCgpDbGFzcyBgT3JnYW5pemF0aW9uYAo9PT09PT09\nPT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGF2YXRh\ncl91cmxgOiBzdHJpbmcKKiBgYmlsbGluZ19lbWFpbGA6IHN0cmluZwoqIGBi\nbG9nYDogc3RyaW5nCiogYGNvbGxhYm9yYXRvcnNgOiBpbnRlZ2VyCiogYGNv\nbXBhbnlgOiBzdHJpbmcKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0\naW1lCiogYGRpc2tfdXNhZ2VgOiBpbnRlZ2VyCiogYGVtYWlsYDogc3RyaW5n\nCiogYGZvbGxvd2Vyc2A6IGludGVnZXIKKiBgZm9sbG93aW5nYDogaW50ZWdl\ncgoqIGBncmF2YXRhcl9pZGA6IHN0cmluZwoqIGBodG1sX3VybGA6IHN0cmlu\nZwoqIGBpZGA6IGludGVnZXIKKiBgbG9jYXRpb25gOiBzdHJpbmcKKiBgbG9n\naW5gOiBzdHJpbmcKKiBgbmFtZWA6IHN0cmluZwoqIGBvd25lZF9wcml2YXRl\nX3JlcG9zYDogaW50ZWdlcgoqIGBwbGFuYDogYFBsYW5gCiogYHByaXZhdGVf\nZ2lzdHNgOiBpbnRlZ2VyCiogYHB1YmxpY19naXN0c2A6IGludGVnZXIKKiBg\ncHVibGljX3JlcG9zYDogaW50ZWdlcgoqIGB0b3RhbF9wcml2YXRlX3JlcG9z\nYDogaW50ZWdlcgoqIGB0eXBlYDogc3RyaW5nCiogYHVybGA6IHN0cmluZwoK\nRXZlbnRzCi0tLS0tLQoqIGBnZXRfZXZlbnRzKClgOiBpdGVyYXRvciBvZiBg\nRXZlbnRgCgpGb3JraW5nCi0tLS0tLS0KKiBgY3JlYXRlX2ZvcmsoIHJlcG8g\nKWA6IGBSZXBvc2l0b3J5YAogICAgKiBgcmVwb2A6IGBSZXBvc2l0b3J5YAoK\nTWVtYmVycwotLS0tLS0tCiogYGdldF9tZW1iZXJzKClgOiBpdGVyYXRvciBv\nZiBgTmFtZWRVc2VyYAoqIGBoYXNfaW5fbWVtYmVycyggbWVtYmVyIClgOiBi\nb29sCiAgICAqIGBtZW1iZXJgOiBgTmFtZWRVc2VyYAoqIGByZW1vdmVfZnJv\nbV9tZW1iZXJzKCBtZW1iZXIgKWAKICAgICogYG1lbWJlcmA6IGBOYW1lZFVz\nZXJgCgpNb2RpZmljYXRpb24KLS0tLS0tLS0tLS0tCiogYGVkaXQoIFtiaWxs\naW5nX2VtYWlsLCBibG9nLCBjb21wYW55LCBlbWFpbCwgbG9jYXRpb24sIG5h\nbWVdIClgCiAgICAqIGBiaWxsaW5nX2VtYWlsYDogc3RyaW5nCiAgICAqIGBi\nbG9nYDogc3RyaW5nCiAgICAqIGBjb21wYW55YDogc3RyaW5nCiAgICAqIGBl\nbWFpbGA6IHN0cmluZwogICAgKiBgbG9jYXRpb25gOiBzdHJpbmcKICAgICog\nYG5hbWVgOiBzdHJpbmcKClB1YmxpY19tZW1iZXJzCi0tLS0tLS0tLS0tLS0t\nCiogYGFkZF90b19wdWJsaWNfbWVtYmVycyggcHVibGljX21lbWJlciApYAog\nICAgKiBgcHVibGljX21lbWJlcmA6IGBOYW1lZFVzZXJgCiogYGdldF9wdWJs\naWNfbWVtYmVycygpYDogaXRlcmF0b3Igb2YgYE5hbWVkVXNlcmAKKiBgaGFz\nX2luX3B1YmxpY19tZW1iZXJzKCBwdWJsaWNfbWVtYmVyIClgOiBib29sCiAg\nICAqIGBwdWJsaWNfbWVtYmVyYDogYE5hbWVkVXNlcmAKKiBgcmVtb3ZlX2Zy\nb21fcHVibGljX21lbWJlcnMoIHB1YmxpY19tZW1iZXIgKWAKICAgICogYHB1\nYmxpY19tZW1iZXJgOiBgTmFtZWRVc2VyYAoKUmVwb3MKLS0tLS0KKiBgY3Jl\nYXRlX3JlcG8oIG5hbWUsIFtkZXNjcmlwdGlvbiwgaG9tZXBhZ2UsIHByaXZh\ndGUsIGhhc19pc3N1ZXMsIGhhc193aWtpLCBoYXNfZG93bmxvYWRzLCB0ZWFt\nX2lkXSApYDogYFJlcG9zaXRvcnlgCiAgICAqIGBuYW1lYDogc3RyaW5nCiAg\nICAqIGBkZXNjcmlwdGlvbmA6IHN0cmluZwogICAgKiBgaG9tZXBhZ2VgOiBz\ndHJpbmcKICAgICogYHByaXZhdGVgOiBib29sCiAgICAqIGBoYXNfaXNzdWVz\nYDogYm9vbAogICAgKiBgaGFzX3dpa2lgOiBib29sCiAgICAqIGBoYXNfZG93\nbmxvYWRzYDogYm9vbAogICAgKiBgdGVhbV9pZGA6IGBUZWFtYAoqIGBnZXRf\ncmVwbyggbmFtZSApYDogYFJlcG9zaXRvcnlgCiAgICAqIGBuYW1lYDogc3Ry\naW5nCiogYGdldF9yZXBvcyggW3R5cGVdIClgOiBpdGVyYXRvciBvZiBgUmVw\nb3NpdG9yeWAKICAgICogYHR5cGVgOiBzdHJpbmcKClRlYW1zCi0tLS0tCiog\nYGNyZWF0ZV90ZWFtKCBuYW1lLCBbcmVwb19uYW1lcywgcGVybWlzc2lvbl0g\nKWA6IGBUZWFtYAogICAgKiBgbmFtZWA6IHN0cmluZwogICAgKiBgcmVwb19u\nYW1lc2A6IGxpc3Qgb2YgYFJlcG9zaXRvcnlgCiAgICAqIGBwZXJtaXNzaW9u\nYDogc3RyaW5nCiogYGdldF90ZWFtKCBpZCApYDogYFRlYW1gCiAgICAqIGBp\nZGA6IGludGVnZXIKKiBgZ2V0X3RlYW1zKClgOiBpdGVyYXRvciBvZiBgVGVh\nbWAKCkNsYXNzIGBQZXJtaXNzaW9uc2AKPT09PT09PT09PT09PT09PT09PQoK\nQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGFkbWluYDogYm9vbAoqIGBwdWxs\nYDogYm9vbAoqIGBwdXNoYDogYm9vbAoKQ2xhc3MgYFBsYW5gCj09PT09PT09\nPT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNvbGxhYm9yYXRvcnNg\nOiBpbnRlZ2VyCiogYG5hbWVgOiBzdHJpbmcKKiBgcHJpdmF0ZV9yZXBvc2A6\nIGludGVnZXIKKiBgc3BhY2VgOiBpbnRlZ2VyCgpDbGFzcyBgUHVsbFJlcXVl\nc3RgCj09PT09PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0t\nLQoqIGBhZGRpdGlvbnNgOiBpbnRlZ2VyCiogYGJhc2VgOiBgUHVsbFJlcXVl\nc3RQYXJ0YAoqIGBib2R5YDogc3RyaW5nCiogYGNoYW5nZWRfZmlsZXNgOiBp\nbnRlZ2VyCiogYGNsb3NlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGNv\nbW1lbnRzYDogaW50ZWdlcgoqIGBjb21taXRzYDogaW50ZWdlcgoqIGBjcmVh\ndGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgZGVsZXRpb25zYDogaW50\nZWdlcgoqIGBkaWZmX3VybGA6IHN0cmluZwoqIGBoZWFkYDogYFB1bGxSZXF1\nZXN0UGFydGAKKiBgaHRtbF91cmxgOiBzdHJpbmcKKiBgaWRgOiBpbnRlZ2Vy\nCiogYGlzc3VlX3VybGA6IHN0cmluZwoqIGBtZXJnZWFibGVgOiBib29sCiog\nYG1lcmdlZGA6IGJvb2wKKiBgbWVyZ2VkX2F0YDogZGF0ZXRpbWUuZGF0ZXRp\nbWUKKiBgbWVyZ2VkX2J5YDogYE5hbWVkVXNlcmAKKiBgbnVtYmVyYDogaW50\nZWdlcgoqIGBwYXRjaF91cmxgOiBzdHJpbmcKKiBgcmV2aWV3X2NvbW1lbnRz\nYDogaW50ZWdlcgoqIGBzdGF0ZWA6IHN0cmluZwoqIGB0aXRsZWA6IHN0cmlu\nZwoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgdXJsYDog\nc3RyaW5nCiogYHVzZXJgOiBgTmFtZWRVc2VyYAoKQ29tbWVudHMKLS0tLS0t\nLS0KKiBgY3JlYXRlX2NvbW1lbnQoIGJvZHksIGNvbW1pdF9pZCwgcGF0aCwg\ncG9zaXRpb24gKWA6IGBQdWxsUmVxdWVzdENvbW1lbnRgCiAgICAqIGBib2R5\nYDogc3RyaW5nCiAgICAqIGBjb21taXRfaWRgOiBgQ29tbWl0YAogICAgKiBg\ncGF0aGA6IHN0cmluZwogICAgKiBgcG9zaXRpb25gOiBpbnRlZ2VyCiogYGdl\ndF9jb21tZW50KCBpZCApYDogYFB1bGxSZXF1ZXN0Q29tbWVudGAKICAgICog\nYGlkYDogaW50ZWdlcgoqIGBnZXRfY29tbWVudHMoKWA6IGl0ZXJhdG9yIG9m\nIGBQdWxsUmVxdWVzdENvbW1lbnRgCgpDb21taXRzCi0tLS0tLS0KKiBgZ2V0\nX2NvbW1pdHMoKWA6IGl0ZXJhdG9yIG9mIGBDb21taXRgCgpGaWxlcwotLS0t\nLQoqIGBnZXRfZmlsZXMoKWA6IGl0ZXJhdG9yIG9mIGBGaWxlYAoKTWVyZ2lu\nZwotLS0tLS0tCiogYGlzX21lcmdlZCgpYDogYm9vbAoqIGBtZXJnZSggW2Nv\nbW1pdF9tZXNzYWdlXSApYDogYFB1bGxSZXF1ZXN0TWVyZ2VTdGF0dXNgCiAg\nICAqIGBjb21taXRfbWVzc2FnZWA6IHN0cmluZwoKTW9kaWZpY2F0aW9uCi0t\nLS0tLS0tLS0tLQoqIGBlZGl0KCBbdGl0bGUsIGJvZHksIHN0YXRlXSApYAog\nICAgKiBgdGl0bGVgOiBzdHJpbmcKICAgICogYGJvZHlgOiBzdHJpbmcKICAg\nICogYHN0YXRlYDogc3RyaW5nCgpDbGFzcyBgUHVsbFJlcXVlc3RDb21tZW50\nYAo9PT09PT09PT09PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0t\nLS0tLS0tCiogYGJvZHlgOiBzdHJpbmcKKiBgY29tbWl0X2lkYDogc3RyaW5n\nCiogYGNyZWF0ZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBpZGA6IGlu\ndGVnZXIKKiBgb3JpZ2luYWxfY29tbWl0X2lkYDogc3RyaW5nCiogYG9yaWdp\nbmFsX3Bvc2l0aW9uYDogaW50ZWdlcgoqIGBwYXRoYDogc3RyaW5nCiogYHBv\nc2l0aW9uYDogaW50ZWdlcgoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUuZGF0\nZXRpbWUKKiBgdXJsYDogc3RyaW5nCiogYHVzZXJgOiBgTmFtZWRVc2VyYAoK\nRGVsZXRpb24KLS0tLS0tLS0KKiBgZGVsZXRlKClgCgpNb2RpZmljYXRpb24K\nLS0tLS0tLS0tLS0tCiogYGVkaXQoIGJvZHkgKWAKICAgICogYGJvZHlgOiBz\ndHJpbmcKCkNsYXNzIGBQdWxsUmVxdWVzdE1lcmdlU3RhdHVzYAo9PT09PT09\nPT09PT09PT09PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0t\nLQoqIGBtZXJnZWRgOiBib29sCiogYG1lc3NhZ2VgOiBzdHJpbmcKKiBgc2hh\nYDogc3RyaW5nCgpDbGFzcyBgUHVsbFJlcXVlc3RQYXJ0YAo9PT09PT09PT09\nPT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGxhYmVs\nYDogc3RyaW5nCiogYHJlZmA6IHN0cmluZwoqIGByZXBvYDogYFJlcG9zaXRv\ncnlgCiogYHNoYWA6IHN0cmluZwoqIGB1c2VyYDogYE5hbWVkVXNlcmAKCkNs\nYXNzIGBSZXBvc2l0b3J5YAo9PT09PT09PT09PT09PT09PT0KCkF0dHJpYnV0\nZXMKLS0tLS0tLS0tLQoqIGBjbG9uZV91cmxgOiBzdHJpbmcKKiBgY3JlYXRl\nZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGRlc2NyaXB0aW9uYDogc3Ry\naW5nCiogYGZvcmtgOiBib29sCiogYGZvcmtzYDogaW50ZWdlcgoqIGBmdWxs\nX25hbWVgOiBzdHJpbmcKKiBgZ2l0X3VybGA6IHN0cmluZwoqIGBoYXNfZG93\nbmxvYWRzYDogYm9vbAoqIGBoYXNfaXNzdWVzYDogYm9vbAoqIGBoYXNfd2lr\naWA6IGJvb2wKKiBgaG9tZXBhZ2VgOiBzdHJpbmcKKiBgaHRtbF91cmxgOiBz\ndHJpbmcKKiBgaWRgOiBpbnRlZ2VyCiogYGxhbmd1YWdlYDogc3RyaW5nCiog\nYG1hc3Rlcl9icmFuY2hgOiBzdHJpbmcKKiBgbmFtZWA6IHN0cmluZwoqIGBv\ncGVuX2lzc3Vlc2A6IGludGVnZXIKKiBgb3JnYW5pemF0aW9uYDogYE9yZ2Fu\naXphdGlvbmAKKiBgb3duZXJgOiBgTmFtZWRVc2VyYAoqIGBwYXJlbnRgOiBg\nUmVwb3NpdG9yeWAKKiBgcGVybWlzc2lvbnNgOiBgUGVybWlzc2lvbnNgCiog\nYHByaXZhdGVgOiBib29sCiogYHB1c2hlZF9hdGA6IGRhdGV0aW1lLmRhdGV0\naW1lCiogYHNpemVgOiBpbnRlZ2VyCiogYHNvdXJjZWA6IGBSZXBvc2l0b3J5\nYAoqIGBzc2hfdXJsYDogc3RyaW5nCiogYHN2bl91cmxgOiBzdHJpbmcKKiBg\ndXBkYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYHVybGA6IHN0cmlu\nZwoqIGB3YXRjaGVyc2A6IGludGVnZXIKCkRlbGV0aW9uCi0tLS0tLS0tCiog\nYGRlbGV0ZSgpYAoKQ29tcGFyaXNvbgotLS0tLS0tLS0tCiogYGNvbXBhcmUo\nIGJhc2UsIGhlYWQgKWA6IGBDb21wYXJpc29uYAogICAgKiBgYmFzZWA6IHN0\ncmluZwogICAgKiBgaGVhZGA6IHN0cmluZwoKQnJhbmNoZXMKLS0tLS0tLS0K\nKiBgZ2V0X2JyYW5jaGVzKClgOiBpdGVyYXRvciBvZiBgQnJhbmNoYAoKQ29s\nbGFib3JhdG9ycwotLS0tLS0tLS0tLS0tCiogYGFkZF90b19jb2xsYWJvcmF0\nb3JzKCBjb2xsYWJvcmF0b3IgKWAKICAgICogYGNvbGxhYm9yYXRvcmA6IGBO\nYW1lZFVzZXJgCiogYGdldF9jb2xsYWJvcmF0b3JzKClgOiBpdGVyYXRvciBv\nZiBgTmFtZWRVc2VyYAoqIGBoYXNfaW5fY29sbGFib3JhdG9ycyggY29sbGFi\nb3JhdG9yIClgOiBib29sCiAgICAqIGBjb2xsYWJvcmF0b3JgOiBgTmFtZWRV\nc2VyYAoqIGByZW1vdmVfZnJvbV9jb2xsYWJvcmF0b3JzKCBjb2xsYWJvcmF0\nb3IgKWAKICAgICogYGNvbGxhYm9yYXRvcmA6IGBOYW1lZFVzZXJgCgpDb21t\nZW50cwotLS0tLS0tLQoqIGBnZXRfY29tbWVudCggaWQgKWA6IGBDb21taXRD\nb21tZW50YAogICAgKiBgaWRgOiBpbnRlZ2VyCiogYGdldF9jb21tZW50cygp\nYDogaXRlcmF0b3Igb2YgYENvbW1pdENvbW1lbnRgCgpDb21taXRzCi0tLS0t\nLS0KKiBgZ2V0X2NvbW1pdCggc2hhIClgOiBgQ29tbWl0YAogICAgKiBgc2hh\nYDogc3RyaW5nCiogYGdldF9jb21taXRzKCBbc2hhLCBwYXRoXSApYDogaXRl\ncmF0b3Igb2YgYENvbW1pdGAKICAgICogYHNoYWA6IHN0cmluZwogICAgKiBg\ncGF0aGA6IHN0cmluZwoKQ29udHJpYnV0b3JzCi0tLS0tLS0tLS0tLQoqIGBn\nZXRfY29udHJpYnV0b3JzKClgOiBpdGVyYXRvciBvZiBgTmFtZWRVc2VyYAoK\nRG93bmxvYWRzCi0tLS0tLS0tLQoqIGBjcmVhdGVfZG93bmxvYWQoIG5hbWUs\nIHNpemUsIFtkZXNjcmlwdGlvbiwgY29udGVudF90eXBlXSApYDogYERvd25s\nb2FkYAogICAgKiBgbmFtZWA6IHN0cmluZwogICAgKiBgc2l6ZWA6IGludGVn\nZXIKICAgICogYGRlc2NyaXB0aW9uYDogc3RyaW5nCiAgICAqIGBjb250ZW50\nX3R5cGVgOiBzdHJpbmcKKiBgZ2V0X2Rvd25sb2FkKCBpZCApYDogYERvd25s\nb2FkYAogICAgKiBgaWRgOiBpbnRlZ2VyCiogYGdldF9kb3dubG9hZHMoKWA6\nIGl0ZXJhdG9yIG9mIGBEb3dubG9hZGAKCkV2ZW50cwotLS0tLS0KKiBgZ2V0\nX2V2ZW50cygpYDogaXRlcmF0b3Igb2YgYEV2ZW50YAoqIGBnZXRfbmV0d29y\na19ldmVudHMoKWA6IGl0ZXJhdG9yIG9mIGBFdmVudGAKCkZvcmtzCi0tLS0t\nCiogYGdldF9mb3JrcygpYDogaXRlcmF0b3Igb2YgYFJlcG9zaXRvcnlgCgpH\naXRfYmxvYnMKLS0tLS0tLS0tCiogYGNyZWF0ZV9naXRfYmxvYiggY29udGVu\ndCwgZW5jb2RpbmcgKWA6IGBHaXRCbG9iYAogICAgKiBgY29udGVudGA6IHN0\ncmluZwogICAgKiBgZW5jb2RpbmdgOiBzdHJpbmcKKiBgZ2V0X2dpdF9ibG9i\nKCBzaGEgKWA6IGBHaXRCbG9iYAogICAgKiBgc2hhYDogc3RyaW5nCgpHaXRf\nY29tbWl0cwotLS0tLS0tLS0tLQoqIGBjcmVhdGVfZ2l0X2NvbW1pdCggbWVz\nc2FnZSwgdHJlZSwgcGFyZW50cywgW2F1dGhvciwgY29tbWl0dGVyXSApYDog\nYEdpdENvbW1pdGAKICAgICogYG1lc3NhZ2VgOiBzdHJpbmcKICAgICogYHRy\nZWVgOiBgR2l0VHJlZWAKICAgICogYHBhcmVudHNgOiBsaXN0IG9mIGBHaXRD\nb21taXRgCiAgICAqIGBhdXRob3JgOiBgSW5wdXRHaXRBdXRob3JgCiAgICAq\nIGBjb21taXR0ZXJgOiBgSW5wdXRHaXRBdXRob3JgCiogYGdldF9naXRfY29t\nbWl0KCBzaGEgKWA6IGBHaXRDb21taXRgCiAgICAqIGBzaGFgOiBzdHJpbmcK\nCkdpdF9yZWZzCi0tLS0tLS0tCiogYGNyZWF0ZV9naXRfcmVmKCByZWYsIHNo\nYSApYDogYEdpdFJlZmAKICAgICogYHJlZmA6IHN0cmluZwogICAgKiBgc2hh\nYDogc3RyaW5nCiogYGdldF9naXRfcmVmKCByZWYgKWA6IGBHaXRSZWZgCiAg\nICAqIGByZWZgOiBzdHJpbmcKKiBgZ2V0X2dpdF9yZWZzKClgOiBpdGVyYXRv\nciBvZiBgR2l0UmVmYAoKR2l0X3RhZ3MKLS0tLS0tLS0KKiBgY3JlYXRlX2dp\ndF90YWcoIHRhZywgbWVzc2FnZSwgb2JqZWN0LCB0eXBlLCBbdGFnZ2VyXSAp\nYDogYEdpdFRhZ2AKICAgICogYHRhZ2A6IHN0cmluZwogICAgKiBgbWVzc2Fn\nZWA6IHN0cmluZwogICAgKiBgb2JqZWN0YDogc3RyaW5nCiAgICAqIGB0eXBl\nYDogc3RyaW5nCiAgICAqIGB0YWdnZXJgOiBgSW5wdXRHaXRBdXRob3JgCiog\nYGdldF9naXRfdGFnKCBzaGEgKWA6IGBHaXRUYWdgCiAgICAqIGBzaGFgOiBz\ndHJpbmcKCkdpdF90cmVlcwotLS0tLS0tLS0KKiBgY3JlYXRlX2dpdF90cmVl\nKCB0cmVlLCBbYmFzZV90cmVlXSApYDogYEdpdFRyZWVgCiAgICAqIGB0cmVl\nYDogbGlzdCBvZiBgSW5wdXRHaXRUcmVlRWxlbWVudGAKICAgICogYGJhc2Vf\ndHJlZWA6IGBHaXRUcmVlYAoqIGBnZXRfZ2l0X3RyZWUoIHNoYSwgW3JlY3Vy\nc2l2ZV0gKWA6IGBHaXRUcmVlYAogICAgKiBgc2hhYDogc3RyaW5nCiAgICAq\nIGByZWN1cnNpdmVgOiBib29sCgpIb29rcwotLS0tLQoqIGBjcmVhdGVfaG9v\nayggbmFtZSwgY29uZmlnLCBbZXZlbnRzLCBhY3RpdmVdIClgOiBgSG9va2AK\nICAgICogYG5hbWVgOiBzdHJpbmcKICAgICogYGNvbmZpZ2A6IGRpY3QKICAg\nICogYGV2ZW50c2A6IGxpc3Qgb2Ygc3RyaW5nCiAgICAqIGBhY3RpdmVgOiBi\nb29sCiogYGdldF9ob29rKCBpZCApYDogYEhvb2tgCiAgICAqIGBpZGA6IGlu\ndGVnZXIKKiBgZ2V0X2hvb2tzKClgOiBpdGVyYXRvciBvZiBgSG9va2AKCklz\nc3VlcwotLS0tLS0KKiBgY3JlYXRlX2lzc3VlKCB0aXRsZSwgW2JvZHksIGFz\nc2lnbmVlLCBtaWxlc3RvbmUsIGxhYmVsc10gKWA6IGBJc3N1ZWAKICAgICog\nYHRpdGxlYDogc3RyaW5nCiAgICAqIGBib2R5YDogc3RyaW5nCiAgICAqIGBh\nc3NpZ25lZWA6IGBOYW1lZFVzZXJgCiAgICAqIGBtaWxlc3RvbmVgOiBgTWls\nZXN0b25lYAogICAgKiBgbGFiZWxzYDogbGlzdCBvZiBgTGFiZWxgCiogYGdl\ndF9pc3N1ZSggbnVtYmVyIClgOiBgSXNzdWVgCiAgICAqIGBudW1iZXJgOiBp\nbnRlZ2VyCiogYGdldF9pc3N1ZXMoIFttaWxlc3RvbmUsIHN0YXRlLCBhc3Np\nZ25lZSwgbWVudGlvbmVkLCBsYWJlbHMsIHNvcnQsIGRpcmVjdGlvbiwgc2lu\nY2VdIClgOiBpdGVyYXRvciBvZiBgSXNzdWVgCiAgICAqIGBtaWxlc3RvbmVg\nOiBgTWlsZXN0b25lYCBvciAibm9uZSIgb3IgIioiCiAgICAqIGBzdGF0ZWA6\nIHN0cmluZwogICAgKiBgYXNzaWduZWVgOiBgTmFtZWRVc2VyYCBvciAibm9u\nZSIgb3IgIioiCiAgICAqIGBtZW50aW9uZWRgOiBgTmFtZWRVc2VyYAogICAg\nKiBgbGFiZWxzYDogbGlzdCBvZiBgTGFiZWxgCiAgICAqIGBzb3J0YDogc3Ry\naW5nCiAgICAqIGBkaXJlY3Rpb25gOiBzdHJpbmcKICAgICogYHNpbmNlYDog\nZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgbGVnYWN5X3NlYXJjaF9pc3N1ZXMoIHN0\nYXRlLCBrZXl3b3JkIClgOiBpdGVyYXRvciBvZiBgSXNzdWVgCiAgICAqIGBz\ndGF0ZWA6ICJvcGVuIiBvciAiY2xvc2VkIgogICAgKiBga2V5d29yZGA6IHN0\ncmluZwoKSXNzdWVzX2V2ZW50cwotLS0tLS0tLS0tLS0tCiogYGdldF9pc3N1\nZXNfZXZlbnQoIGlkIClgOiBgSXNzdWVFdmVudGAKICAgICogYGlkYDogaW50\nZWdlcgoqIGBnZXRfaXNzdWVzX2V2ZW50cygpYDogaXRlcmF0b3Igb2YgYElz\nc3VlRXZlbnRgCgpLZXlzCi0tLS0KKiBgY3JlYXRlX2tleSggdGl0bGUsIGtl\neSApYDogYFJlcG9zaXRvcnlLZXlgCiAgICAqIGB0aXRsZWA6IHN0cmluZwog\nICAgKiBga2V5YDogc3RyaW5nCiogYGdldF9rZXkoIGlkIClgOiBgUmVwb3Np\ndG9yeUtleWAKICAgICogYGlkYDogaW50ZWdlcgoqIGBnZXRfa2V5cygpYDog\naXRlcmF0b3Igb2YgYFJlcG9zaXRvcnlLZXlgCgpMYWJlbHMKLS0tLS0tCiog\nYGNyZWF0ZV9sYWJlbCggbmFtZSwgY29sb3IgKWA6IGBMYWJlbGAKICAgICog\nYG5hbWVgOiBzdHJpbmcKICAgICogYGNvbG9yYDogc3RyaW5nCiogYGdldF9s\nYWJlbCggbmFtZSApYDogYExhYmVsYAogICAgKiBgbmFtZWA6IHN0cmluZwoq\nIGBnZXRfbGFiZWxzKClgOiBpdGVyYXRvciBvZiBgTGFiZWxgCgpMYW5ndWFn\nZXMKLS0tLS0tLS0tCiogYGdldF9sYW5ndWFnZXMoKWA6IGRpY3Qgb2Ygc3Ry\naW5nIHRvIGludGVnZXIKCk1pbGVzdG9uZXMKLS0tLS0tLS0tLQoqIGBjcmVh\ndGVfbWlsZXN0b25lKCB0aXRsZSwgW3N0YXRlLCBkZXNjcmlwdGlvbiwgZHVl\nX29uXSApYDogYE1pbGVzdG9uZWAKICAgICogYHRpdGxlYDogc3RyaW5nCiAg\nICAqIGBzdGF0ZWA6IHN0cmluZwogICAgKiBgZGVzY3JpcHRpb25gOiBzdHJp\nbmcKICAgICogYGR1ZV9vbmA6IGRhdGUKKiBgZ2V0X21pbGVzdG9uZSggbnVt\nYmVyIClgOiBgTWlsZXN0b25lYAogICAgKiBgbnVtYmVyYDogaW50ZWdlcgoq\nIGBnZXRfbWlsZXN0b25lcyggW3N0YXRlLCBzb3J0LCBkaXJlY3Rpb25dIClg\nOiBpdGVyYXRvciBvZiBgTWlsZXN0b25lYAogICAgKiBgc3RhdGVgOiBzdHJp\nbmcKICAgICogYHNvcnRgOiBzdHJpbmcKICAgICogYGRpcmVjdGlvbmA6IHN0\ncmluZwoKTW9kaWZpY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBuYW1l\nLCBbZGVzY3JpcHRpb24sIGhvbWVwYWdlLCBwdWJsaWMsIGhhc19pc3N1ZXMs\nIGhhc193aWtpLCBoYXNfZG93bmxvYWRzXSApYAogICAgKiBgbmFtZWA6IHN0\ncmluZwogICAgKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcKICAgICogYGhvbWVw\nYWdlYDogc3RyaW5nCiAgICAqIGBwdWJsaWNgOiBib29sCiAgICAqIGBoYXNf\naXNzdWVzYDogYm9vbAogICAgKiBgaGFzX3dpa2lgOiBib29sCiAgICAqIGBo\nYXNfZG93bmxvYWRzYDogYm9vbAoKUHVsbHMKLS0tLS0KKiBgY3JlYXRlX3B1\nbGwoIDwgdGl0bGUsIGJvZHksIGJhc2UsIGhlYWQgPiBvciA8IGlzc3VlLCBi\nYXNlLCBoZWFkID4gKWA6IGBQdWxsUmVxdWVzdGAKICAgICogYHRpdGxlYDog\nc3RyaW5nCiAgICAqIGBib2R5YDogc3RyaW5nCiAgICAqIGBpc3N1ZWA6IGBJ\nc3N1ZWAKICAgICogYGJhc2VgOiBzdHJpbmcKICAgICogYGhlYWRgOiBzdHJp\nbmcKKiBgZ2V0X3B1bGwoIG51bWJlciApYDogYFB1bGxSZXF1ZXN0YAogICAg\nKiBgbnVtYmVyYDogaW50ZWdlcgoqIGBnZXRfcHVsbHMoIFtzdGF0ZV0gKWA6\nIGl0ZXJhdG9yIG9mIGBQdWxsUmVxdWVzdGAKICAgICogYHN0YXRlYDogc3Ry\naW5nCgpUYWdzCi0tLS0KKiBgZ2V0X3RhZ3MoKWA6IGl0ZXJhdG9yIG9mIGBU\nYWdgCgpUZWFtcwotLS0tLQoqIGBnZXRfdGVhbXMoKWA6IGl0ZXJhdG9yIG9m\nIGBUZWFtYAoKV2F0Y2hlcnMKLS0tLS0tLS0KKiBgZ2V0X3dhdGNoZXJzKClg\nOiBpdGVyYXRvciBvZiBgTmFtZWRVc2VyYAoKQ2xhc3MgYFJlcG9zaXRvcnlL\nZXlgCj09PT09PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0t\nLS0tCiogYGlkYDogaW50ZWdlcgoqIGBrZXlgOiBzdHJpbmcKKiBgdGl0bGVg\nOiBzdHJpbmcKKiBgdXJsYDogc3RyaW5nCiogYHZlcmlmaWVkYDogYm9vbAoK\nRGVsZXRpb24KLS0tLS0tLS0KKiBgZGVsZXRlKClgCgpNb2RpZmljYXRpb24K\nLS0tLS0tLS0tLS0tCiogYGVkaXQoIFt0aXRsZSwga2V5XSApYAogICAgKiBg\ndGl0bGVgOiBzdHJpbmcKICAgICogYGtleWA6IHN0cmluZwoKQ2xhc3MgYFRh\nZ2AKPT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBjb21t\naXRgOiBgQ29tbWl0YAoqIGBuYW1lYDogc3RyaW5nCiogYHRhcmJhbGxfdXJs\nYDogc3RyaW5nCiogYHppcGJhbGxfdXJsYDogc3RyaW5nCgpDbGFzcyBgVGVh\nbWAKPT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgaWRg\nOiBpbnRlZ2VyCiogYG1lbWJlcnNfY291bnRgOiBpbnRlZ2VyCiogYG5hbWVg\nOiBzdHJpbmcKKiBgcGVybWlzc2lvbmA6IHN0cmluZwoqIGByZXBvc19jb3Vu\ndGA6IGludGVnZXIKKiBgdXJsYDogc3RyaW5nCgpEZWxldGlvbgotLS0tLS0t\nLQoqIGBkZWxldGUoKWAKCk1lbWJlcnMKLS0tLS0tLQoqIGBhZGRfdG9fbWVt\nYmVycyggbWVtYmVyIClgCiAgICAqIGBtZW1iZXJgOiBgTmFtZWRVc2VyYAoq\nIGBnZXRfbWVtYmVycygpYDogaXRlcmF0b3Igb2YgYE5hbWVkVXNlcmAKKiBg\naGFzX2luX21lbWJlcnMoIG1lbWJlciApYDogYm9vbAogICAgKiBgbWVtYmVy\nYDogYE5hbWVkVXNlcmAKKiBgcmVtb3ZlX2Zyb21fbWVtYmVycyggbWVtYmVy\nIClgCiAgICAqIGBtZW1iZXJgOiBgTmFtZWRVc2VyYAoKTW9kaWZpY2F0aW9u\nCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBuYW1lLCBbcGVybWlzc2lvbl0gKWAK\nICAgICogYG5hbWVgOiBzdHJpbmcKICAgICogYHBlcm1pc3Npb25gOiBzdHJp\nbmcKClJlcG9zCi0tLS0tCiogYGFkZF90b19yZXBvcyggcmVwbyApYAogICAg\nKiBgcmVwb2A6IGBSZXBvc2l0b3J5YAoqIGBnZXRfcmVwb3MoKWA6IGl0ZXJh\ndG9yIG9mIGBSZXBvc2l0b3J5YAoqIGBoYXNfaW5fcmVwb3MoIHJlcG8gKWA6\nIGJvb2wKICAgICogYHJlcG9gOiBgUmVwb3NpdG9yeWAKKiBgcmVtb3ZlX2Zy\nb21fcmVwb3MoIHJlcG8gKWAKICAgICogYHJlcG9gOiBgUmVwb3NpdG9yeWAK\nCkNsYXNzIGBVc2VyS2V5YAo9PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMK\nLS0tLS0tLS0tLQoqIGBpZGA6IGludGVnZXIKKiBga2V5YDogc3RyaW5nCiog\nYHRpdGxlYDogc3RyaW5nCiogYHVybGA6IHN0cmluZwoqIGB2ZXJpZmllZGA6\nIGJvb2wKCkRlbGV0aW9uCi0tLS0tLS0tCiogYGRlbGV0ZSgpYAoKTW9kaWZp\nY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBbdGl0bGUsIGtleV0gKWAK\nICAgICogYHRpdGxlYDogc3RyaW5nCiAgICAqIGBrZXlgOiBzdHJpbmcK\n"} diff --git a/tests/ReplayData/Repository.testGetContentsDir.txt b/tests/ReplayData/Repository.testGetContentsDir.txt index 40323aaa7d..a51c492c2b 100644 --- a/tests/ReplayData/Repository.testGetContentsDir.txt +++ b/tests/ReplayData/Repository.testGetContentsDir.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/contents/ +/repos/PyGithub/PyGithub/contents/ {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testGetContentsDirWithSlash.txt b/tests/ReplayData/Repository.testGetContentsDirWithSlash.txt index 40323aaa7d..a51c492c2b 100644 --- a/tests/ReplayData/Repository.testGetContentsDirWithSlash.txt +++ b/tests/ReplayData/Repository.testGetContentsDirWithSlash.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/contents/ +/repos/PyGithub/PyGithub/contents/ {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testGetContentsWithRef.txt b/tests/ReplayData/Repository.testGetContentsWithRef.txt index 0d922f3aa6..6950ec5a88 100644 --- a/tests/ReplayData/Repository.testGetContentsWithRef.txt +++ b/tests/ReplayData/Repository.testGetContentsWithRef.txt @@ -2,20 +2,20 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/readme?ref=refs%2Fheads%2Ftopic%2FExperimentOnDocumentation +/repos/PyGithub/PyGithub/readme?ref=refs%2Fheads%2Ftopic%2FExperimentOnDocumentation {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4941'), ('x-ratelimit-limit', '5000'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '7693'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 21:22:43 GMT'), ('connection', 'keep-alive'), ('etag', '"7c2a77b0e46dda4d6e11562d52ec5ae0"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 10:46:11 GMT'), ('x-github-media-type', 'github.beta; format=json'), ('content-type', 'application/json; charset=utf-8')] -{"type":"file","html_url":"https://github.com/jacquev6/PyGithub/blob/refs/heads/topic/ExperimentOnDocumentation/ReadMe.rst","path":"ReadMe.rst","url":"https://api.github.com/repos/jacquev6/PyGithub/contents/ReadMe.rst?ref=refs/heads/topic/ExperimentOnDocumentation","content":"VGhpcyBpcyBhIFB5dGhvbiAoMiBhbmQgMykgbGlicmFyeSB0byBhY2Nlc3Mg\ndGhlIGBHaXRodWIgQVBJIHYzIDxodHRwOi8vZGV2ZWxvcGVyLmdpdGh1Yi5j\nb20vdjM+YF8uCgpXaXRoIGl0LCB5b3UgY2FuIG1hbmFnZSB5b3VyIGBHaXRo\ndWIgPGh0dHA6Ly9naXRodWIuY29tPmBfIHJlc291cmNlcyAocmVwb3NpdG9y\naWVzLCB1c2VyIHByb2ZpbGVzLCBvcmdhbml6YXRpb25zLCBldGMuKSBmcm9t\nIFB5dGhvbiBzY3JpcHRzLgoKSXQgY292ZXJzIHRoZSAqKmZ1bGwqKiBBUEks\nIGFuZCBhbGwgbWV0aG9kcyBhcmUgdGVzdGVkIGFnYWluc3QgdGhlIHJlYWwg\nR2l0aHViIHNpdGUuCgpTaG91bGQgeW91IGhhdmUgYW55IHF1ZXN0aW9uLCBv\nciBpZiB5b3UgZmluZCBhIGJ1Zywgb3IgaWYgdGhlcmUgaXMgc29tZXRoaW5n\nIHlvdSBjYW4gZG8gd2l0aCB0aGUgQVBJIGJ1dCBub3Qgd2l0aCBQeUdpdGh1\nYiwgcGxlYXNlIGBvcGVuIGFuIGlzc3VlIDxodHRwczovL2dpdGh1Yi5jb20v\namFjcXVldjYvUHlHaXRodWIvaXNzdWVzPmBfLgoKUHlHaXRodWIgaXMgc3Rh\nYmxlLiBJIHdpbGwgbWFpbnRhaW4gaXQgdXAgdG8gZGF0ZSB3aXRoIHRoZSBB\nUEksIGFuZCBmaXggYnVncyBpZiBhbnksIGJ1dCBJIGRvbid0IHBsYW4gbmV3\nIGhlYXZ5IGRldmVsb3BtZW50cy4KCldoYXQncyBuZXc/Cj09PT09PT09PT09\nCgpgIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vc2VjdXJlLnRyYXZpcy1jaS5v\ncmcvamFjcXVldjYvUHlHaXRodWIucG5nKV0gPGh0dHA6Ly90cmF2aXMtY2ku\nb3JnL2phY3F1ZXY2L1B5R2l0aHViPmBfCgpOZXh0IHZlcnNpb24KLS0tLS0t\nLS0tLS0tCgoqIE1ham9yIGltcHJvdmVtZW50OiBzdXBwb3J0IFB5dGhvbiAz\nISBQeUdpdGh1YiBpcyBhdXRvbWF0aWNhbHkgdGVzdGVkIG9uIGBUcmF2aXMg\nPGh0dHA6Ly90cmF2aXMtY2kub3JnL2phY3F1ZXY2L1B5R2l0aHViPmBfIHdp\ndGggdmVyc2lvbnMgMi41LCAyLjYsIDIuNywgMy4xIGFuZCAzLjIgb2YgUHl0\naG9uCiogQWRkIGEgc2hvcnRjdXQgZnVuY3Rpb24gJ0dpdGh1Yi5nZXRfcmVw\nbycgdG8gZ2V0IGEgcmVwbyBkaXJlY3RseSBmcm9tIGl0cyBmdWxsIG5hbWUu\nIHRoYW5rIHlvdSBgbHdjIDxodHRwczovL2dpdGh1Yi5jb20vbHdjPmBfIGZv\nciB0aGUgY29udHJpYnV0aW9uCiogJ0dpdGh1Yi5nZXRfZ2l0aWdub3JlX3Rl\nbXBsYXRlcycgYW5kICdHaXRodWIuZ2V0X2dpdGlnbm9yZV90ZW1wbGF0ZScg\nZm9yIEFQSXMgJy9naXRpZ25vcmUvdGVtcGxhdGVzJwoKYFZlcnNpb24gMS45\nLjEgPGh0dHBzOi8vZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9pc3N1\nZXM/bWlsZXN0b25lPTE3JnN0YXRlPWNsb3NlZD5gXyAoTm92ZW1iZXIgMjB0\naCwgMjAxMikKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiogRml4IGFuIGFzc2Vy\ndGlvbiBmYWlsdXJlIHdoZW4gaW50ZWdlcnMgcmV0dXJuZWQgYnkgR2l0aHVi\nIGRvIG5vdCBmaXQgaW4gYSBQeXRob24gYGludGAKCmBWZXJzaW9uIDEuOS4w\nIDxodHRwczovL2dpdGh1Yi5jb20vamFjcXVldjYvUHlHaXRodWIvaXNzdWVz\nP21pbGVzdG9uZT0xNCZzdGF0ZT1jbG9zZWQ+YF8gKE5vdmVtYmVyIDE5dGgs\nIDIwMTIpCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqIFlvdSBjYW4gbm93IHVz\nZSB5b3VyIGNsaWVudF9pZCBhbmQgY2xpZW50X3NlY3JldCB0byBpbmNyZWFz\nZSByYXRlIGxpbWl0aW5nIHdpdGhvdXQgYXV0aGVudGljYXRpb24KKiBZb3Ug\nY2FuIG5vdyBzZW5kIGEgY3VzdG9tIFVzZXItQWdlbnQKKiBQdWxsUmVxdWVz\ndCBub3cgaGFzIGl0cyAnYXNzaWduZWUnIGF0dHJpYnV0ZSwgdGhhbmsgeW91\nIGBtc3RlYWQgPGh0dHBzOi8vZ2l0aHViLmNvbS9tc3RlYWQ+YF8KKiBSZXBv\nc2l0b3J5LmVkaXQgbm93IGhhcyAnZGVmYXVsdF9icmFuY2gnIHBhcmFtZXRl\ncgoqIGNyZWF0ZV9yZXBvIGhhcyAnYXV0b19pbml0JyBhbmQgJ2dpdGlnbm9y\nZV90ZW1wbGF0ZScgcGFyYW1ldGVycwoqIEdpc3RDb21tZW50IFVSTCBpcyBj\naGFuZ2VkIChzZWUgaHR0cDovL2RldmVsb3Blci5naXRodWIuY29tL2NoYW5n\nZXMvMjAxMi0xMC0zMS1naXN0LWNvbW1lbnQtdXJpcykKKiBBIHR5cG8gaW4g\ndGhlIHJlYWRtZSB3YXMgZml4ZWQgYnkgYHR5bW9maWogPGh0dHBzOi8vZ2l0\naHViLmNvbS90eW1vZmlqPmBfLCB0aGFuayB5b3UKKiBJbnRlcm5hbCBzdHVm\nZjoKICAgICogQWRkIGVuY29kaW5nIGNvbW1lbnQgdG8gUHl0aG9uIGZpbGVz\nLCB0aGFuayB5b3UgYFplYXJpbiA8aHR0cHM6Ly9naXRodWIuY29tL1plYXJp\nbj5gXwogICAgKiBSZXN0b3JlIHN1cHBvcnQgb2YgUHl0aG9uIDIuNQogICAg\nKiBSZXN0b3JlIGNvdmVyYWdlIG1lYXN1cmVtZW50IGluIHNldHVwLnB5IHRl\nc3QKICAgICogU21hbGwgcmVmYWN0b3JpbmcKClByZXZpb3VzIHZlcnNpb25z\nCi0tLS0tLS0tLS0tLS0tLS0tCgpTZWUgYENoYW5nZUxvZyA8aHR0cHM6Ly9n\naXRodWIuY29tL2phY3F1ZXY2L1B5R2l0aHViL2Jsb2IvbWFzdGVyL2RvYy9D\naGFuZ2VMb2cubWQ+YF8uCgpEb3dubG9hZCBhbmQgaW5zdGFsbAo9PT09PT09\nPT09PT09PT09PT09PQoKVGhpcyBwYWNrYWdlIGlzIGluIHRoZSBgUHl0aG9u\nIFBhY2thZ2UgSW5kZXggPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9Q\neUdpdGh1Yj5gXywgc28gYGVhc3lfaW5zdGFsbCBQeUdpdGh1YmAgb3IgYHBp\ncCBpbnN0YWxsIFB5R2l0aHViYCBzaG91bGQgYmUgZW5vdWdoLgpZb3UgY2Fu\nIGFsc28gY2xvbmUgaXQgb24gYEdpdGh1YiA8aHR0cDovL2dpdGh1Yi5jb20v\namFjcXVldjYvUHlHaXRodWI+YF8uCgpUdXRvcmlhbAo9PT09PT09PQoKRmly\nc3QgY3JlYXRlIGEgR2l0aHViIGluc3RhbmNlOjoKCiAgICBmcm9tIGdpdGh1\nYiBpbXBvcnQgR2l0aHViCgogICAgZyA9IEdpdGh1YiggInVzZXIiLCAicGFz\nc3dvcmQiICkKClRoZW4gcGxheSB3aXRoIHlvdXIgR2l0aHViIG9iamVjdHM6\nOgoKICAgIGZvciByZXBvIGluIGcuZ2V0X3VzZXIoKS5nZXRfcmVwb3MoKToK\nICAgICAgICBwcmludCByZXBvLm5hbWUKICAgICAgICByZXBvLmVkaXQoIGhh\nc193aWtpID0gRmFsc2UgKQoKWW91IGNhbiBhbHNvIGNyZWF0ZSBhIEdpdGh1\nYiBpbnN0YW5jZSB3aXRoIGFuIE9BdXRoIHRva2VuOjoKCiAgICBnID0gR2l0\naHViKCB0b2tlbiApCgpPciB3aXRob3V0IGF1dGhlbnRpY2F0aW9uOjoKCiAg\nICBnID0gR2l0aHViKCkKClJlZmVyZW5jZSBkb2N1bWVudGF0aW9uCj09PT09\nPT09PT09PT09PT09PT09PT09CgpZb3UgbmVlZCB0byB1c2UgYSBHaXRodWIg\nQVBJIGFuZCB3b25kZXIgd2hpY2ggY2xhc3MgaW1wbGVtZW50cyBpdD8gYFJl\nZmVyZW5jZSBvZiBBUElzIDxodHRwczovL2dpdGh1Yi5jb20vamFjcXVldjYv\nUHlHaXRodWIvYmxvYi9tYXN0ZXIvZG9jL1JlZmVyZW5jZU9mQXBpcy5tZD5g\nXwoKWW91IHdhbnQgYWxsIHRoZSBkZXRhaWxzIGFib3V0IFB5R2l0aHViIGNs\nYXNzZXM/IGBSZWZlcmVuY2Ugb2YgY2xhc3NlcyA8aHR0cHM6Ly9naXRodWIu\nY29tL2phY3F1ZXY2L1B5R2l0aHViL2Jsb2IvbWFzdGVyL2RvYy9SZWZlcmVu\nY2VPZkNsYXNzZXMubWQ+YF8KCkxpY2Vuc2luZwo9PT09PT09PT0KClB5R2l0\naHViIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBHTlUgTGVzc2VyIEdlbmVy\nYWwgUHVibGljIExpY2VuY2UuClNlZSBmaWxlcyBDT1BZSU5HIGFuZCBDT1BZ\nSU5HLkxFU1NFUiwgYXMgcmVxdWVzdGVkIGJ5IGBHTlUgPGh0dHA6Ly93d3cu\nZ251Lm9yZy9saWNlbnNlcy9ncGwtaG93dG8uaHRtbD5gXy4KClByb2plY3Rz\nIHVzaW5nIFB5R2l0aHViCj09PT09PT09PT09PT09PT09PT09PT09CgooYE9w\nZW4gYW4gaXNzdWUgPGh0dHBzOi8vZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdp\ndGh1Yi9pc3N1ZXM+YF8gaWYgeW91IHdhbnQgdG8gYmUgbGlzdGVkIGhlcmUs\nIEknbGwgYmUgZ2xhZCB0byBhZGQgeW91ciBwcm9qZWN0KQoKKiBgVXB2ZXJ0\nZXIgPGh0dHBzOi8vdXB2ZXJ0ZXIuY29tPmBfIGlzIGEgd2ViLWJhc2VkIHNj\naGVtYXRpYyBjYXB0dXJlIGFuZCBQQ0IgbGF5b3V0IHRvb2wgZm9yIHBlb3Bs\nZSB3aG8gZGVzaWduIGVsZWN0cm9uaWNzLiBEZXNpZ25lcnMgY2FuIGF0dGFj\naCBhIEdpdGh1YiBwcm9qZWN0IHRvIGFuIFVwdmVydGVyIHByb2plY3QuCiog\nYFRyYXRpaHViaXMgPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS90cmF0\naWh1YmlzLz5gXyBjb252ZXJ0cyBUcmFjIHRpY2tldHMgdG8gR2l0aHViIGlz\nc3VlcwoqIGh0dHBzOi8vZ2l0aHViLmNvbS9DTUIvY2xpZ2gKKiBodHRwczov\nL2dpdGh1Yi5jb20vbmF0ZHVjYS9xdWlja29wZW4gdXNlcyBQeUdpdGh1YiB0\nbyBhdXRvbWF0aWNhbHkgY3JlYXRlIGlzc3VlcwoqIGh0dHBzOi8vZ2lzdC5n\naXRodWIuY29tLzM0MzM3OTgKKiBodHRwczovL2dpdGh1Yi5jb20venNpY2lh\ncnovYXF1aWxhLWRzcC5vcmcKKiBodHRwczovL2dpdGh1Yi5jb20vcm9iY293\naWUvdmlydHVhbGVudndyYXBwZXIuZ2l0aHViCgpUaGV5IHRhbGsgYWJvdXQg\nUHlHaXRodWIKPT09PT09PT09PT09PT09PT09PT09PT09CgoqIGh0dHA6Ly9z\ndGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTA2MjUxOTAvbW9zdC1zdWl0\nYWJsZS1weXRob24tbGlicmFyeS1mb3ItZ2l0aHViLWFwaS12MwoqIGh0dHA6\nLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTIzNzk2MzcvZGphbmdv\nLXNvY2lhbC1hdXRoLWdpdGh1Yi1hdXRoZW50aWNhdGlvbgoqIGh0dHA6Ly93\nd3cuZnJlZWJzZC5vcmcvY2dpL2N2c3dlYi5jZ2kvcG9ydHMvZGV2ZWwvcHkt\ncHlnaXRodWIvCiogaHR0cDovL29kZHNob2Nrcy5jb20vYmxvZy8yMDEyLzA4\nLzAyL2RldmVsb3BpbmctY2hhcnNoZWV0Lwo=\n","sha":"3929e1cac3d833cf0c05b10d20de66bcc35a3815","size":4976,"encoding":"base64","name":"ReadMe.rst","_links":{"git":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/3929e1cac3d833cf0c05b10d20de66bcc35a3815","html":"https://github.com/jacquev6/PyGithub/blob/refs/heads/topic/ExperimentOnDocumentation/ReadMe.rst","self":"https://api.github.com/repos/jacquev6/PyGithub/contents/ReadMe.rst?ref=refs/heads/topic/ExperimentOnDocumentation"},"git_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/3929e1cac3d833cf0c05b10d20de66bcc35a3815"} +{"type":"file","html_url":"https://github.com/PyGithub/PyGithub/blob/refs/heads/topic/ExperimentOnDocumentation/ReadMe.rst","path":"ReadMe.rst","url":"https://api.github.com/repos/PyGithub/PyGithub/contents/ReadMe.rst?ref=refs/heads/topic/ExperimentOnDocumentation","content":"VGhpcyBpcyBhIFB5dGhvbiAoMiBhbmQgMykgbGlicmFyeSB0byBhY2Nlc3Mg\ndGhlIGBHaXRodWIgQVBJIHYzIDxodHRwOi8vZGV2ZWxvcGVyLmdpdGh1Yi5j\nb20vdjM+YF8uCgpXaXRoIGl0LCB5b3UgY2FuIG1hbmFnZSB5b3VyIGBHaXRo\ndWIgPGh0dHA6Ly9naXRodWIuY29tPmBfIHJlc291cmNlcyAocmVwb3NpdG9y\naWVzLCB1c2VyIHByb2ZpbGVzLCBvcmdhbml6YXRpb25zLCBldGMuKSBmcm9t\nIFB5dGhvbiBzY3JpcHRzLgoKSXQgY292ZXJzIHRoZSAqKmZ1bGwqKiBBUEks\nIGFuZCBhbGwgbWV0aG9kcyBhcmUgdGVzdGVkIGFnYWluc3QgdGhlIHJlYWwg\nR2l0aHViIHNpdGUuCgpTaG91bGQgeW91IGhhdmUgYW55IHF1ZXN0aW9uLCBv\nciBpZiB5b3UgZmluZCBhIGJ1Zywgb3IgaWYgdGhlcmUgaXMgc29tZXRoaW5n\nIHlvdSBjYW4gZG8gd2l0aCB0aGUgQVBJIGJ1dCBub3Qgd2l0aCBQeUdpdGh1\nYiwgcGxlYXNlIGBvcGVuIGFuIGlzc3VlIDxodHRwczovL2dpdGh1Yi5jb20v\namFjcXVldjYvUHlHaXRodWIvaXNzdWVzPmBfLgoKUHlHaXRodWIgaXMgc3Rh\nYmxlLiBJIHdpbGwgbWFpbnRhaW4gaXQgdXAgdG8gZGF0ZSB3aXRoIHRoZSBB\nUEksIGFuZCBmaXggYnVncyBpZiBhbnksIGJ1dCBJIGRvbid0IHBsYW4gbmV3\nIGhlYXZ5IGRldmVsb3BtZW50cy4KCldoYXQncyBuZXc/Cj09PT09PT09PT09\nCgpgIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vc2VjdXJlLnRyYXZpcy1jaS5v\ncmcvamFjcXVldjYvUHlHaXRodWIucG5nKV0gPGh0dHA6Ly90cmF2aXMtY2ku\nb3JnL2phY3F1ZXY2L1B5R2l0aHViPmBfCgpOZXh0IHZlcnNpb24KLS0tLS0t\nLS0tLS0tCgoqIE1ham9yIGltcHJvdmVtZW50OiBzdXBwb3J0IFB5dGhvbiAz\nISBQeUdpdGh1YiBpcyBhdXRvbWF0aWNhbHkgdGVzdGVkIG9uIGBUcmF2aXMg\nPGh0dHA6Ly90cmF2aXMtY2kub3JnL2phY3F1ZXY2L1B5R2l0aHViPmBfIHdp\ndGggdmVyc2lvbnMgMi41LCAyLjYsIDIuNywgMy4xIGFuZCAzLjIgb2YgUHl0\naG9uCiogQWRkIGEgc2hvcnRjdXQgZnVuY3Rpb24gJ0dpdGh1Yi5nZXRfcmVw\nbycgdG8gZ2V0IGEgcmVwbyBkaXJlY3RseSBmcm9tIGl0cyBmdWxsIG5hbWUu\nIHRoYW5rIHlvdSBgbHdjIDxodHRwczovL2dpdGh1Yi5jb20vbHdjPmBfIGZv\nciB0aGUgY29udHJpYnV0aW9uCiogJ0dpdGh1Yi5nZXRfZ2l0aWdub3JlX3Rl\nbXBsYXRlcycgYW5kICdHaXRodWIuZ2V0X2dpdGlnbm9yZV90ZW1wbGF0ZScg\nZm9yIEFQSXMgJy9naXRpZ25vcmUvdGVtcGxhdGVzJwoKYFZlcnNpb24gMS45\nLjEgPGh0dHBzOi8vZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9pc3N1\nZXM/bWlsZXN0b25lPTE3JnN0YXRlPWNsb3NlZD5gXyAoTm92ZW1iZXIgMjB0\naCwgMjAxMikKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiogRml4IGFuIGFzc2Vy\ndGlvbiBmYWlsdXJlIHdoZW4gaW50ZWdlcnMgcmV0dXJuZWQgYnkgR2l0aHVi\nIGRvIG5vdCBmaXQgaW4gYSBQeXRob24gYGludGAKCmBWZXJzaW9uIDEuOS4w\nIDxodHRwczovL2dpdGh1Yi5jb20vamFjcXVldjYvUHlHaXRodWIvaXNzdWVz\nP21pbGVzdG9uZT0xNCZzdGF0ZT1jbG9zZWQ+YF8gKE5vdmVtYmVyIDE5dGgs\nIDIwMTIpCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqIFlvdSBjYW4gbm93IHVz\nZSB5b3VyIGNsaWVudF9pZCBhbmQgY2xpZW50X3NlY3JldCB0byBpbmNyZWFz\nZSByYXRlIGxpbWl0aW5nIHdpdGhvdXQgYXV0aGVudGljYXRpb24KKiBZb3Ug\nY2FuIG5vdyBzZW5kIGEgY3VzdG9tIFVzZXItQWdlbnQKKiBQdWxsUmVxdWVz\ndCBub3cgaGFzIGl0cyAnYXNzaWduZWUnIGF0dHJpYnV0ZSwgdGhhbmsgeW91\nIGBtc3RlYWQgPGh0dHBzOi8vZ2l0aHViLmNvbS9tc3RlYWQ+YF8KKiBSZXBv\nc2l0b3J5LmVkaXQgbm93IGhhcyAnZGVmYXVsdF9icmFuY2gnIHBhcmFtZXRl\ncgoqIGNyZWF0ZV9yZXBvIGhhcyAnYXV0b19pbml0JyBhbmQgJ2dpdGlnbm9y\nZV90ZW1wbGF0ZScgcGFyYW1ldGVycwoqIEdpc3RDb21tZW50IFVSTCBpcyBj\naGFuZ2VkIChzZWUgaHR0cDovL2RldmVsb3Blci5naXRodWIuY29tL2NoYW5n\nZXMvMjAxMi0xMC0zMS1naXN0LWNvbW1lbnQtdXJpcykKKiBBIHR5cG8gaW4g\ndGhlIHJlYWRtZSB3YXMgZml4ZWQgYnkgYHR5bW9maWogPGh0dHBzOi8vZ2l0\naHViLmNvbS90eW1vZmlqPmBfLCB0aGFuayB5b3UKKiBJbnRlcm5hbCBzdHVm\nZjoKICAgICogQWRkIGVuY29kaW5nIGNvbW1lbnQgdG8gUHl0aG9uIGZpbGVz\nLCB0aGFuayB5b3UgYFplYXJpbiA8aHR0cHM6Ly9naXRodWIuY29tL1plYXJp\nbj5gXwogICAgKiBSZXN0b3JlIHN1cHBvcnQgb2YgUHl0aG9uIDIuNQogICAg\nKiBSZXN0b3JlIGNvdmVyYWdlIG1lYXN1cmVtZW50IGluIHNldHVwLnB5IHRl\nc3QKICAgICogU21hbGwgcmVmYWN0b3JpbmcKClByZXZpb3VzIHZlcnNpb25z\nCi0tLS0tLS0tLS0tLS0tLS0tCgpTZWUgYENoYW5nZUxvZyA8aHR0cHM6Ly9n\naXRodWIuY29tL2phY3F1ZXY2L1B5R2l0aHViL2Jsb2IvbWFzdGVyL2RvYy9D\naGFuZ2VMb2cubWQ+YF8uCgpEb3dubG9hZCBhbmQgaW5zdGFsbAo9PT09PT09\nPT09PT09PT09PT09PQoKVGhpcyBwYWNrYWdlIGlzIGluIHRoZSBgUHl0aG9u\nIFBhY2thZ2UgSW5kZXggPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9Q\neUdpdGh1Yj5gXywgc28gYGVhc3lfaW5zdGFsbCBQeUdpdGh1YmAgb3IgYHBp\ncCBpbnN0YWxsIFB5R2l0aHViYCBzaG91bGQgYmUgZW5vdWdoLgpZb3UgY2Fu\nIGFsc28gY2xvbmUgaXQgb24gYEdpdGh1YiA8aHR0cDovL2dpdGh1Yi5jb20v\namFjcXVldjYvUHlHaXRodWI+YF8uCgpUdXRvcmlhbAo9PT09PT09PQoKRmly\nc3QgY3JlYXRlIGEgR2l0aHViIGluc3RhbmNlOjoKCiAgICBmcm9tIGdpdGh1\nYiBpbXBvcnQgR2l0aHViCgogICAgZyA9IEdpdGh1YiggInVzZXIiLCAicGFz\nc3dvcmQiICkKClRoZW4gcGxheSB3aXRoIHlvdXIgR2l0aHViIG9iamVjdHM6\nOgoKICAgIGZvciByZXBvIGluIGcuZ2V0X3VzZXIoKS5nZXRfcmVwb3MoKToK\nICAgICAgICBwcmludCByZXBvLm5hbWUKICAgICAgICByZXBvLmVkaXQoIGhh\nc193aWtpID0gRmFsc2UgKQoKWW91IGNhbiBhbHNvIGNyZWF0ZSBhIEdpdGh1\nYiBpbnN0YW5jZSB3aXRoIGFuIE9BdXRoIHRva2VuOjoKCiAgICBnID0gR2l0\naHViKCB0b2tlbiApCgpPciB3aXRob3V0IGF1dGhlbnRpY2F0aW9uOjoKCiAg\nICBnID0gR2l0aHViKCkKClJlZmVyZW5jZSBkb2N1bWVudGF0aW9uCj09PT09\nPT09PT09PT09PT09PT09PT09CgpZb3UgbmVlZCB0byB1c2UgYSBHaXRodWIg\nQVBJIGFuZCB3b25kZXIgd2hpY2ggY2xhc3MgaW1wbGVtZW50cyBpdD8gYFJl\nZmVyZW5jZSBvZiBBUElzIDxodHRwczovL2dpdGh1Yi5jb20vamFjcXVldjYv\nUHlHaXRodWIvYmxvYi9tYXN0ZXIvZG9jL1JlZmVyZW5jZU9mQXBpcy5tZD5g\nXwoKWW91IHdhbnQgYWxsIHRoZSBkZXRhaWxzIGFib3V0IFB5R2l0aHViIGNs\nYXNzZXM/IGBSZWZlcmVuY2Ugb2YgY2xhc3NlcyA8aHR0cHM6Ly9naXRodWIu\nY29tL2phY3F1ZXY2L1B5R2l0aHViL2Jsb2IvbWFzdGVyL2RvYy9SZWZlcmVu\nY2VPZkNsYXNzZXMubWQ+YF8KCkxpY2Vuc2luZwo9PT09PT09PT0KClB5R2l0\naHViIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBHTlUgTGVzc2VyIEdlbmVy\nYWwgUHVibGljIExpY2VuY2UuClNlZSBmaWxlcyBDT1BZSU5HIGFuZCBDT1BZ\nSU5HLkxFU1NFUiwgYXMgcmVxdWVzdGVkIGJ5IGBHTlUgPGh0dHA6Ly93d3cu\nZ251Lm9yZy9saWNlbnNlcy9ncGwtaG93dG8uaHRtbD5gXy4KClByb2plY3Rz\nIHVzaW5nIFB5R2l0aHViCj09PT09PT09PT09PT09PT09PT09PT09CgooYE9w\nZW4gYW4gaXNzdWUgPGh0dHBzOi8vZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdp\ndGh1Yi9pc3N1ZXM+YF8gaWYgeW91IHdhbnQgdG8gYmUgbGlzdGVkIGhlcmUs\nIEknbGwgYmUgZ2xhZCB0byBhZGQgeW91ciBwcm9qZWN0KQoKKiBgVXB2ZXJ0\nZXIgPGh0dHBzOi8vdXB2ZXJ0ZXIuY29tPmBfIGlzIGEgd2ViLWJhc2VkIHNj\naGVtYXRpYyBjYXB0dXJlIGFuZCBQQ0IgbGF5b3V0IHRvb2wgZm9yIHBlb3Bs\nZSB3aG8gZGVzaWduIGVsZWN0cm9uaWNzLiBEZXNpZ25lcnMgY2FuIGF0dGFj\naCBhIEdpdGh1YiBwcm9qZWN0IHRvIGFuIFVwdmVydGVyIHByb2plY3QuCiog\nYFRyYXRpaHViaXMgPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS90cmF0\naWh1YmlzLz5gXyBjb252ZXJ0cyBUcmFjIHRpY2tldHMgdG8gR2l0aHViIGlz\nc3VlcwoqIGh0dHBzOi8vZ2l0aHViLmNvbS9DTUIvY2xpZ2gKKiBodHRwczov\nL2dpdGh1Yi5jb20vbmF0ZHVjYS9xdWlja29wZW4gdXNlcyBQeUdpdGh1YiB0\nbyBhdXRvbWF0aWNhbHkgY3JlYXRlIGlzc3VlcwoqIGh0dHBzOi8vZ2lzdC5n\naXRodWIuY29tLzM0MzM3OTgKKiBodHRwczovL2dpdGh1Yi5jb20venNpY2lh\ncnovYXF1aWxhLWRzcC5vcmcKKiBodHRwczovL2dpdGh1Yi5jb20vcm9iY293\naWUvdmlydHVhbGVudndyYXBwZXIuZ2l0aHViCgpUaGV5IHRhbGsgYWJvdXQg\nUHlHaXRodWIKPT09PT09PT09PT09PT09PT09PT09PT09CgoqIGh0dHA6Ly9z\ndGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTA2MjUxOTAvbW9zdC1zdWl0\nYWJsZS1weXRob24tbGlicmFyeS1mb3ItZ2l0aHViLWFwaS12MwoqIGh0dHA6\nLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTIzNzk2MzcvZGphbmdv\nLXNvY2lhbC1hdXRoLWdpdGh1Yi1hdXRoZW50aWNhdGlvbgoqIGh0dHA6Ly93\nd3cuZnJlZWJzZC5vcmcvY2dpL2N2c3dlYi5jZ2kvcG9ydHMvZGV2ZWwvcHkt\ncHlnaXRodWIvCiogaHR0cDovL29kZHNob2Nrcy5jb20vYmxvZy8yMDEyLzA4\nLzAyL2RldmVsb3BpbmctY2hhcnNoZWV0Lwo=\n","sha":"3929e1cac3d833cf0c05b10d20de66bcc35a3815","size":4976,"encoding":"base64","name":"ReadMe.rst","_links":{"git":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/3929e1cac3d833cf0c05b10d20de66bcc35a3815","html":"https://github.com/PyGithub/PyGithub/blob/refs/heads/topic/ExperimentOnDocumentation/ReadMe.rst","self":"https://api.github.com/repos/PyGithub/PyGithub/contents/ReadMe.rst?ref=refs/heads/topic/ExperimentOnDocumentation"},"git_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/3929e1cac3d833cf0c05b10d20de66bcc35a3815"} https GET api.github.com None -/repos/jacquev6/PyGithub/contents/doc/ReferenceOfClasses.md?ref=refs%2Fheads%2Ftopic%2FExperimentOnDocumentation +/repos/PyGithub/PyGithub/contents/doc/ReferenceOfClasses.md?ref=refs%2Fheads%2Ftopic%2FExperimentOnDocumentation {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('content-length', '45572'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4940'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 21:22:43 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7c2a77b0e46dda4d6e11562d52ec5ae0"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 10:46:22 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"type":"file","path":"doc/ReferenceOfClasses.md","html_url":"https://github.com/jacquev6/PyGithub/blob/refs/heads/topic/ExperimentOnDocumentation/doc/ReferenceOfClasses.md","url":"https://api.github.com/repos/jacquev6/PyGithub/contents/doc/ReferenceOfClasses.md?ref=refs/heads/topic/ExperimentOnDocumentation","content":"WW91IGRvbid0IG5vcm1hbHkgY3JlYXRlIGluc3RhbmNlcyBvZiBhbnkgY2xh\nc3MgYnV0IGBHaXRodWJgLgpZb3Ugb2J0YWluIGluc3RhbmNlcyB0aHJvdWdo\nIGNhbGxzIHRvIGBzZWFyY2hfYCwgYGdldF9gIGFuZCBgY3JlYXRlX2AgbWV0\naG9kcy4KCkNsYXNzIGBHaXRodWJgCj09PT09PT09PT09PT09CgpDb25zdHJ1\nY3RlZCBmcm9tIHVzZXIncyBsb2dpbiBhbmQgcGFzc3dvcmQgb3IgT0F1dGgg\ndG9rZW4gb3Igbm90aGluZzoKCiAgICBnID0gR2l0aHViKCBsb2dpbiwgcGFz\nc3dvcmQgKQogICAgZyA9IEdpdGh1YiggdG9rZW4gKQogICAgZyA9IEdpdGh1\nYigpCgpZb3UgY2FuIGFsc28gdXNlIHlvdXIgY2xpZW50X2lkIGFuZCBjbGll\nbnRfc2VjcmV0OgogICAgZyA9IGdpdGh1Yi5HaXRodWIoY2xpZW50X2lkPSJZ\nb3VyQ2xpZW50SWQiLCBjbGllbnRfc2VjcmV0PSJZb3VyQ2xpZW50U2VjcmV0\nIikKCllvdSBjYW4gYWRkIGFuIGFyZ3VtZW50IGBiYXNlX3VybCA9ICJodHRw\nOi8vbXkuZW50ZXJwcmlzZS5jb206ODA4MC9wYXRoL3RvL2dpdGh1YiJgIHRv\nIGNvbm5lY3QgdG8gYSBsb2NhbCBpbnN0YWxsIG9mIEdpdGh1YiAoaWUuIEdp\ndGh1YiBFbnRlcnByaXNlKS4KWW91IGNhbiBhZGQgYW4gYXJndW1lbnQgYHVz\nZXJfYWdlbnRgIHRvIHNlbmQgYSBjdXN0b20gVXNlci1BZ2VudCBoZWFkZXIg\ndG8gR2l0aHViLgpBbm90aGVyIGFyZ3VtZW50LCB0aGF0IGNhbiBiZSBwYXNz\nZWQgaXMgYHRpbWVvdXRgIHdoaWNoIGhhcyBkZWZhdWx0IHZhbHVlIGAxMGAu\nCgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgcmF0ZV9saW1pdGluZ2A6IHR1\ncGxlIG9mIHR3byBpbnRlZ2VyczogcmVtYWluaW5nIGFuZCBsaW1pdCwgYXMg\nZXhwbGFpbmVkIGluIFtSYXRlIExpbWl0aW5nXShodHRwOi8vZGV2ZWxvcGVy\nLmdpdGh1Yi5jb20vdjMvI3JhdGUtbGltaXRpbmcpCgpNZXRob2RzCi0tLS0t\nLS0KKiBgZ2V0X3VzZXIoKWA6IGBBdXRoZW50aWNhdGVkVXNlcmAKKiBgZ2V0\nX3VzZXIoIGxvZ2luIClgOiBgTmFtZWRVc2VyYAogICAgKiBgbG9naW5gOiBz\ndHJpbmcKKiBgZ2V0X29yZ2FuaXphdGlvbiggbG9naW4gKWA6IGBPcmdhbml6\nYXRpb25gCiAgICAqIGBsb2dpbmA6IHN0cmluZwoqIGBnZXRfcmVwbyggZnVs\nbF9uYW1lIClgOiBgUmVwb3NpdG9yeWAKKiBgZ2V0X2dpc3QoIGlkIClgOiBg\nR2lzdGAKICAgICogYGlkYDogc3RyaW5nCiogYGdldF9naXN0cygpYDogYFBh\nZ2luYXRlZExpc3RgIG9mIGBHaXN0YAoqIGBnZXRfaG9va3MoKWA6IGBQYWdp\nbmF0ZWRMaXN0YCBvZiBgSG9va0Rlc2NyaXB0aW9uYAoqIGBsZWdhY3lfc2Vh\ncmNoX3JlcG9zKCBrZXl3b3JkLCBbbGFuZ3VhZ2VdIClgOiBgUGFnaW5hdGVk\nTGlzdGAgb2YgYFJlcG9zaXRvcnlgCiAgICAqIGBrZXl3b3JkYDogc3RyaW5n\nCiAgICAqIGBsYW5ndWFnZWA6IHN0cmluZwoqIGBsZWdhY3lfc2VhcmNoX3Vz\nZXJzKCBrZXl3b3JkIClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYE5hbWVkVXNl\ncmAKICAgICogYGtleXdvcmRgOiBzdHJpbmcKKiBgbGVnYWN5X3NlYXJjaF91\nc2VyX2J5X2VtYWlsKCBlbWFpbCApYDogYE5hbWVkVXNlcmAKICAgICogYGVt\nYWlsYDogc3RyaW5nCiogYHJlbmRlcl9tYXJrZG93biggdGV4dCwgW2NvbnRl\neHRdIClgOiBzdHJpbmcKICAgICogYHRleHRgOiBzdHJpbmcKICAgICogYGNv\nbnRleHRgOiBgUmVwb3NpdG9yeWAKKiBgZ2V0X2dpdGlnbm9yZV90ZW1wbGF0\nZXMoKWA6IGxpc3Qgb2Ygc3RyaW5nCiogYGdldF9naXRpZ25vcmVfdGVtcGxh\ndGUoIG5hbWUgKWA6IGBHaXRpZ25vcmVUZW1wbGF0ZWAKCkNsYXNzIGBQYWdp\nbmF0ZWRMaXN0YAo9PT09PT09PT09PT09PT09PT09PT0KClRoaXMgY2xhc3Mg\naW1wbGVtZW50cyBsYXp5IFtwYWdpbmF0aW9uIHJlcXVlc3RzXShodHRwOi8v\nZGV2ZWxvcGVyLmdpdGh1Yi5jb20vdjMvI3BhZ2luYXRpb24pIGFuZCBoaWRl\ncyBwYWdpbmF0aW9uIGZyb20geW91LiBJdCBpcyB0aGUgcmV0dXJuIHR5cGUg\nb2YgYGdldF9gIG1ldGhvZHMgdGhhdCByZXR1cm4gYSBjb2xsZWN0aW9uLgoK\nWW91IGNhbiBpdGVyYXRlIG9uIGl0IGluIGEgYGZvciBmIGluIHVzZXIuZ2V0\nX2ZvbGxvd2VycygpOmAgbG9vcCBvciB3aXRoIGFueSBbaXRlcnRvb2xzXSho\ndHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvaXRlcnRvb2xzLmh0bWwp\nIGZ1bmN0aW9ucy4KCllvdSBjYW5ub3Qga25vdyB0aGUgbnVtYmVyIG9mIG9i\namVjdHMgcmV0dXJuZWQgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlv\nbi4gSWYgdGhhdCdzICpyZWFsbHkqIHdoYXQgeW91IG5lZWQsIHlvdSBjYW50\nIHVzZSBgbGVuKCBsaXN0KCB1c2VyLmdldF9mb2xsb3dlcnMoKSApIClgLAp3\naGljaCBkb2VzIGFsbCB0aGUgcmVxdWVzdHMgbmVlZGVkIHRvIGVudW1lcmF0\nZSB0aGUgdXNlcidzIGZvbGxvd2Vycy4gTm90ZSB0aGF0IHRoZXJlIGlzIG9m\ndGVuIGFuIGF0dHJpYnV0ZSBnaXZpbmcgdGhpcyB2YWx1ZSAoaW4gdGhhdCBj\nYXNlIGB1c2VyLmZvbGxvd2Vyc2ApLgoKWW91IGNhbiBhbHNvIGNhbGwgYGdl\ndF9wYWdlKCBwYWdlIClgIHRvIGV4cGxpY2l0ZWx5IGdldCBhIHNwZWNpZmlj\nIHBhZ2UgaWYgeW91IGRvbid0IHdhbnQgdG8gaGlkZSBwYWdpbmF0aW9uLiBg\ncGFnZWAgc3RhcnRzIGF0IDAuCiogYGdldF9wYWdlKCBwYWdlIClgOiBsaXN0\nCiAgICAqIGBwYWdlYDogaW50ZWdlcgoKQ2xhc3MgYEdpdGh1YkV4Y2VwdGlv\nbmAKPT09PT09PT09PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0t\nLS0tLQoqIGBzdGF0dXNgOiBpbnRlZ2VyCiogYGRhdGFgOiBkaWN0CgpDbGFz\ncyBgQXV0aGVudGljYXRlZFVzZXJgCj09PT09PT09PT09PT09PT09PT09PT09\nPT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBhdmF0YXJfdXJsYDogc3Ry\naW5nCiogYGJpb2A6IHN0cmluZwoqIGBibG9nYDogc3RyaW5nCiogYGNvbGxh\nYm9yYXRvcnNgOiBpbnRlZ2VyCiogYGNvbXBhbnlgOiBzdHJpbmcKKiBgY3Jl\nYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGRpc2tfdXNhZ2VgOiBp\nbnRlZ2VyCiogYGVtYWlsYDogc3RyaW5nCiogYGZvbGxvd2Vyc2A6IGludGVn\nZXIKKiBgZm9sbG93aW5nYDogaW50ZWdlcgoqIGBncmF2YXRhcl9pZGA6IHN0\ncmluZwoqIGBoaXJlYWJsZWA6IGJvb2wKKiBgaHRtbF91cmxgOiBzdHJpbmcK\nKiBgaWRgOiBpbnRlZ2VyCiogYGxvY2F0aW9uYDogc3RyaW5nCiogYGxvZ2lu\nYDogc3RyaW5nCiogYG5hbWVgOiBzdHJpbmcKKiBgb3duZWRfcHJpdmF0ZV9y\nZXBvc2A6IGludGVnZXIKKiBgcGxhbmA6IGBQbGFuYAoqIGBwcml2YXRlX2dp\nc3RzYDogaW50ZWdlcgoqIGBwdWJsaWNfZ2lzdHNgOiBpbnRlZ2VyCiogYHB1\nYmxpY19yZXBvc2A6IGludGVnZXIKKiBgdG90YWxfcHJpdmF0ZV9yZXBvc2A6\nIGludGVnZXIKKiBgdHlwZWA6IHN0cmluZwoqIGB1cmxgOiBzdHJpbmcKCkF1\ndGhvcml6YXRpb25zCi0tLS0tLS0tLS0tLS0tCiogYGNyZWF0ZV9hdXRob3Jp\nemF0aW9uKCBbc2NvcGVzLCBub3RlLCBub3RlX3VybF0gKWA6IGBBdXRob3Jp\nemF0aW9uYAogICAgKiBgc2NvcGVzYDogbGlzdCBvZiBzdHJpbmcKICAgICog\nYG5vdGVgOiBzdHJpbmcKICAgICogYG5vdGVfdXJsYDogc3RyaW5nCiogYGdl\ndF9hdXRob3JpemF0aW9uKCBpZCApYDogYEF1dGhvcml6YXRpb25gCiAgICAq\nIGBpZGA6IGludGVnZXIKKiBgZ2V0X2F1dGhvcml6YXRpb25zKClgOiBgUGFn\naW5hdGVkTGlzdGAgb2YgYEF1dGhvcml6YXRpb25gCgpFbWFpbHMKLS0tLS0t\nCiogYGFkZF90b19lbWFpbHMoIGVtYWlsLCAuLi4gKWAKICAgICogYGVtYWls\nYDogc3RyaW5nCiogYGdldF9lbWFpbHMoKWA6IGxpc3Qgb2Ygc3RyaW5nCiog\nYHJlbW92ZV9mcm9tX2VtYWlscyggZW1haWwsIC4uLiApYAogICAgKiBgZW1h\naWxgOiBzdHJpbmcKCkV2ZW50cwotLS0tLS0KKiBgZ2V0X2V2ZW50cygpYDog\nYFBhZ2luYXRlZExpc3RgIG9mIGBFdmVudGAKKiBgZ2V0X29yZ2FuaXphdGlv\nbl9ldmVudHMoIG9yZyApYDogYFBhZ2luYXRlZExpc3RgIG9mIGBFdmVudGAK\nICAgICogYG9yZ2A6IGBPcmdhbml6YXRpb25gCgpGb2xsb3dlcnMKLS0tLS0t\nLS0tCiogYGdldF9mb2xsb3dlcnMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBg\nTmFtZWRVc2VyYAoKRm9sbG93aW5nCi0tLS0tLS0tLQoqIGBhZGRfdG9fZm9s\nbG93aW5nKCBmb2xsb3dpbmcgKWAKICAgICogYGZvbGxvd2luZ2A6IGBOYW1l\nZFVzZXJgCiogYGdldF9mb2xsb3dpbmcoKWA6IGBQYWdpbmF0ZWRMaXN0YCBv\nZiBgTmFtZWRVc2VyYAoqIGBoYXNfaW5fZm9sbG93aW5nKCBmb2xsb3dpbmcg\nKWA6IGJvb2wKICAgICogYGZvbGxvd2luZ2A6IGBOYW1lZFVzZXJgCiogYHJl\nbW92ZV9mcm9tX2ZvbGxvd2luZyggZm9sbG93aW5nIClgCiAgICAqIGBmb2xs\nb3dpbmdgOiBgTmFtZWRVc2VyYAoKRm9ya2luZwotLS0tLS0tCiogYGNyZWF0\nZV9mb3JrKCByZXBvIClgOiBgUmVwb3NpdG9yeWAKICAgICogYHJlcG9gOiBg\nUmVwb3NpdG9yeWAKCkdpc3RzCi0tLS0tCiogYGNyZWF0ZV9naXN0KCBwdWJs\naWMsIGZpbGVzLCBbZGVzY3JpcHRpb25dIClgOiBgR2lzdGAKICAgICogYHB1\nYmxpY2A6IGJvb2wKICAgICogYGZpbGVzYDogZGljdCBvZiBzdHJpbmcgdG8g\nYElucHV0RmlsZUNvbnRlbnRgCiAgICAqIGBkZXNjcmlwdGlvbmA6IHN0cmlu\nZwoqIGBnZXRfZ2lzdHMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgR2lzdGAK\nKiBgZ2V0X3N0YXJyZWRfZ2lzdHMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBg\nR2lzdGAKCklzc3VlcwotLS0tLS0KKiBgZ2V0X2lzc3VlcygpYDogYFBhZ2lu\nYXRlZExpc3RgIG9mIGBJc3N1ZWAKCktleXMKLS0tLQoqIGBjcmVhdGVfa2V5\nKCB0aXRsZSwga2V5IClgOiBgVXNlcktleWAKICAgICogYHRpdGxlYDogc3Ry\naW5nCiAgICAqIGBrZXlgOiBzdHJpbmcKKiBgZ2V0X2tleSggaWQgKWA6IGBV\nc2VyS2V5YAogICAgKiBgaWRgOiBpbnRlZ2VyCiogYGdldF9rZXlzKClgOiBg\nUGFnaW5hdGVkTGlzdGAgb2YgYFVzZXJLZXlgCgpNb2RpZmljYXRpb24KLS0t\nLS0tLS0tLS0tCiogYGVkaXQoIFtuYW1lLCBlbWFpbCwgYmxvZywgY29tcGFu\neSwgbG9jYXRpb24sIGhpcmVhYmxlLCBiaW9dIClgCiAgICAqIGBuYW1lYDog\nc3RyaW5nCiAgICAqIGBlbWFpbGA6IHN0cmluZwogICAgKiBgYmxvZ2A6IHN0\ncmluZwogICAgKiBgY29tcGFueWA6IHN0cmluZwogICAgKiBgbG9jYXRpb25g\nOiBzdHJpbmcKICAgICogYGhpcmVhYmxlYDogYm9vbAogICAgKiBgYmlvYDog\nc3RyaW5nCgpPcmdzCi0tLS0KKiBgZ2V0X29yZ3MoKWA6IGBQYWdpbmF0ZWRM\naXN0YCBvZiBgT3JnYW5pemF0aW9uYAoKUmVwb3MKLS0tLS0KKiBgY3JlYXRl\nX3JlcG8oIG5hbWUsIFtkZXNjcmlwdGlvbiwgaG9tZXBhZ2UsIHByaXZhdGUs\nIGhhc19pc3N1ZXMsIGhhc193aWtpLCBoYXNfZG93bmxvYWRzLCBhdXRvX2lu\naXQsIGdpdGlnbm9yZV90ZW1wbGF0ZV0gKWA6IGBSZXBvc2l0b3J5YAogICAg\nKiBgbmFtZWA6IHN0cmluZwogICAgKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcK\nICAgICogYGhvbWVwYWdlYDogc3RyaW5nCiAgICAqIGBwcml2YXRlYDogYm9v\nbAogICAgKiBgaGFzX2lzc3Vlc2A6IGJvb2wKICAgICogYGhhc193aWtpYDog\nYm9vbAogICAgKiBgaGFzX2Rvd25sb2Fkc2A6IGJvb2wKICAgICogYGF1dG9f\naW5pdGA6IGJvb2wKICAgICogYGdpdGlnbm9yZV90ZW1wbGF0ZWA6IHN0cmlu\nZwoqIGBnZXRfcmVwbyggbmFtZSApYDogYFJlcG9zaXRvcnlgCiAgICAqIGBu\nYW1lYDogc3RyaW5nCiogYGdldF9yZXBvcyggW3R5cGUsIHNvcnQsIGRpcmVj\ndGlvbl0gKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgUmVwb3NpdG9yeWAKICAg\nICogYHR5cGVgOiBzdHJpbmcKICAgICogYHNvcnRgOiBzdHJpbmcKICAgICog\nYGRpcmVjdGlvbmA6IHN0cmluZwoKU3RhcnJlZAotLS0tLS0tCiogYGFkZF90\nb19zdGFycmVkKCBzdGFycmVkIClgCiAgICAqIGBzdGFycmVkYDogYFJlcG9z\naXRvcnlgCiogYGdldF9zdGFycmVkKClgOiBgUGFnaW5hdGVkTGlzdGAgb2Yg\nYFJlcG9zaXRvcnlgCiogYGhhc19pbl9zdGFycmVkKCBzdGFycmVkIClgOiBi\nb29sCiAgICAqIGBzdGFycmVkYDogYFJlcG9zaXRvcnlgCiogYHJlbW92ZV9m\ncm9tX3N0YXJyZWQoIHN0YXJyZWQgKWAKICAgICogYHN0YXJyZWRgOiBgUmVw\nb3NpdG9yeWAKClN1YnNjcmlwdGlvbnMKLS0tLS0tLS0tLS0tLQoqIGBhZGRf\ndG9fc3Vic2NyaXB0aW9ucyggc3Vic2NyaXB0aW9uIClgCiAgICAqIGBzdWJz\nY3JpcHRpb25gOiBgUmVwb3NpdG9yeWAKKiBgZ2V0X3N1YnNjcmlwdGlvbnMo\nKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgUmVwb3NpdG9yeWAKKiBgaGFzX2lu\nX3N1YnNjcmlwdGlvbnMoIHN1YnNjcmlwdGlvbiApYDogYm9vbAogICAgKiBg\nc3Vic2NyaXB0aW9uYDogYFJlcG9zaXRvcnlgCiogYHJlbW92ZV9mcm9tX3N1\nYnNjcmlwdGlvbnMoIHN1YnNjcmlwdGlvbiApYAogICAgKiBgc3Vic2NyaXB0\naW9uYDogYFJlcG9zaXRvcnlgCgpXYXRjaGVkCi0tLS0tLS0KKiBgYWRkX3Rv\nX3dhdGNoZWQoIHdhdGNoZWQgKWAKICAgICogYHdhdGNoZWRgOiBgUmVwb3Np\ndG9yeWAKKiBgZ2V0X3dhdGNoZWQoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBg\nUmVwb3NpdG9yeWAKKiBgaGFzX2luX3dhdGNoZWQoIHdhdGNoZWQgKWA6IGJv\nb2wKICAgICogYHdhdGNoZWRgOiBgUmVwb3NpdG9yeWAKKiBgcmVtb3ZlX2Zy\nb21fd2F0Y2hlZCggd2F0Y2hlZCApYAogICAgKiBgd2F0Y2hlZGA6IGBSZXBv\nc2l0b3J5YAoKQ2xhc3MgYEF1dGhvcml6YXRpb25gCj09PT09PT09PT09PT09\nPT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGFwcGA6IGBBdXRo\nb3JpemF0aW9uQXBwbGljYXRpb25gCiogYGNyZWF0ZWRfYXRgOiBkYXRldGlt\nZS5kYXRldGltZQoqIGBpZGA6IGludGVnZXIKKiBgbm90ZWA6IHN0cmluZwoq\nIGBub3RlX3VybGA6IHN0cmluZwoqIGBzY29wZXNgOiBsaXN0IG9mIHN0cmlu\nZwoqIGB0b2tlbmA6IHN0cmluZwoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUu\nZGF0ZXRpbWUKKiBgdXJsYDogc3RyaW5nCgpEZWxldGlvbgotLS0tLS0tLQoq\nIGBkZWxldGUoKWAKCk1vZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0KKiBgZWRp\ndCggW3Njb3BlcywgYWRkX3Njb3BlcywgcmVtb3ZlX3Njb3Blcywgbm90ZSwg\nbm90ZV91cmxdIClgCiAgICAqIGBzY29wZXNgOiBsaXN0IG9mIHN0cmluZwog\nICAgKiBgYWRkX3Njb3Blc2A6IGxpc3Qgb2Ygc3RyaW5nCiAgICAqIGByZW1v\ndmVfc2NvcGVzYDogbGlzdCBvZiBzdHJpbmcKICAgICogYG5vdGVgOiBzdHJp\nbmcKICAgICogYG5vdGVfdXJsYDogc3RyaW5nCgpDbGFzcyBgQXV0aG9yaXph\ndGlvbkFwcGxpY2F0aW9uYAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09\nPT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYG5hbWVgOiBzdHJpbmcK\nKiBgdXJsYDogc3RyaW5nCgpDbGFzcyBgQnJhbmNoYAo9PT09PT09PT09PT09\nPQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNvbW1pdGA6IGBDb21taXRg\nCiogYG5hbWVgOiBzdHJpbmcKCkNsYXNzIGBDb21taXRgCj09PT09PT09PT09\nPT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgYXV0aG9yYDogYE5hbWVk\nVXNlcmAKKiBgY29tbWl0YDogYEdpdENvbW1pdGAKKiBgY29tbWl0dGVyYDog\nYE5hbWVkVXNlcmAKKiBgZmlsZXNgOiBsaXN0IG9mIGBGaWxlYAoqIGBwYXJl\nbnRzYDogbGlzdCBvZiBgQ29tbWl0YAoqIGBzaGFgOiBzdHJpbmcKKiBgc3Rh\ndHNgOiBgQ29tbWl0U3RhdHNgCiogYHVybGA6IHN0cmluZwoKQ29tbWVudHMK\nLS0tLS0tLS0KKiBgY3JlYXRlX2NvbW1lbnQoIGJvZHksIFtsaW5lLCBwYXRo\nLCBwb3NpdGlvbl0gKWA6IGBDb21taXRDb21tZW50YAogICAgKiBgYm9keWA6\nIHN0cmluZwogICAgKiBgbGluZWA6IGludGVnZXIKICAgICogYHBhdGhgOiBz\ndHJpbmcKICAgICogYHBvc2l0aW9uYDogaW50ZWdlcgoqIGBnZXRfY29tbWVu\ndHMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgQ29tbWl0Q29tbWVudGAKClN0\nYXR1c2VzCi0tLS0tLS0tCiogYGNyZWF0ZV9zdGF0dXMoIHN0YXRlLCBbdGFy\nZ2V0X3VybCwgZGVzY3JpcHRpb25dIClgOiBgQ29tbWl0U3RhdHVzYAogICAg\nKiBgc3RhdGVgOiBzdHJpbmcKICAgICogYHRhcmdldF91cmxgOiBzdHJpbmcK\nICAgICogYGRlc2NyaXB0aW9uYDogc3RyaW5nCiogYGdldF9zdGF0dXNlcygp\nYDogYFBhZ2luYXRlZExpc3RgIG9mIGBDb21taXRTdGF0dXNgCgpDbGFzcyBg\nQ29tbWl0Q29tbWVudGAKPT09PT09PT09PT09PT09PT09PT09CgpBdHRyaWJ1\ndGVzCi0tLS0tLS0tLS0KKiBgYm9keWA6IHN0cmluZwoqIGBjb21taXRfaWRg\nOiBzdHJpbmcKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiog\nYGh0bWxfdXJsYDogc3RyaW5nCiogYGlkYDogaW50ZWdlcgoqIGBsaW5lYDog\naW50ZWdlcgoqIGBwYXRoYDogc3RyaW5nCiogYHBvc2l0aW9uYDogaW50ZWdl\ncgoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgdXJsYDog\nc3RyaW5nCiogYHVzZXJgOiBgTmFtZWRVc2VyYAoKRGVsZXRpb24KLS0tLS0t\nLS0KKiBgZGVsZXRlKClgCgpNb2RpZmljYXRpb24KLS0tLS0tLS0tLS0tCiog\nYGVkaXQoIGJvZHkgKWAKICAgICogYGJvZHlgOiBzdHJpbmcKCkNsYXNzIGBD\nb21taXRTdGF0c2AKPT09PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwot\nLS0tLS0tLS0tCiogYGFkZGl0aW9uc2A6IGludGVnZXIKKiBgZGVsZXRpb25z\nYDogaW50ZWdlcgoqIGB0b3RhbGA6IGludGVnZXIKCkNsYXNzIGBDb21taXRT\ndGF0dXNgCj09PT09PT09PT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0t\nLS0tLS0KKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGNy\nZWF0b3JgOiBgTmFtZWRVc2VyYAoqIGBkZXNjcmlwdGlvbmA6IHN0cmluZwoq\nIGBpZGA6IGludGVnZXIKKiBgc3RhdGVgOiBzdHJpbmcKKiBgdGFyZ2V0X3Vy\nbGA6IHN0cmluZwoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUK\nCkNsYXNzIGBDb21wYXJpc29uYAo9PT09PT09PT09PT09PT09PT0KCkF0dHJp\nYnV0ZXMKLS0tLS0tLS0tLQoqIGBhaGVhZF9ieWA6IGludGVnZXIKKiBgYmFz\nZV9jb21taXRgOiBgQ29tbWl0YAoqIGBiZWhpbmRfYnlgOiBpbnRlZ2VyCiog\nYGNvbW1pdHNgOiBsaXN0IG9mIGBDb21taXRgCiogYGRpZmZfdXJsYDogc3Ry\naW5nCiogYGZpbGVzYDogbGlzdCBvZiBgRmlsZWAKKiBgaHRtbF91cmxgOiBz\ndHJpbmcKKiBgcGF0Y2hfdXJsYDogc3RyaW5nCiogYHBlcm1hbGlua191cmxg\nOiBzdHJpbmcKKiBgc3RhdHVzYDogc3RyaW5nCiogYHRvdGFsX2NvbW1pdHNg\nOiBpbnRlZ2VyCiogYHVybGA6IHN0cmluZwoKQ2xhc3MgYENvbnRlbnRGaWxl\nYAo9PT09PT09PT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0K\nKiBgY29udGVudGA6IHN0cmluZwoqIGBlbmNvZGluZ2A6IHN0cmluZwoqIGBu\nYW1lYDogc3RyaW5nCiogYHBhdGhgOiBzdHJpbmcKKiBgc2hhYDogc3RyaW5n\nCiogYHNpemVgOiBpbnRlZ2VyCiogYHR5cGVgOiBzdHJpbmcKCkNsYXNzIGBE\nb3dubG9hZGAKPT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0t\nLS0tCiogYGFjY2Vzc2tleWlkYDogc3RyaW5nCiogYGFjbGA6IHN0cmluZwoq\nIGBidWNrZXRgOiBzdHJpbmcKKiBgY29udGVudF90eXBlYDogc3RyaW5nCiog\nYGNyZWF0ZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBkZXNjcmlwdGlv\nbmA6IHN0cmluZwoqIGBkb3dubG9hZF9jb3VudGA6IGludGVnZXIKKiBgZXhw\naXJhdGlvbmRhdGVgOiBkYXRldGltZS5kYXRldGltZQoqIGBodG1sX3VybGA6\nIHN0cmluZwoqIGBpZGA6IGludGVnZXIKKiBgbWltZV90eXBlYDogc3RyaW5n\nCiogYG5hbWVgOiBzdHJpbmcKKiBgcGF0aGA6IHN0cmluZwoqIGBwb2xpY3lg\nOiBzdHJpbmcKKiBgcHJlZml4YDogc3RyaW5nCiogYHJlZGlyZWN0YDogYm9v\nbAoqIGBzM191cmxgOiBzdHJpbmcKKiBgc2lnbmF0dXJlYDogc3RyaW5nCiog\nYHNpemVgOiBpbnRlZ2VyCiogYHVybGA6IHN0cmluZwoKRGVsZXRpb24KLS0t\nLS0tLS0KKiBgZGVsZXRlKClgCgpDbGFzcyBgRXZlbnRgCj09PT09PT09PT09\nPT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBhY3RvcmA6IGBOYW1lZFVz\nZXJgCiogYGNyZWF0ZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBpZGA6\nIHN0cmluZwoqIGBvcmdgOiBgT3JnYW5pemF0aW9uYAoqIGBwYXlsb2FkYDog\nZGljdAoqIGBwdWJsaWNgOiBib29sCiogYHJlcG9gOiBgUmVwb3NpdG9yeWAK\nKiBgdHlwZWA6IHN0cmluZwoKQ2xhc3MgYEZpbGVgCj09PT09PT09PT09PQoK\nQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGFkZGl0aW9uc2A6IGludGVnZXIK\nKiBgYmxvYl91cmxgOiBzdHJpbmcKKiBgY2hhbmdlc2A6IGludGVnZXIKKiBg\nZGVsZXRpb25zYDogaW50ZWdlcgoqIGBmaWxlbmFtZWA6IHN0cmluZwoqIGBw\nYXRjaGA6IHN0cmluZwoqIGByYXdfdXJsYDogc3RyaW5nCiogYHNoYWA6IHN0\ncmluZwoqIGBzdGF0dXNgOiBzdHJpbmcKCkNsYXNzIGBHaXN0YAo9PT09PT09\nPT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBjb21tZW50c2A6IGlu\ndGVnZXIKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGRl\nc2NyaXB0aW9uYDogc3RyaW5nCiogYGZpbGVzYDogZGljdCBvZiBzdHJpbmcg\ndG8gYEdpc3RGaWxlYAoqIGBmb3JrX29mYDogYEdpc3RgCiogYGZvcmtzYDog\nbGlzdCBvZiBgR2lzdGAKKiBgZ2l0X3B1bGxfdXJsYDogc3RyaW5nCiogYGdp\ndF9wdXNoX3VybGA6IHN0cmluZwoqIGBoaXN0b3J5YDogbGlzdCBvZiBgR2lz\ndEhpc3RvcnlTdGF0ZWAKKiBgaHRtbF91cmxgOiBzdHJpbmcKKiBgaWRgOiBz\ndHJpbmcKKiBgcHVibGljYDogYm9vbAoqIGB1cGRhdGVkX2F0YDogZGF0ZXRp\nbWUuZGF0ZXRpbWUKKiBgdXJsYDogc3RyaW5nCiogYHVzZXJgOiBgTmFtZWRV\nc2VyYAoKQ29tbWVudHMKLS0tLS0tLS0KKiBgY3JlYXRlX2NvbW1lbnQoIGJv\nZHkgKWA6IGBHaXN0Q29tbWVudGAKICAgICogYGJvZHlgOiBzdHJpbmcKKiBg\nZ2V0X2NvbW1lbnQoIGlkIClgOiBgR2lzdENvbW1lbnRgCiAgICAqIGBpZGA6\nIGludGVnZXIKKiBgZ2V0X2NvbW1lbnRzKClgOiBgUGFnaW5hdGVkTGlzdGAg\nb2YgYEdpc3RDb21tZW50YAoKRGVsZXRpb24KLS0tLS0tLS0KKiBgZGVsZXRl\nKClgCgpGb3JraW5nCi0tLS0tLS0KKiBgY3JlYXRlX2ZvcmsoKWA6IGBHaXN0\nYAoKTW9kaWZpY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBbZGVzY3Jp\ncHRpb24sIGZpbGVzXSApYAogICAgKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcK\nICAgICogYGZpbGVzYDogZGljdCBvZiBzdHJpbmcgdG8gYElucHV0RmlsZUNv\nbnRlbnRgCgpTdGFycmluZwotLS0tLS0tLQoqIGBpc19zdGFycmVkKClgOiBi\nb29sCiogYHJlc2V0X3N0YXJyZWQoKWAKKiBgc2V0X3N0YXJyZWQoKWAKCkNs\nYXNzIGBHaXN0Q29tbWVudGAKPT09PT09PT09PT09PT09PT09PQoKQXR0cmli\ndXRlcwotLS0tLS0tLS0tCiogYGJvZHlgOiBzdHJpbmcKKiBgY3JlYXRlZF9h\ndGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGlkYDogaW50ZWdlcgoqIGB1cGRh\ndGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgdXJsYDogc3RyaW5nCiog\nYHVzZXJgOiBgTmFtZWRVc2VyYAoKRGVsZXRpb24KLS0tLS0tLS0KKiBgZGVs\nZXRlKClgCgpNb2RpZmljYXRpb24KLS0tLS0tLS0tLS0tCiogYGVkaXQoIGJv\nZHkgKWAKICAgICogYGJvZHlgOiBzdHJpbmcKCkNsYXNzIGBHaXN0RmlsZWAK\nPT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNv\nbnRlbnRgOiBzdHJpbmcKKiBgZmlsZW5hbWVgOiBzdHJpbmcKKiBgbGFuZ3Vh\nZ2VgOiBzdHJpbmcKKiBgcmF3X3VybGA6IHN0cmluZwoqIGBzaXplYDogaW50\nZWdlcgoKQ2xhc3MgYEdpc3RIaXN0b3J5U3RhdGVgCj09PT09PT09PT09PT09\nPT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNoYW5nZV9z\ndGF0dXNgOiBgQ29tbWl0U3RhdHNgCiogYGNvbW1pdHRlZF9hdGA6IGRhdGV0\naW1lLmRhdGV0aW1lCiogYHVybGA6IHN0cmluZwoqIGB1c2VyYDogYE5hbWVk\nVXNlcmAKKiBgdmVyc2lvbmA6IHN0cmluZwoKQ2xhc3MgYEdpdEF1dGhvcmAK\nPT09PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBk\nYXRlYDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgZW1haWxgOiBzdHJpbmcKKiBg\nbmFtZWA6IHN0cmluZwoKQ2xhc3MgYEdpdEJsb2JgCj09PT09PT09PT09PT09\nPQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNvbnRlbnRgOiBzdHJpbmcK\nKiBgZW5jb2RpbmdgOiBzdHJpbmcKKiBgc2hhYDogc3RyaW5nCiogYHNpemVg\nOiBpbnRlZ2VyCiogYHVybGA6IHN0cmluZwoKQ2xhc3MgYEdpdENvbW1pdGAK\nPT09PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBh\ndXRob3JgOiBgR2l0QXV0aG9yYAoqIGBjb21taXR0ZXJgOiBgR2l0QXV0aG9y\nYAoqIGBtZXNzYWdlYDogc3RyaW5nCiogYHBhcmVudHNgOiBsaXN0IG9mIGBH\naXRDb21taXRgCiogYHNoYWA6IHN0cmluZwoqIGB0cmVlYDogYEdpdFRyZWVg\nCiogYHVybGA6IHN0cmluZwoKQ2xhc3MgYEdpdE9iamVjdGAKPT09PT09PT09\nPT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBzaGFgOiBzdHJp\nbmcKKiBgdHlwZWA6IHN0cmluZwoqIGB1cmxgOiBzdHJpbmcKCkNsYXNzIGBH\naXRpZ25vcmVUZW1wbGF0ZWAKPT09PT09PT09PT09PT09PT09PT09PT09PQoK\nQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYG5hbWVgOiBzdHJpbmcKKiBgc291\ncmNlYDogc3RyaW5nCgpDbGFzcyBgR2l0UmVmYAo9PT09PT09PT09PT09PQoK\nQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYG9iamVjdGA6IGBHaXRPYmplY3Rg\nCiogYHJlZmA6IHN0cmluZwoqIGB1cmxgOiBzdHJpbmcKCkRlbGV0aW9uCi0t\nLS0tLS0tCiogYGRlbGV0ZSgpYAoKTW9kaWZpY2F0aW9uCi0tLS0tLS0tLS0t\nLQoqIGBlZGl0KCBzaGEsIFtmb3JjZV0gKWAKICAgICogYHNoYWA6IHN0cmlu\nZwogICAgKiBgZm9yY2VgOiBib29sCgpDbGFzcyBgR2l0VGFnYAo9PT09PT09\nPT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYG1lc3NhZ2VgOiBz\ndHJpbmcKKiBgb2JqZWN0YDogYEdpdE9iamVjdGAKKiBgc2hhYDogc3RyaW5n\nCiogYHRhZ2A6IHN0cmluZwoqIGB0YWdnZXJgOiBgR2l0QXV0aG9yYAoqIGB1\ncmxgOiBzdHJpbmcKCkNsYXNzIGBHaXRUcmVlYAo9PT09PT09PT09PT09PT0K\nCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBzaGFgOiBzdHJpbmcKKiBgdHJl\nZWA6IGxpc3Qgb2YgYEdpdFRyZWVFbGVtZW50YAoqIGB1cmxgOiBzdHJpbmcK\nCkNsYXNzIGBHaXRUcmVlRWxlbWVudGAKPT09PT09PT09PT09PT09PT09PT09\nPQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYG1vZGVgOiBzdHJpbmcKKiBg\ncGF0aGA6IHN0cmluZwoqIGBzaGFgOiBzdHJpbmcKKiBgc2l6ZWA6IGludGVn\nZXIKKiBgdHlwZWA6IHN0cmluZwoqIGB1cmxgOiBzdHJpbmcKCkNsYXNzIGBI\nb29rYAo9PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBh\nY3RpdmVgOiBib29sCiogYGNvbmZpZ2A6IGRpY3QKKiBgY3JlYXRlZF9hdGA6\nIGRhdGV0aW1lLmRhdGV0aW1lCiogYGV2ZW50c2A6IGxpc3Qgb2Ygc3RyaW5n\nCiogYGlkYDogaW50ZWdlcgoqIGBsYXN0X3Jlc3BvbnNlYDogYEhvb2tSZXNw\nb25zZWAKKiBgbmFtZWA6IHN0cmluZwoqIGB1cGRhdGVkX2F0YDogZGF0ZXRp\nbWUuZGF0ZXRpbWUKKiBgdXJsYDogc3RyaW5nCgpEZWxldGlvbgotLS0tLS0t\nLQoqIGBkZWxldGUoKWAKCk1vZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0KKiBg\nZWRpdCggbmFtZSwgY29uZmlnLCBbZXZlbnRzLCBhZGRfZXZlbnRzLCByZW1v\ndmVfZXZlbnRzLCBhY3RpdmVdIClgCiAgICAqIGBuYW1lYDogc3RyaW5nCiAg\nICAqIGBjb25maWdgOiBkaWN0CiAgICAqIGBldmVudHNgOiBsaXN0IG9mIHN0\ncmluZwogICAgKiBgYWRkX2V2ZW50c2A6IGxpc3Qgb2Ygc3RyaW5nCiAgICAq\nIGByZW1vdmVfZXZlbnRzYDogbGlzdCBvZiBzdHJpbmcKICAgICogYGFjdGl2\nZWA6IGJvb2wKClRlc3RpbmcKLS0tLS0tLQoqIGB0ZXN0KClgCgpDbGFzcyBg\nSG9va0Rlc2NyaXB0aW9uYAo9PT09PT09PT09PT09PT09PT09PT09PQoKQXR0\ncmlidXRlcwotLS0tLS0tLS0tCiogYGV2ZW50c2A6IGxpc3Qgb2Ygc3RyaW5n\nCiogYG5hbWVgOiBzdHJpbmcKKiBgc2NoZW1hYDogbGlzdCBvZiBsaXN0IG9m\nIHN0cmluZwoqIGBzdXBwb3J0ZWRfZXZlbnRzYDogbGlzdCBvZiBzdHJpbmcK\nCkNsYXNzIGBIb29rUmVzcG9uc2VgCj09PT09PT09PT09PT09PT09PT09CgpB\ndHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgY29kZWA6IGludGVnZXIKKiBgbWVz\nc2FnZWA6IHN0cmluZwoqIGBzdGF0dXNgOiBzdHJpbmcKCkNsYXNzIGBJc3N1\nZWAKPT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGFz\nc2lnbmVlYDogYE5hbWVkVXNlcmAKKiBgYm9keWA6IHN0cmluZwoqIGBjbG9z\nZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBjbG9zZWRfYnlgOiBgTmFt\nZWRVc2VyYAoqIGBjb21tZW50c2A6IGludGVnZXIKKiBgY3JlYXRlZF9hdGA6\nIGRhdGV0aW1lLmRhdGV0aW1lCiogYGh0bWxfdXJsYDogc3RyaW5nCiogYGlk\nYDogaW50ZWdlcgoqIGBsYWJlbHNgOiBsaXN0IG9mIGBMYWJlbGAKKiBgbWls\nZXN0b25lYDogYE1pbGVzdG9uZWAKKiBgbnVtYmVyYDogaW50ZWdlcgoqIGBw\ndWxsX3JlcXVlc3RgOiBgSXNzdWVQdWxsUmVxdWVzdGAKKiBgcmVwb3NpdG9y\neWA6IGBSZXBvc2l0b3J5YAoqIGBzdGF0ZWA6IHN0cmluZwoqIGB0aXRsZWA6\nIHN0cmluZwoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBg\ndXJsYDogc3RyaW5nCiogYHVzZXJgOiBgTmFtZWRVc2VyYAoKQ29tbWVudHMK\nLS0tLS0tLS0KKiBgY3JlYXRlX2NvbW1lbnQoIGJvZHkgKWA6IGBJc3N1ZUNv\nbW1lbnRgCiAgICAqIGBib2R5YDogc3RyaW5nCiogYGdldF9jb21tZW50KCBp\nZCApYDogYElzc3VlQ29tbWVudGAKICAgICogYGlkYDogaW50ZWdlcgoqIGBn\nZXRfY29tbWVudHMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgSXNzdWVDb21t\nZW50YAoKRXZlbnRzCi0tLS0tLQoqIGBnZXRfZXZlbnRzKClgOiBgUGFnaW5h\ndGVkTGlzdGAgb2YgYElzc3VlRXZlbnRgCgpMYWJlbHMKLS0tLS0tCiogYGFk\nZF90b19sYWJlbHMoIGxhYmVsLCAuLi4gKWAKICAgICogYGxhYmVsYDogYExh\nYmVsYAoqIGBkZWxldGVfbGFiZWxzKClgCiogYGdldF9sYWJlbHMoKWA6IGBQ\nYWdpbmF0ZWRMaXN0YCBvZiBgTGFiZWxgCiogYHJlbW92ZV9mcm9tX2xhYmVs\ncyggbGFiZWwgKWAKICAgICogYGxhYmVsYDogYExhYmVsYAoqIGBzZXRfbGFi\nZWxzKCBsYWJlbCwgLi4uIClgCiAgICAqIGBsYWJlbGA6IGBMYWJlbGAKCk1v\nZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0KKiBgZWRpdCggW3RpdGxlLCBib2R5\nLCBhc3NpZ25lZSwgc3RhdGUsIG1pbGVzdG9uZSwgbGFiZWxzXSApYAogICAg\nKiBgdGl0bGVgOiBzdHJpbmcKICAgICogYGJvZHlgOiBzdHJpbmcKICAgICog\nYGFzc2lnbmVlYDogYE5hbWVkVXNlcmAgb3IgTm9uZQogICAgKiBgc3RhdGVg\nOiBzdHJpbmcKICAgICogYG1pbGVzdG9uZWA6IGBNaWxlc3RvbmVgIG9yIE5v\nbmUKICAgICogYGxhYmVsc2A6IGxpc3Qgb2Ygc3RyaW5nCgpDbGFzcyBgSXNz\ndWVDb21tZW50YAo9PT09PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwot\nLS0tLS0tLS0tCiogYGJvZHlgOiBzdHJpbmcKKiBgY3JlYXRlZF9hdGA6IGRh\ndGV0aW1lLmRhdGV0aW1lCiogYGlkYDogaW50ZWdlcgoqIGB1cGRhdGVkX2F0\nYDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgdXJsYDogc3RyaW5nCiogYHVzZXJg\nOiBgTmFtZWRVc2VyYAoKRGVsZXRpb24KLS0tLS0tLS0KKiBgZGVsZXRlKClg\nCgpNb2RpZmljYXRpb24KLS0tLS0tLS0tLS0tCiogYGVkaXQoIGJvZHkgKWAK\nICAgICogYGJvZHlgOiBzdHJpbmcKCkNsYXNzIGBJc3N1ZUV2ZW50YAo9PT09\nPT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBhY3Rv\ncmA6IGBOYW1lZFVzZXJgCiogYGNvbW1pdF9pZGA6IHN0cmluZwoqIGBjcmVh\ndGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgZXZlbnRgOiBzdHJpbmcK\nKiBgaWRgOiBpbnRlZ2VyCiogYGlzc3VlYDogYElzc3VlYAoqIGB1cmxgOiBz\ndHJpbmcKCkNsYXNzIGBJc3N1ZVB1bGxSZXF1ZXN0YAo9PT09PT09PT09PT09\nPT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBkaWZmX3Vy\nbGA6IHN0cmluZwoqIGBodG1sX3VybGA6IHN0cmluZwoqIGBwYXRjaF91cmxg\nOiBzdHJpbmcKCkNsYXNzIGBMYWJlbGAKPT09PT09PT09PT09PQoKQXR0cmli\ndXRlcwotLS0tLS0tLS0tCiogYGNvbG9yYDogc3RyaW5nCiogYG5hbWVgOiBz\ndHJpbmcKKiBgdXJsYDogc3RyaW5nCgpEZWxldGlvbgotLS0tLS0tLQoqIGBk\nZWxldGUoKWAKCk1vZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0KKiBgZWRpdCgg\nbmFtZSwgY29sb3IgKWAKICAgICogYG5hbWVgOiBzdHJpbmcKICAgICogYGNv\nbG9yYDogc3RyaW5nCgpDbGFzcyBgTWlsZXN0b25lYAo9PT09PT09PT09PT09\nPT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNsb3NlZF9pc3N1ZXNg\nOiBpbnRlZ2VyCiogYGNyZWF0ZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoq\nIGBjcmVhdG9yYDogYE5hbWVkVXNlcmAKKiBgZGVzY3JpcHRpb25gOiBzdHJp\nbmcKKiBgZHVlX29uYDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgaWRgOiBpbnRl\nZ2VyCiogYG51bWJlcmA6IGludGVnZXIKKiBgb3Blbl9pc3N1ZXNgOiBpbnRl\nZ2VyCiogYHN0YXRlYDogc3RyaW5nCiogYHRpdGxlYDogc3RyaW5nCiogYHVy\nbGA6IHN0cmluZwoKRGVsZXRpb24KLS0tLS0tLS0KKiBgZGVsZXRlKClgCgpM\nYWJlbHMKLS0tLS0tCiogYGdldF9sYWJlbHMoKWA6IGBQYWdpbmF0ZWRMaXN0\nYCBvZiBgTGFiZWxgCgpNb2RpZmljYXRpb24KLS0tLS0tLS0tLS0tCiogYGVk\naXQoIHRpdGxlLCBbc3RhdGUsIGRlc2NyaXB0aW9uLCBkdWVfb25dIClgCiAg\nICAqIGB0aXRsZWA6IHN0cmluZwogICAgKiBgc3RhdGVgOiBzdHJpbmcKICAg\nICogYGRlc2NyaXB0aW9uYDogc3RyaW5nCiAgICAqIGBkdWVfb25gOiBkYXRl\nCgpDbGFzcyBgTmFtZWRVc2VyYAo9PT09PT09PT09PT09PT09PQoKQXR0cmli\ndXRlcwotLS0tLS0tLS0tCiogYGF2YXRhcl91cmxgOiBzdHJpbmcKKiBgYmlv\nYDogc3RyaW5nCiogYGJsb2dgOiBzdHJpbmcKKiBgY29sbGFib3JhdG9yc2A6\nIGludGVnZXIKKiBgY29tcGFueWA6IHN0cmluZwoqIGBjb250cmlidXRpb25z\nYDogaW50ZWdlcgoqIGBjcmVhdGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUK\nKiBgZGlza191c2FnZWA6IGludGVnZXIKKiBgZW1haWxgOiBzdHJpbmcKKiBg\nZm9sbG93ZXJzYDogaW50ZWdlcgoqIGBmb2xsb3dpbmdgOiBpbnRlZ2VyCiog\nYGdyYXZhdGFyX2lkYDogc3RyaW5nCiogYGhpcmVhYmxlYDogYm9vbAoqIGBo\ndG1sX3VybGA6IHN0cmluZwoqIGBpZGA6IGludGVnZXIKKiBgbG9jYXRpb25g\nOiBzdHJpbmcKKiBgbG9naW5gOiBzdHJpbmcKKiBgbmFtZWA6IHN0cmluZwoq\nIGBvd25lZF9wcml2YXRlX3JlcG9zYDogaW50ZWdlcgoqIGBwbGFuYDogYFBs\nYW5gCiogYHByaXZhdGVfZ2lzdHNgOiBpbnRlZ2VyCiogYHB1YmxpY19naXN0\nc2A6IGludGVnZXIKKiBgcHVibGljX3JlcG9zYDogaW50ZWdlcgoqIGB0b3Rh\nbF9wcml2YXRlX3JlcG9zYDogaW50ZWdlcgoqIGB0eXBlYDogc3RyaW5nCiog\nYHVybGA6IHN0cmluZwoKRXZlbnRzCi0tLS0tLQoqIGBnZXRfZXZlbnRzKClg\nOiBgUGFnaW5hdGVkTGlzdGAgb2YgYEV2ZW50YAoqIGBnZXRfcHVibGljX2V2\nZW50cygpYDogYFBhZ2luYXRlZExpc3RgIG9mIGBFdmVudGAKKiBgZ2V0X3Jl\nY2VpdmVkX2V2ZW50cygpYDogYFBhZ2luYXRlZExpc3RgIG9mIGBFdmVudGAK\nKiBgZ2V0X3B1YmxpY19yZWNlaXZlZF9ldmVudHMoKWA6IGBQYWdpbmF0ZWRM\naXN0YCBvZiBgRXZlbnRgCgpGb2xsb3dlcnMKLS0tLS0tLS0tCiogYGdldF9m\nb2xsb3dlcnMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgTmFtZWRVc2VyYAoK\nRm9sbG93aW5nCi0tLS0tLS0tLQoqIGBnZXRfZm9sbG93aW5nKClgOiBgUGFn\naW5hdGVkTGlzdGAgb2YgYE5hbWVkVXNlcmAKCkdpc3RzCi0tLS0tCiogYGNy\nZWF0ZV9naXN0KCBwdWJsaWMsIGZpbGVzLCBbZGVzY3JpcHRpb25dIClgOiBg\nR2lzdGAKICAgICogYHB1YmxpY2A6IGJvb2wKICAgICogYGZpbGVzYDogZGlj\ndCBvZiBzdHJpbmcgdG8gYElucHV0RmlsZUNvbnRlbnRgCiAgICAqIGBkZXNj\ncmlwdGlvbmA6IHN0cmluZwoqIGBnZXRfZ2lzdHMoKWA6IGBQYWdpbmF0ZWRM\naXN0YCBvZiBgR2lzdGAKCk9yZ3MKLS0tLQoqIGBnZXRfb3JncygpYDogYFBh\nZ2luYXRlZExpc3RgIG9mIGBPcmdhbml6YXRpb25gCgpSZXBvcwotLS0tLQoq\nIGBnZXRfcmVwbyggbmFtZSApYDogYFJlcG9zaXRvcnlgCiAgICAqIGBuYW1l\nYDogc3RyaW5nCiogYGdldF9yZXBvcyggW3R5cGVdIClgOiBgUGFnaW5hdGVk\nTGlzdGAgb2YgYFJlcG9zaXRvcnlgCiAgICAqIGB0eXBlYDogc3RyaW5nCgpT\ndGFycmVkCi0tLS0tLS0KKiBgZ2V0X3N0YXJyZWQoKWA6IGBQYWdpbmF0ZWRM\naXN0YCBvZiBgUmVwb3NpdG9yeWAKClN1YnNjcmlwdGlvbnMKLS0tLS0tLS0t\nLS0tLQoqIGBnZXRfc3Vic2NyaXB0aW9ucygpYDogYFBhZ2luYXRlZExpc3Rg\nIG9mIGBSZXBvc2l0b3J5YAoKV2F0Y2hlZAotLS0tLS0tCiogYGdldF93YXRj\naGVkKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYFJlcG9zaXRvcnlgCgpDbGFz\ncyBgT3JnYW5pemF0aW9uYAo9PT09PT09PT09PT09PT09PT09PQoKQXR0cmli\ndXRlcwotLS0tLS0tLS0tCiogYGF2YXRhcl91cmxgOiBzdHJpbmcKKiBgYmls\nbGluZ19lbWFpbGA6IHN0cmluZwoqIGBibG9nYDogc3RyaW5nCiogYGNvbGxh\nYm9yYXRvcnNgOiBpbnRlZ2VyCiogYGNvbXBhbnlgOiBzdHJpbmcKKiBgY3Jl\nYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGRpc2tfdXNhZ2VgOiBp\nbnRlZ2VyCiogYGVtYWlsYDogc3RyaW5nCiogYGZvbGxvd2Vyc2A6IGludGVn\nZXIKKiBgZm9sbG93aW5nYDogaW50ZWdlcgoqIGBncmF2YXRhcl9pZGA6IHN0\ncmluZwoqIGBodG1sX3VybGA6IHN0cmluZwoqIGBpZGA6IGludGVnZXIKKiBg\nbG9jYXRpb25gOiBzdHJpbmcKKiBgbG9naW5gOiBzdHJpbmcKKiBgbmFtZWA6\nIHN0cmluZwoqIGBvd25lZF9wcml2YXRlX3JlcG9zYDogaW50ZWdlcgoqIGBw\nbGFuYDogYFBsYW5gCiogYHByaXZhdGVfZ2lzdHNgOiBpbnRlZ2VyCiogYHB1\nYmxpY19naXN0c2A6IGludGVnZXIKKiBgcHVibGljX3JlcG9zYDogaW50ZWdl\ncgoqIGB0b3RhbF9wcml2YXRlX3JlcG9zYDogaW50ZWdlcgoqIGB0eXBlYDog\nc3RyaW5nCiogYHVybGA6IHN0cmluZwoKRXZlbnRzCi0tLS0tLQoqIGBnZXRf\nZXZlbnRzKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYEV2ZW50YAoKRm9ya2lu\nZwotLS0tLS0tCiogYGNyZWF0ZV9mb3JrKCByZXBvIClgOiBgUmVwb3NpdG9y\neWAKICAgICogYHJlcG9gOiBgUmVwb3NpdG9yeWAKCk1lbWJlcnMKLS0tLS0t\nLQoqIGBnZXRfbWVtYmVycygpYDogYFBhZ2luYXRlZExpc3RgIG9mIGBOYW1l\nZFVzZXJgCiogYGhhc19pbl9tZW1iZXJzKCBtZW1iZXIgKWA6IGJvb2wKICAg\nICogYG1lbWJlcmA6IGBOYW1lZFVzZXJgCiogYHJlbW92ZV9mcm9tX21lbWJl\ncnMoIG1lbWJlciApYAogICAgKiBgbWVtYmVyYDogYE5hbWVkVXNlcmAKCk1v\nZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0KKiBgZWRpdCggW2JpbGxpbmdfZW1h\naWwsIGJsb2csIGNvbXBhbnksIGVtYWlsLCBsb2NhdGlvbiwgbmFtZV0gKWAK\nICAgICogYGJpbGxpbmdfZW1haWxgOiBzdHJpbmcKICAgICogYGJsb2dgOiBz\ndHJpbmcKICAgICogYGNvbXBhbnlgOiBzdHJpbmcKICAgICogYGVtYWlsYDog\nc3RyaW5nCiAgICAqIGBsb2NhdGlvbmA6IHN0cmluZwogICAgKiBgbmFtZWA6\nIHN0cmluZwoKUHVibGljX21lbWJlcnMKLS0tLS0tLS0tLS0tLS0KKiBgYWRk\nX3RvX3B1YmxpY19tZW1iZXJzKCBwdWJsaWNfbWVtYmVyIClgCiAgICAqIGBw\ndWJsaWNfbWVtYmVyYDogYE5hbWVkVXNlcmAKKiBgZ2V0X3B1YmxpY19tZW1i\nZXJzKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYE5hbWVkVXNlcmAKKiBgaGFz\nX2luX3B1YmxpY19tZW1iZXJzKCBwdWJsaWNfbWVtYmVyIClgOiBib29sCiAg\nICAqIGBwdWJsaWNfbWVtYmVyYDogYE5hbWVkVXNlcmAKKiBgcmVtb3ZlX2Zy\nb21fcHVibGljX21lbWJlcnMoIHB1YmxpY19tZW1iZXIgKWAKICAgICogYHB1\nYmxpY19tZW1iZXJgOiBgTmFtZWRVc2VyYAoKUmVwb3MKLS0tLS0KKiBgY3Jl\nYXRlX3JlcG8oIG5hbWUsIFtkZXNjcmlwdGlvbiwgaG9tZXBhZ2UsIHByaXZh\ndGUsIGhhc19pc3N1ZXMsIGhhc193aWtpLCBoYXNfZG93bmxvYWRzLCB0ZWFt\nX2lkLCBhdXRvX2luaXQsIGdpdGlnbm9yZV90ZW1wbGF0ZV0gKWA6IGBSZXBv\nc2l0b3J5YAogICAgKiBgbmFtZWA6IHN0cmluZwogICAgKiBgZGVzY3JpcHRp\nb25gOiBzdHJpbmcKICAgICogYGhvbWVwYWdlYDogc3RyaW5nCiAgICAqIGBw\ncml2YXRlYDogYm9vbAogICAgKiBgaGFzX2lzc3Vlc2A6IGJvb2wKICAgICog\nYGhhc193aWtpYDogYm9vbAogICAgKiBgaGFzX2Rvd25sb2Fkc2A6IGJvb2wK\nICAgICogYHRlYW1faWRgOiBgVGVhbWAKICAgICogYGF1dG9faW5pdGA6IGJv\nb2wKICAgICogYGdpdGlnbm9yZV90ZW1wbGF0ZWA6IHN0cmluZwoqIGBnZXRf\ncmVwbyggbmFtZSApYDogYFJlcG9zaXRvcnlgCiAgICAqIGBuYW1lYDogc3Ry\naW5nCiogYGdldF9yZXBvcyggW3R5cGVdIClgOiBgUGFnaW5hdGVkTGlzdGAg\nb2YgYFJlcG9zaXRvcnlgCiAgICAqIGB0eXBlYDogc3RyaW5nCgpUZWFtcwot\nLS0tLQoqIGBjcmVhdGVfdGVhbSggbmFtZSwgW3JlcG9fbmFtZXMsIHBlcm1p\nc3Npb25dIClgOiBgVGVhbWAKICAgICogYG5hbWVgOiBzdHJpbmcKICAgICog\nYHJlcG9fbmFtZXNgOiBsaXN0IG9mIGBSZXBvc2l0b3J5YAogICAgKiBgcGVy\nbWlzc2lvbmA6IHN0cmluZwoqIGBnZXRfdGVhbSggaWQgKWA6IGBUZWFtYAog\nICAgKiBgaWRgOiBpbnRlZ2VyCiogYGdldF90ZWFtcygpYDogYFBhZ2luYXRl\nZExpc3RgIG9mIGBUZWFtYAoKQ2xhc3MgYFBlcm1pc3Npb25zYAo9PT09PT09\nPT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgYWRtaW5g\nOiBib29sCiogYHB1bGxgOiBib29sCiogYHB1c2hgOiBib29sCgpDbGFzcyBg\nUGxhbmAKPT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBg\nY29sbGFib3JhdG9yc2A6IGludGVnZXIKKiBgbmFtZWA6IHN0cmluZwoqIGBw\ncml2YXRlX3JlcG9zYDogaW50ZWdlcgoqIGBzcGFjZWA6IGludGVnZXIKCkNs\nYXNzIGBQdWxsUmVxdWVzdGAKPT09PT09PT09PT09PT09PT09PQoKQXR0cmli\ndXRlcwotLS0tLS0tLS0tCiogYGFkZGl0aW9uc2A6IGludGVnZXIKKiBgYXNz\naWduZWVgOiBgTmFtZWRVc2VyYAoqIGBiYXNlYDogYFB1bGxSZXF1ZXN0UGFy\ndGAKKiBgYm9keWA6IHN0cmluZwoqIGBjaGFuZ2VkX2ZpbGVzYDogaW50ZWdl\ncgoqIGBjbG9zZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBjb21tZW50\nc2A6IGludGVnZXIKKiBgY29tbWl0c2A6IGludGVnZXIKKiBgY3JlYXRlZF9h\ndGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGRlbGV0aW9uc2A6IGludGVnZXIK\nKiBgZGlmZl91cmxgOiBzdHJpbmcKKiBgaGVhZGA6IGBQdWxsUmVxdWVzdFBh\ncnRgCiogYGh0bWxfdXJsYDogc3RyaW5nCiogYGlkYDogaW50ZWdlcgoqIGBp\nc3N1ZV91cmxgOiBzdHJpbmcKKiBgbWVyZ2VhYmxlYDogYm9vbAoqIGBtZXJn\nZWRgOiBib29sCiogYG1lcmdlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiog\nYG1lcmdlZF9ieWA6IGBOYW1lZFVzZXJgCiogYG51bWJlcmA6IGludGVnZXIK\nKiBgcGF0Y2hfdXJsYDogc3RyaW5nCiogYHJldmlld19jb21tZW50c2A6IGlu\ndGVnZXIKKiBgc3RhdGVgOiBzdHJpbmcKKiBgdGl0bGVgOiBzdHJpbmcKKiBg\ndXBkYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYHVybGA6IHN0cmlu\nZwoqIGB1c2VyYDogYE5hbWVkVXNlcmAKClJldmlldyBjb21tZW50cwotLS0t\nLS0tLS0tLS0tLS0KKiBgY3JlYXRlX2NvbW1lbnQoIGJvZHksIGNvbW1pdF9p\nZCwgcGF0aCwgcG9zaXRpb24gKWA6IGBQdWxsUmVxdWVzdENvbW1lbnRgCiAg\nICAqIGBib2R5YDogc3RyaW5nCiAgICAqIGBjb21taXRfaWRgOiBgQ29tbWl0\nYAogICAgKiBgcGF0aGA6IHN0cmluZwogICAgKiBgcG9zaXRpb25gOiBpbnRl\nZ2VyCiogYGNyZWF0ZV9yZXZpZXdfY29tbWVudCggYm9keSwgY29tbWl0X2lk\nLCBwYXRoLCBwb3NpdGlvbiApYDogYFB1bGxSZXF1ZXN0Q29tbWVudGAKICAg\nICogYGJvZHlgOiBzdHJpbmcKICAgICogYGNvbW1pdF9pZGA6IGBDb21taXRg\nCiAgICAqIGBwYXRoYDogc3RyaW5nCiAgICAqIGBwb3NpdGlvbmA6IGludGVn\nZXIKKiBgZ2V0X2NvbW1lbnQoIGlkIClgOiBgUHVsbFJlcXVlc3RDb21tZW50\nYAogICAgKiBgaWRgOiBpbnRlZ2VyCiogYGdldF9yZXZpZXdfY29tbWVudCgg\naWQgKWA6IGBQdWxsUmVxdWVzdENvbW1lbnRgCiAgICAqIGBpZGA6IGludGVn\nZXIKKiBgZ2V0X2NvbW1lbnRzKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYFB1\nbGxSZXF1ZXN0Q29tbWVudGAKKiBgZ2V0X3Jldmlld19jb21tZW50cygpYDog\nYFBhZ2luYXRlZExpc3RgIG9mIGBQdWxsUmVxdWVzdENvbW1lbnRgCgpDb21t\naXRzCi0tLS0tLS0KKiBgZ2V0X2NvbW1pdHMoKWA6IGBQYWdpbmF0ZWRMaXN0\nYCBvZiBgQ29tbWl0YAoKRmlsZXMKLS0tLS0KKiBgZ2V0X2ZpbGVzKClgOiBg\nUGFnaW5hdGVkTGlzdGAgb2YgYEZpbGVgCgpJc3N1ZV9jb21tZW50cwotLS0t\nLS0tLS0tLS0tLQoqIGBjcmVhdGVfaXNzdWVfY29tbWVudCggYm9keSApYDog\nYElzc3VlQ29tbWVudGAKICAgICogYGJvZHlgOiBzdHJpbmcKKiBgZ2V0X2lz\nc3VlX2NvbW1lbnQoIGlkIClgOiBgSXNzdWVDb21tZW50YAogICAgKiBgaWRg\nOiBpbnRlZ2VyCiogYGdldF9pc3N1ZV9jb21tZW50cygpYDogYFBhZ2luYXRl\nZExpc3RgIG9mIGBJc3N1ZUNvbW1lbnRgCgpNZXJnaW5nCi0tLS0tLS0KKiBg\naXNfbWVyZ2VkKClgOiBib29sCiogYG1lcmdlKCBbY29tbWl0X21lc3NhZ2Vd\nIClgOiBgUHVsbFJlcXVlc3RNZXJnZVN0YXR1c2AKICAgICogYGNvbW1pdF9t\nZXNzYWdlYDogc3RyaW5nCgpNb2RpZmljYXRpb24KLS0tLS0tLS0tLS0tCiog\nYGVkaXQoIFt0aXRsZSwgYm9keSwgc3RhdGVdIClgCiAgICAqIGB0aXRsZWA6\nIHN0cmluZwogICAgKiBgYm9keWA6IHN0cmluZwogICAgKiBgc3RhdGVgOiBz\ndHJpbmcKCkNsYXNzIGBQdWxsUmVxdWVzdENvbW1lbnRgCj09PT09PT09PT09\nPT09PT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgYm9k\neWA6IHN0cmluZwoqIGBjb21taXRfaWRgOiBzdHJpbmcKKiBgY3JlYXRlZF9h\ndGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGlkYDogaW50ZWdlcgoqIGBvcmln\naW5hbF9jb21taXRfaWRgOiBzdHJpbmcKKiBgb3JpZ2luYWxfcG9zaXRpb25g\nOiBpbnRlZ2VyCiogYHBhdGhgOiBzdHJpbmcKKiBgcG9zaXRpb25gOiBpbnRl\nZ2VyCiogYHVwZGF0ZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGB1cmxg\nOiBzdHJpbmcKKiBgdXNlcmA6IGBOYW1lZFVzZXJgCgpEZWxldGlvbgotLS0t\nLS0tLQoqIGBkZWxldGUoKWAKCk1vZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0K\nKiBgZWRpdCggYm9keSApYAogICAgKiBgYm9keWA6IHN0cmluZwoKQ2xhc3Mg\nYFB1bGxSZXF1ZXN0TWVyZ2VTdGF0dXNgCj09PT09PT09PT09PT09PT09PT09\nPT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYG1lcmdlZGA6\nIGJvb2wKKiBgbWVzc2FnZWA6IHN0cmluZwoqIGBzaGFgOiBzdHJpbmcKCkNs\nYXNzIGBQdWxsUmVxdWVzdFBhcnRgCj09PT09PT09PT09PT09PT09PT09PT09\nCgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgbGFiZWxgOiBzdHJpbmcKKiBg\ncmVmYDogc3RyaW5nCiogYHJlcG9gOiBgUmVwb3NpdG9yeWAKKiBgc2hhYDog\nc3RyaW5nCiogYHVzZXJgOiBgTmFtZWRVc2VyYAoKQ2xhc3MgYFJlcG9zaXRv\ncnlgCj09PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0t\nCiogYGNsb25lX3VybGA6IHN0cmluZwoqIGBjcmVhdGVkX2F0YDogZGF0ZXRp\nbWUuZGF0ZXRpbWUKKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcKKiBgZm9ya2A6\nIGJvb2wKKiBgZm9ya3NgOiBpbnRlZ2VyCiogYGZ1bGxfbmFtZWA6IHN0cmlu\nZwoqIGBnaXRfdXJsYDogc3RyaW5nCiogYGhhc19kb3dubG9hZHNgOiBib29s\nCiogYGhhc19pc3N1ZXNgOiBib29sCiogYGhhc193aWtpYDogYm9vbAoqIGBo\nb21lcGFnZWA6IHN0cmluZwoqIGBodG1sX3VybGA6IHN0cmluZwoqIGBpZGA6\nIGludGVnZXIKKiBgbGFuZ3VhZ2VgOiBzdHJpbmcKKiBgbWFzdGVyX2JyYW5j\naGA6IHN0cmluZwoqIGBuYW1lYDogc3RyaW5nCiogYG9wZW5faXNzdWVzYDog\naW50ZWdlcgoqIGBvcmdhbml6YXRpb25gOiBgT3JnYW5pemF0aW9uYAoqIGBv\nd25lcmA6IGBOYW1lZFVzZXJgCiogYHBhcmVudGA6IGBSZXBvc2l0b3J5YAoq\nIGBwZXJtaXNzaW9uc2A6IGBQZXJtaXNzaW9uc2AKKiBgcHJpdmF0ZWA6IGJv\nb2wKKiBgcHVzaGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgc2l6ZWA6\nIGludGVnZXIKKiBgc291cmNlYDogYFJlcG9zaXRvcnlgCiogYHNzaF91cmxg\nOiBzdHJpbmcKKiBgc3ZuX3VybGA6IHN0cmluZwoqIGB1cGRhdGVkX2F0YDog\nZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgdXJsYDogc3RyaW5nCiogYHdhdGNoZXJz\nYDogaW50ZWdlcgoKQ29tcGFyaXNvbgotLS0tLS0tLS0tCiogYGNvbXBhcmUo\nIGJhc2UsIGhlYWQgKWA6IGBDb21wYXJpc29uYAogICAgKiBgYmFzZWA6IHN0\ncmluZwogICAgKiBgaGVhZGA6IHN0cmluZwoKQXNzaWduZWVzCi0tLS0tLS0t\nLQoqIGBnZXRfYXNzaWduZWVzKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYE5h\nbWVkVXNlcmAKKiBgaGFzX2luX2Fzc2lnbmVlcyggYXNzaWduZWUgKWA6IGJv\nb2wKICAgICogYGFzc2lnbmVlYDogYE5hbWVkVXNlcmAKCkJyYW5jaGVzCi0t\nLS0tLS0tCiogYGdldF9icmFuY2goIGJyYW5jaCApYDogYEJyYW5jaGAKICAg\nICogYGJyYW5jaGA6IHN0cmluZwoqIGBnZXRfYnJhbmNoZXMoKWA6IGBQYWdp\nbmF0ZWRMaXN0YCBvZiBgQnJhbmNoYAoKQ29sbGFib3JhdG9ycwotLS0tLS0t\nLS0tLS0tCiogYGFkZF90b19jb2xsYWJvcmF0b3JzKCBjb2xsYWJvcmF0b3Ig\nKWAKICAgICogYGNvbGxhYm9yYXRvcmA6IGBOYW1lZFVzZXJgCiogYGdldF9j\nb2xsYWJvcmF0b3JzKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYE5hbWVkVXNl\ncmAKKiBgaGFzX2luX2NvbGxhYm9yYXRvcnMoIGNvbGxhYm9yYXRvciApYDog\nYm9vbAogICAgKiBgY29sbGFib3JhdG9yYDogYE5hbWVkVXNlcmAKKiBgcmVt\nb3ZlX2Zyb21fY29sbGFib3JhdG9ycyggY29sbGFib3JhdG9yIClgCiAgICAq\nIGBjb2xsYWJvcmF0b3JgOiBgTmFtZWRVc2VyYAoKQ29tbWVudHMKLS0tLS0t\nLS0KKiBgZ2V0X2NvbW1lbnQoIGlkIClgOiBgQ29tbWl0Q29tbWVudGAKICAg\nICogYGlkYDogaW50ZWdlcgoqIGBnZXRfY29tbWVudHMoKWA6IGBQYWdpbmF0\nZWRMaXN0YCBvZiBgQ29tbWl0Q29tbWVudGAKCkNvbW1pdHMKLS0tLS0tLQoq\nIGBnZXRfY29tbWl0KCBzaGEgKWA6IGBDb21taXRgCiAgICAqIGBzaGFgOiBz\ndHJpbmcKKiBgZ2V0X2NvbW1pdHMoIFtzaGEsIHBhdGhdIClgOiBgUGFnaW5h\ndGVkTGlzdGAgb2YgYENvbW1pdGAKICAgICogYHNoYWA6IHN0cmluZwogICAg\nKiBgcGF0aGA6IHN0cmluZwoKQ29udGVudHMKLS0tLS0tLS0KKiBgZ2V0X3Jl\nYWRtZSgpYDogYENvbnRlbnRGaWxlYAoqIGBnZXRfY29udGVudHMoIHBhdGgg\nKWA6IGBDb250ZW50RmlsZWAKICAgICogYHBhdGhgOiBzdHJpbmcKKiBgZ2V0\nX2FyY2hpdmVfbGluayggYXJjaGl2ZV9mb3JtYXQsIFtyZWZdIClgOiBzdHJp\nbmcKICAgICogYGFyY2hpdmVfZm9ybWF0YDogc3RyaW5nCiAgICAqIGByZWZg\nOiBzdHJpbmcKCkNvbnRyaWJ1dG9ycwotLS0tLS0tLS0tLS0KKiBgZ2V0X2Nv\nbnRyaWJ1dG9ycygpYDogYFBhZ2luYXRlZExpc3RgIG9mIGBOYW1lZFVzZXJg\nCgpEZWxldGlvbgotLS0tLS0tLQoqIGBkZWxldGUoKWAKCkRvd25sb2Fkcwot\nLS0tLS0tLS0KKiBgY3JlYXRlX2Rvd25sb2FkKCBuYW1lLCBzaXplLCBbZGVz\nY3JpcHRpb24sIGNvbnRlbnRfdHlwZV0gKWA6IGBEb3dubG9hZGAKICAgICog\nYG5hbWVgOiBzdHJpbmcKICAgICogYHNpemVgOiBpbnRlZ2VyCiAgICAqIGBk\nZXNjcmlwdGlvbmA6IHN0cmluZwogICAgKiBgY29udGVudF90eXBlYDogc3Ry\naW5nCiogYGdldF9kb3dubG9hZCggaWQgKWA6IGBEb3dubG9hZGAKICAgICog\nYGlkYDogaW50ZWdlcgoqIGBnZXRfZG93bmxvYWRzKClgOiBgUGFnaW5hdGVk\nTGlzdGAgb2YgYERvd25sb2FkYAoKRXZlbnRzCi0tLS0tLQoqIGBnZXRfZXZl\nbnRzKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYEV2ZW50YAoqIGBnZXRfbmV0\nd29ya19ldmVudHMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgRXZlbnRgCgpG\nb3JrcwotLS0tLQoqIGBnZXRfZm9ya3MoKWA6IGBQYWdpbmF0ZWRMaXN0YCBv\nZiBgUmVwb3NpdG9yeWAKCkdpdF9ibG9icwotLS0tLS0tLS0KKiBgY3JlYXRl\nX2dpdF9ibG9iKCBjb250ZW50LCBlbmNvZGluZyApYDogYEdpdEJsb2JgCiAg\nICAqIGBjb250ZW50YDogc3RyaW5nCiAgICAqIGBlbmNvZGluZ2A6IHN0cmlu\nZwoqIGBnZXRfZ2l0X2Jsb2IoIHNoYSApYDogYEdpdEJsb2JgCiAgICAqIGBz\naGFgOiBzdHJpbmcKCkdpdF9jb21taXRzCi0tLS0tLS0tLS0tCiogYGNyZWF0\nZV9naXRfY29tbWl0KCBtZXNzYWdlLCB0cmVlLCBwYXJlbnRzLCBbYXV0aG9y\nLCBjb21taXR0ZXJdIClgOiBgR2l0Q29tbWl0YAogICAgKiBgbWVzc2FnZWA6\nIHN0cmluZwogICAgKiBgdHJlZWA6IGBHaXRUcmVlYAogICAgKiBgcGFyZW50\nc2A6IGxpc3Qgb2YgYEdpdENvbW1pdGAKICAgICogYGF1dGhvcmA6IGBJbnB1\ndEdpdEF1dGhvcmAKICAgICogYGNvbW1pdHRlcmA6IGBJbnB1dEdpdEF1dGhv\ncmAKKiBgZ2V0X2dpdF9jb21taXQoIHNoYSApYDogYEdpdENvbW1pdGAKICAg\nICogYHNoYWA6IHN0cmluZwoKR2l0X3JlZnMKLS0tLS0tLS0KKiBgY3JlYXRl\nX2dpdF9yZWYoIHJlZiwgc2hhIClgOiBgR2l0UmVmYAogICAgKiBgcmVmYDog\nc3RyaW5nCiAgICAqIGBzaGFgOiBzdHJpbmcKKiBgZ2V0X2dpdF9yZWYoIHJl\nZiApYDogYEdpdFJlZmAKICAgICogYHJlZmA6IHN0cmluZwoqIGBnZXRfZ2l0\nX3JlZnMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgR2l0UmVmYAoKR2l0X3Rh\nZ3MKLS0tLS0tLS0KKiBgY3JlYXRlX2dpdF90YWcoIHRhZywgbWVzc2FnZSwg\nb2JqZWN0LCB0eXBlLCBbdGFnZ2VyXSApYDogYEdpdFRhZ2AKICAgICogYHRh\nZ2A6IHN0cmluZwogICAgKiBgbWVzc2FnZWA6IHN0cmluZwogICAgKiBgb2Jq\nZWN0YDogc3RyaW5nCiAgICAqIGB0eXBlYDogc3RyaW5nCiAgICAqIGB0YWdn\nZXJgOiBgSW5wdXRHaXRBdXRob3JgCiogYGdldF9naXRfdGFnKCBzaGEgKWA6\nIGBHaXRUYWdgCiAgICAqIGBzaGFgOiBzdHJpbmcKCkdpdF90cmVlcwotLS0t\nLS0tLS0KKiBgY3JlYXRlX2dpdF90cmVlKCB0cmVlLCBbYmFzZV90cmVlXSAp\nYDogYEdpdFRyZWVgCiAgICAqIGB0cmVlYDogbGlzdCBvZiBgSW5wdXRHaXRU\ncmVlRWxlbWVudGAKICAgICogYGJhc2VfdHJlZWA6IGBHaXRUcmVlYAoqIGBn\nZXRfZ2l0X3RyZWUoIHNoYSwgW3JlY3Vyc2l2ZV0gKWA6IGBHaXRUcmVlYAog\nICAgKiBgc2hhYDogc3RyaW5nCiAgICAqIGByZWN1cnNpdmVgOiBib29sCgpI\nb29rcwotLS0tLQoqIGBjcmVhdGVfaG9vayggbmFtZSwgY29uZmlnLCBbZXZl\nbnRzLCBhY3RpdmVdIClgOiBgSG9va2AKICAgICogYG5hbWVgOiBzdHJpbmcK\nICAgICogYGNvbmZpZ2A6IGRpY3QKICAgICogYGV2ZW50c2A6IGxpc3Qgb2Yg\nc3RyaW5nCiAgICAqIGBhY3RpdmVgOiBib29sCiogYGdldF9ob29rKCBpZCAp\nYDogYEhvb2tgCiAgICAqIGBpZGA6IGludGVnZXIKKiBgZ2V0X2hvb2tzKClg\nOiBgUGFnaW5hdGVkTGlzdGAgb2YgYEhvb2tgCgpJc3N1ZXMKLS0tLS0tCiog\nYGNyZWF0ZV9pc3N1ZSggdGl0bGUsIFtib2R5LCBhc3NpZ25lZSwgbWlsZXN0\nb25lLCBsYWJlbHNdIClgOiBgSXNzdWVgCiAgICAqIGB0aXRsZWA6IHN0cmlu\nZwogICAgKiBgYm9keWA6IHN0cmluZwogICAgKiBgYXNzaWduZWVgOiBgTmFt\nZWRVc2VyYAogICAgKiBgbWlsZXN0b25lYDogYE1pbGVzdG9uZWAKICAgICog\nYGxhYmVsc2A6IGxpc3Qgb2YgYExhYmVsYAoqIGBnZXRfaXNzdWUoIG51bWJl\nciApYDogYElzc3VlYAogICAgKiBgbnVtYmVyYDogaW50ZWdlcgoqIGBnZXRf\naXNzdWVzKCBbbWlsZXN0b25lLCBzdGF0ZSwgYXNzaWduZWUsIG1lbnRpb25l\nZCwgbGFiZWxzLCBzb3J0LCBkaXJlY3Rpb24sIHNpbmNlXSApYDogYFBhZ2lu\nYXRlZExpc3RgIG9mIGBJc3N1ZWAKICAgICogYG1pbGVzdG9uZWA6IGBNaWxl\nc3RvbmVgIG9yICJub25lIiBvciAiKiIKICAgICogYHN0YXRlYDogc3RyaW5n\nCiAgICAqIGBhc3NpZ25lZWA6IGBOYW1lZFVzZXJgIG9yICJub25lIiBvciAi\nKiIKICAgICogYG1lbnRpb25lZGA6IGBOYW1lZFVzZXJgCiAgICAqIGBsYWJl\nbHNgOiBsaXN0IG9mIGBMYWJlbGAKICAgICogYHNvcnRgOiBzdHJpbmcKICAg\nICogYGRpcmVjdGlvbmA6IHN0cmluZwogICAgKiBgc2luY2VgOiBkYXRldGlt\nZS5kYXRldGltZQoqIGBsZWdhY3lfc2VhcmNoX2lzc3Vlcyggc3RhdGUsIGtl\neXdvcmQgKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgSXNzdWVgCiAgICAqIGBz\ndGF0ZWA6ICJvcGVuIiBvciAiY2xvc2VkIgogICAgKiBga2V5d29yZGA6IHN0\ncmluZwoKSXNzdWVzX2V2ZW50cwotLS0tLS0tLS0tLS0tCiogYGdldF9pc3N1\nZXNfZXZlbnQoIGlkIClgOiBgSXNzdWVFdmVudGAKICAgICogYGlkYDogaW50\nZWdlcgoqIGBnZXRfaXNzdWVzX2V2ZW50cygpYDogYFBhZ2luYXRlZExpc3Rg\nIG9mIGBJc3N1ZUV2ZW50YAoKS2V5cwotLS0tCiogYGNyZWF0ZV9rZXkoIHRp\ndGxlLCBrZXkgKWA6IGBSZXBvc2l0b3J5S2V5YAogICAgKiBgdGl0bGVgOiBz\ndHJpbmcKICAgICogYGtleWA6IHN0cmluZwoqIGBnZXRfa2V5KCBpZCApYDog\nYFJlcG9zaXRvcnlLZXlgCiAgICAqIGBpZGA6IGludGVnZXIKKiBgZ2V0X2tl\neXMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgUmVwb3NpdG9yeUtleWAKCkxh\nYmVscwotLS0tLS0KKiBgY3JlYXRlX2xhYmVsKCBuYW1lLCBjb2xvciApYDog\nYExhYmVsYAogICAgKiBgbmFtZWA6IHN0cmluZwogICAgKiBgY29sb3JgOiBz\ndHJpbmcKKiBgZ2V0X2xhYmVsKCBuYW1lIClgOiBgTGFiZWxgCiAgICAqIGBu\nYW1lYDogc3RyaW5nCiogYGdldF9sYWJlbHMoKWA6IGBQYWdpbmF0ZWRMaXN0\nYCBvZiBgTGFiZWxgCgpMYW5ndWFnZXMKLS0tLS0tLS0tCiogYGdldF9sYW5n\ndWFnZXMoKWA6IGRpY3Qgb2Ygc3RyaW5nIHRvIGludGVnZXIKCk1lcmdpbmcK\nLS0tLS0tLQoqIGBtZXJnZSggYmFzZSwgaGVhZCwgW2NvbW1pdF9tZXNzYWdl\nXSApYDogYENvbW1pdGAKICAgICogYGJhc2VgOiBzdHJpbmcKICAgICogYGhl\nYWRgOiBzdHJpbmcKICAgICogYGNvbW1pdF9tZXNzYWdlYDogc3RyaW5nCgpN\naWxlc3RvbmVzCi0tLS0tLS0tLS0KKiBgY3JlYXRlX21pbGVzdG9uZSggdGl0\nbGUsIFtzdGF0ZSwgZGVzY3JpcHRpb24sIGR1ZV9vbl0gKWA6IGBNaWxlc3Rv\nbmVgCiAgICAqIGB0aXRsZWA6IHN0cmluZwogICAgKiBgc3RhdGVgOiBzdHJp\nbmcKICAgICogYGRlc2NyaXB0aW9uYDogc3RyaW5nCiAgICAqIGBkdWVfb25g\nOiBkYXRlCiogYGdldF9taWxlc3RvbmUoIG51bWJlciApYDogYE1pbGVzdG9u\nZWAKICAgICogYG51bWJlcmA6IGludGVnZXIKKiBgZ2V0X21pbGVzdG9uZXMo\nIFtzdGF0ZSwgc29ydCwgZGlyZWN0aW9uXSApYDogYFBhZ2luYXRlZExpc3Rg\nIG9mIGBNaWxlc3RvbmVgCiAgICAqIGBzdGF0ZWA6IHN0cmluZwogICAgKiBg\nc29ydGA6IHN0cmluZwogICAgKiBgZGlyZWN0aW9uYDogc3RyaW5nCgpNb2Rp\nZmljYXRpb24KLS0tLS0tLS0tLS0tCiogYGVkaXQoIG5hbWUsIFtkZXNjcmlw\ndGlvbiwgaG9tZXBhZ2UsIHB1YmxpYywgaGFzX2lzc3VlcywgaGFzX3dpa2ks\nIGhhc19kb3dubG9hZHMsIGRlZmF1bHRfYnJhbmNoXSApYAogICAgKiBgbmFt\nZWA6IHN0cmluZwogICAgKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcKICAgICog\nYGhvbWVwYWdlYDogc3RyaW5nCiAgICAqIGBwdWJsaWNgOiBib29sCiAgICAq\nIGBoYXNfaXNzdWVzYDogYm9vbAogICAgKiBgaGFzX3dpa2lgOiBib29sCiAg\nICAqIGBoYXNfZG93bmxvYWRzYDogYm9vbAogICAgKiBgZGVmYXVsdF9icmFu\nY2hgOiBzdHJpbmcKClB1bGxzCi0tLS0tCiogYGNyZWF0ZV9wdWxsKCA8IHRp\ndGxlLCBib2R5LCBiYXNlLCBoZWFkID4gb3IgPCBpc3N1ZSwgYmFzZSwgaGVh\nZCA+IClgOiBgUHVsbFJlcXVlc3RgCiAgICAqIGB0aXRsZWA6IHN0cmluZwog\nICAgKiBgYm9keWA6IHN0cmluZwogICAgKiBgaXNzdWVgOiBgSXNzdWVgCiAg\nICAqIGBiYXNlYDogc3RyaW5nCiAgICAqIGBoZWFkYDogc3RyaW5nCiogYGdl\ndF9wdWxsKCBudW1iZXIgKWA6IGBQdWxsUmVxdWVzdGAKICAgICogYG51bWJl\ncmA6IGludGVnZXIKKiBgZ2V0X3B1bGxzKCBbc3RhdGVdIClgOiBgUGFnaW5h\ndGVkTGlzdGAgb2YgYFB1bGxSZXF1ZXN0YAogICAgKiBgc3RhdGVgOiBzdHJp\nbmcKClN0YXJnYXplcnMKLS0tLS0tLS0tLQoqIGBnZXRfc3RhcmdhemVycygp\nYDogYFBhZ2luYXRlZExpc3RgIG9mIGBOYW1lZFVzZXJgCgpTdWJzY3JpYmVy\ncwotLS0tLS0tLS0tLQoqIGBnZXRfc3Vic2NyaWJlcnMoKWA6IGBQYWdpbmF0\nZWRMaXN0YCBvZiBgTmFtZWRVc2VyYAoKVGFncwotLS0tCiogYGdldF90YWdz\nKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYFRhZ2AKClRlYW1zCi0tLS0tCiog\nYGdldF90ZWFtcygpYDogYFBhZ2luYXRlZExpc3RgIG9mIGBUZWFtYAoKV2F0\nY2hlcnMKLS0tLS0tLS0KKiBgZ2V0X3dhdGNoZXJzKClgOiBgUGFnaW5hdGVk\nTGlzdGAgb2YgYE5hbWVkVXNlcmAKCkNsYXNzIGBSZXBvc2l0b3J5S2V5YAo9\nPT09PT09PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoq\nIGBpZGA6IGludGVnZXIKKiBga2V5YDogc3RyaW5nCiogYHRpdGxlYDogc3Ry\naW5nCiogYHVybGA6IHN0cmluZwoqIGB2ZXJpZmllZGA6IGJvb2wKCkRlbGV0\naW9uCi0tLS0tLS0tCiogYGRlbGV0ZSgpYAoKTW9kaWZpY2F0aW9uCi0tLS0t\nLS0tLS0tLQoqIGBlZGl0KCBbdGl0bGUsIGtleV0gKWAKICAgICogYHRpdGxl\nYDogc3RyaW5nCiAgICAqIGBrZXlgOiBzdHJpbmcKCkNsYXNzIGBUYWdgCj09\nPT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgY29tbWl0YDog\nYENvbW1pdGAKKiBgbmFtZWA6IHN0cmluZwoqIGB0YXJiYWxsX3VybGA6IHN0\ncmluZwoqIGB6aXBiYWxsX3VybGA6IHN0cmluZwoKQ2xhc3MgYFRlYW1gCj09\nPT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGlkYDogaW50\nZWdlcgoqIGBtZW1iZXJzX2NvdW50YDogaW50ZWdlcgoqIGBuYW1lYDogc3Ry\naW5nCiogYHBlcm1pc3Npb25gOiBzdHJpbmcKKiBgcmVwb3NfY291bnRgOiBp\nbnRlZ2VyCiogYHVybGA6IHN0cmluZwoKRGVsZXRpb24KLS0tLS0tLS0KKiBg\nZGVsZXRlKClgCgpNZW1iZXJzCi0tLS0tLS0KKiBgYWRkX3RvX21lbWJlcnMo\nIG1lbWJlciApYAogICAgKiBgbWVtYmVyYDogYE5hbWVkVXNlcmAKKiBgZ2V0\nX21lbWJlcnMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgTmFtZWRVc2VyYAoq\nIGBoYXNfaW5fbWVtYmVycyggbWVtYmVyIClgOiBib29sCiAgICAqIGBtZW1i\nZXJgOiBgTmFtZWRVc2VyYAoqIGByZW1vdmVfZnJvbV9tZW1iZXJzKCBtZW1i\nZXIgKWAKICAgICogYG1lbWJlcmA6IGBOYW1lZFVzZXJgCgpNb2RpZmljYXRp\nb24KLS0tLS0tLS0tLS0tCiogYGVkaXQoIG5hbWUsIFtwZXJtaXNzaW9uXSAp\nYAogICAgKiBgbmFtZWA6IHN0cmluZwogICAgKiBgcGVybWlzc2lvbmA6IHN0\ncmluZwoKUmVwb3MKLS0tLS0KKiBgYWRkX3RvX3JlcG9zKCByZXBvIClgCiAg\nICAqIGByZXBvYDogYFJlcG9zaXRvcnlgCiogYGdldF9yZXBvcygpYDogYFBh\nZ2luYXRlZExpc3RgIG9mIGBSZXBvc2l0b3J5YAoqIGBoYXNfaW5fcmVwb3Mo\nIHJlcG8gKWA6IGJvb2wKICAgICogYHJlcG9gOiBgUmVwb3NpdG9yeWAKKiBg\ncmVtb3ZlX2Zyb21fcmVwb3MoIHJlcG8gKWAKICAgICogYHJlcG9gOiBgUmVw\nb3NpdG9yeWAKCkNsYXNzIGBVc2VyS2V5YAo9PT09PT09PT09PT09PT0KCkF0\ndHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBpZGA6IGludGVnZXIKKiBga2V5YDog\nc3RyaW5nCiogYHRpdGxlYDogc3RyaW5nCiogYHVybGA6IHN0cmluZwoqIGB2\nZXJpZmllZGA6IGJvb2wKCkRlbGV0aW9uCi0tLS0tLS0tCiogYGRlbGV0ZSgp\nYAoKTW9kaWZpY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBbdGl0bGUs\nIGtleV0gKWAKICAgICogYHRpdGxlYDogc3RyaW5nCiAgICAqIGBrZXlgOiBz\ndHJpbmcK\n","_links":{"git":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/07b170f1d3df085278aafbc49164178ba0df7d59","html":"https://github.com/jacquev6/PyGithub/blob/refs/heads/topic/ExperimentOnDocumentation/doc/ReferenceOfClasses.md","self":"https://api.github.com/repos/jacquev6/PyGithub/contents/doc/ReferenceOfClasses.md?ref=refs/heads/topic/ExperimentOnDocumentation"},"git_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/07b170f1d3df085278aafbc49164178ba0df7d59","sha":"07b170f1d3df085278aafbc49164178ba0df7d59","size":32406,"encoding":"base64","name":"ReferenceOfClasses.md"} +{"type":"file","path":"doc/ReferenceOfClasses.md","html_url":"https://github.com/PyGithub/PyGithub/blob/refs/heads/topic/ExperimentOnDocumentation/doc/ReferenceOfClasses.md","url":"https://api.github.com/repos/PyGithub/PyGithub/contents/doc/ReferenceOfClasses.md?ref=refs/heads/topic/ExperimentOnDocumentation","content":"WW91IGRvbid0IG5vcm1hbHkgY3JlYXRlIGluc3RhbmNlcyBvZiBhbnkgY2xh\nc3MgYnV0IGBHaXRodWJgLgpZb3Ugb2J0YWluIGluc3RhbmNlcyB0aHJvdWdo\nIGNhbGxzIHRvIGBzZWFyY2hfYCwgYGdldF9gIGFuZCBgY3JlYXRlX2AgbWV0\naG9kcy4KCkNsYXNzIGBHaXRodWJgCj09PT09PT09PT09PT09CgpDb25zdHJ1\nY3RlZCBmcm9tIHVzZXIncyBsb2dpbiBhbmQgcGFzc3dvcmQgb3IgT0F1dGgg\ndG9rZW4gb3Igbm90aGluZzoKCiAgICBnID0gR2l0aHViKCBsb2dpbiwgcGFz\nc3dvcmQgKQogICAgZyA9IEdpdGh1YiggdG9rZW4gKQogICAgZyA9IEdpdGh1\nYigpCgpZb3UgY2FuIGFsc28gdXNlIHlvdXIgY2xpZW50X2lkIGFuZCBjbGll\nbnRfc2VjcmV0OgogICAgZyA9IGdpdGh1Yi5HaXRodWIoY2xpZW50X2lkPSJZ\nb3VyQ2xpZW50SWQiLCBjbGllbnRfc2VjcmV0PSJZb3VyQ2xpZW50U2VjcmV0\nIikKCllvdSBjYW4gYWRkIGFuIGFyZ3VtZW50IGBiYXNlX3VybCA9ICJodHRw\nOi8vbXkuZW50ZXJwcmlzZS5jb206ODA4MC9wYXRoL3RvL2dpdGh1YiJgIHRv\nIGNvbm5lY3QgdG8gYSBsb2NhbCBpbnN0YWxsIG9mIEdpdGh1YiAoaWUuIEdp\ndGh1YiBFbnRlcnByaXNlKS4KWW91IGNhbiBhZGQgYW4gYXJndW1lbnQgYHVz\nZXJfYWdlbnRgIHRvIHNlbmQgYSBjdXN0b20gVXNlci1BZ2VudCBoZWFkZXIg\ndG8gR2l0aHViLgpBbm90aGVyIGFyZ3VtZW50LCB0aGF0IGNhbiBiZSBwYXNz\nZWQgaXMgYHRpbWVvdXRgIHdoaWNoIGhhcyBkZWZhdWx0IHZhbHVlIGAxMGAu\nCgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgcmF0ZV9saW1pdGluZ2A6IHR1\ncGxlIG9mIHR3byBpbnRlZ2VyczogcmVtYWluaW5nIGFuZCBsaW1pdCwgYXMg\nZXhwbGFpbmVkIGluIFtSYXRlIExpbWl0aW5nXShodHRwOi8vZGV2ZWxvcGVy\nLmdpdGh1Yi5jb20vdjMvI3JhdGUtbGltaXRpbmcpCgpNZXRob2RzCi0tLS0t\nLS0KKiBgZ2V0X3VzZXIoKWA6IGBBdXRoZW50aWNhdGVkVXNlcmAKKiBgZ2V0\nX3VzZXIoIGxvZ2luIClgOiBgTmFtZWRVc2VyYAogICAgKiBgbG9naW5gOiBz\ndHJpbmcKKiBgZ2V0X29yZ2FuaXphdGlvbiggbG9naW4gKWA6IGBPcmdhbml6\nYXRpb25gCiAgICAqIGBsb2dpbmA6IHN0cmluZwoqIGBnZXRfcmVwbyggZnVs\nbF9uYW1lIClgOiBgUmVwb3NpdG9yeWAKKiBgZ2V0X2dpc3QoIGlkIClgOiBg\nR2lzdGAKICAgICogYGlkYDogc3RyaW5nCiogYGdldF9naXN0cygpYDogYFBh\nZ2luYXRlZExpc3RgIG9mIGBHaXN0YAoqIGBnZXRfaG9va3MoKWA6IGBQYWdp\nbmF0ZWRMaXN0YCBvZiBgSG9va0Rlc2NyaXB0aW9uYAoqIGBsZWdhY3lfc2Vh\ncmNoX3JlcG9zKCBrZXl3b3JkLCBbbGFuZ3VhZ2VdIClgOiBgUGFnaW5hdGVk\nTGlzdGAgb2YgYFJlcG9zaXRvcnlgCiAgICAqIGBrZXl3b3JkYDogc3RyaW5n\nCiAgICAqIGBsYW5ndWFnZWA6IHN0cmluZwoqIGBsZWdhY3lfc2VhcmNoX3Vz\nZXJzKCBrZXl3b3JkIClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYE5hbWVkVXNl\ncmAKICAgICogYGtleXdvcmRgOiBzdHJpbmcKKiBgbGVnYWN5X3NlYXJjaF91\nc2VyX2J5X2VtYWlsKCBlbWFpbCApYDogYE5hbWVkVXNlcmAKICAgICogYGVt\nYWlsYDogc3RyaW5nCiogYHJlbmRlcl9tYXJrZG93biggdGV4dCwgW2NvbnRl\neHRdIClgOiBzdHJpbmcKICAgICogYHRleHRgOiBzdHJpbmcKICAgICogYGNv\nbnRleHRgOiBgUmVwb3NpdG9yeWAKKiBgZ2V0X2dpdGlnbm9yZV90ZW1wbGF0\nZXMoKWA6IGxpc3Qgb2Ygc3RyaW5nCiogYGdldF9naXRpZ25vcmVfdGVtcGxh\ndGUoIG5hbWUgKWA6IGBHaXRpZ25vcmVUZW1wbGF0ZWAKCkNsYXNzIGBQYWdp\nbmF0ZWRMaXN0YAo9PT09PT09PT09PT09PT09PT09PT0KClRoaXMgY2xhc3Mg\naW1wbGVtZW50cyBsYXp5IFtwYWdpbmF0aW9uIHJlcXVlc3RzXShodHRwOi8v\nZGV2ZWxvcGVyLmdpdGh1Yi5jb20vdjMvI3BhZ2luYXRpb24pIGFuZCBoaWRl\ncyBwYWdpbmF0aW9uIGZyb20geW91LiBJdCBpcyB0aGUgcmV0dXJuIHR5cGUg\nb2YgYGdldF9gIG1ldGhvZHMgdGhhdCByZXR1cm4gYSBjb2xsZWN0aW9uLgoK\nWW91IGNhbiBpdGVyYXRlIG9uIGl0IGluIGEgYGZvciBmIGluIHVzZXIuZ2V0\nX2ZvbGxvd2VycygpOmAgbG9vcCBvciB3aXRoIGFueSBbaXRlcnRvb2xzXSho\ndHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvaXRlcnRvb2xzLmh0bWwp\nIGZ1bmN0aW9ucy4KCllvdSBjYW5ub3Qga25vdyB0aGUgbnVtYmVyIG9mIG9i\namVjdHMgcmV0dXJuZWQgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlv\nbi4gSWYgdGhhdCdzICpyZWFsbHkqIHdoYXQgeW91IG5lZWQsIHlvdSBjYW50\nIHVzZSBgbGVuKCBsaXN0KCB1c2VyLmdldF9mb2xsb3dlcnMoKSApIClgLAp3\naGljaCBkb2VzIGFsbCB0aGUgcmVxdWVzdHMgbmVlZGVkIHRvIGVudW1lcmF0\nZSB0aGUgdXNlcidzIGZvbGxvd2Vycy4gTm90ZSB0aGF0IHRoZXJlIGlzIG9m\ndGVuIGFuIGF0dHJpYnV0ZSBnaXZpbmcgdGhpcyB2YWx1ZSAoaW4gdGhhdCBj\nYXNlIGB1c2VyLmZvbGxvd2Vyc2ApLgoKWW91IGNhbiBhbHNvIGNhbGwgYGdl\ndF9wYWdlKCBwYWdlIClgIHRvIGV4cGxpY2l0ZWx5IGdldCBhIHNwZWNpZmlj\nIHBhZ2UgaWYgeW91IGRvbid0IHdhbnQgdG8gaGlkZSBwYWdpbmF0aW9uLiBg\ncGFnZWAgc3RhcnRzIGF0IDAuCiogYGdldF9wYWdlKCBwYWdlIClgOiBsaXN0\nCiAgICAqIGBwYWdlYDogaW50ZWdlcgoKQ2xhc3MgYEdpdGh1YkV4Y2VwdGlv\nbmAKPT09PT09PT09PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0t\nLS0tLQoqIGBzdGF0dXNgOiBpbnRlZ2VyCiogYGRhdGFgOiBkaWN0CgpDbGFz\ncyBgQXV0aGVudGljYXRlZFVzZXJgCj09PT09PT09PT09PT09PT09PT09PT09\nPT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBhdmF0YXJfdXJsYDogc3Ry\naW5nCiogYGJpb2A6IHN0cmluZwoqIGBibG9nYDogc3RyaW5nCiogYGNvbGxh\nYm9yYXRvcnNgOiBpbnRlZ2VyCiogYGNvbXBhbnlgOiBzdHJpbmcKKiBgY3Jl\nYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGRpc2tfdXNhZ2VgOiBp\nbnRlZ2VyCiogYGVtYWlsYDogc3RyaW5nCiogYGZvbGxvd2Vyc2A6IGludGVn\nZXIKKiBgZm9sbG93aW5nYDogaW50ZWdlcgoqIGBncmF2YXRhcl9pZGA6IHN0\ncmluZwoqIGBoaXJlYWJsZWA6IGJvb2wKKiBgaHRtbF91cmxgOiBzdHJpbmcK\nKiBgaWRgOiBpbnRlZ2VyCiogYGxvY2F0aW9uYDogc3RyaW5nCiogYGxvZ2lu\nYDogc3RyaW5nCiogYG5hbWVgOiBzdHJpbmcKKiBgb3duZWRfcHJpdmF0ZV9y\nZXBvc2A6IGludGVnZXIKKiBgcGxhbmA6IGBQbGFuYAoqIGBwcml2YXRlX2dp\nc3RzYDogaW50ZWdlcgoqIGBwdWJsaWNfZ2lzdHNgOiBpbnRlZ2VyCiogYHB1\nYmxpY19yZXBvc2A6IGludGVnZXIKKiBgdG90YWxfcHJpdmF0ZV9yZXBvc2A6\nIGludGVnZXIKKiBgdHlwZWA6IHN0cmluZwoqIGB1cmxgOiBzdHJpbmcKCkF1\ndGhvcml6YXRpb25zCi0tLS0tLS0tLS0tLS0tCiogYGNyZWF0ZV9hdXRob3Jp\nemF0aW9uKCBbc2NvcGVzLCBub3RlLCBub3RlX3VybF0gKWA6IGBBdXRob3Jp\nemF0aW9uYAogICAgKiBgc2NvcGVzYDogbGlzdCBvZiBzdHJpbmcKICAgICog\nYG5vdGVgOiBzdHJpbmcKICAgICogYG5vdGVfdXJsYDogc3RyaW5nCiogYGdl\ndF9hdXRob3JpemF0aW9uKCBpZCApYDogYEF1dGhvcml6YXRpb25gCiAgICAq\nIGBpZGA6IGludGVnZXIKKiBgZ2V0X2F1dGhvcml6YXRpb25zKClgOiBgUGFn\naW5hdGVkTGlzdGAgb2YgYEF1dGhvcml6YXRpb25gCgpFbWFpbHMKLS0tLS0t\nCiogYGFkZF90b19lbWFpbHMoIGVtYWlsLCAuLi4gKWAKICAgICogYGVtYWls\nYDogc3RyaW5nCiogYGdldF9lbWFpbHMoKWA6IGxpc3Qgb2Ygc3RyaW5nCiog\nYHJlbW92ZV9mcm9tX2VtYWlscyggZW1haWwsIC4uLiApYAogICAgKiBgZW1h\naWxgOiBzdHJpbmcKCkV2ZW50cwotLS0tLS0KKiBgZ2V0X2V2ZW50cygpYDog\nYFBhZ2luYXRlZExpc3RgIG9mIGBFdmVudGAKKiBgZ2V0X29yZ2FuaXphdGlv\nbl9ldmVudHMoIG9yZyApYDogYFBhZ2luYXRlZExpc3RgIG9mIGBFdmVudGAK\nICAgICogYG9yZ2A6IGBPcmdhbml6YXRpb25gCgpGb2xsb3dlcnMKLS0tLS0t\nLS0tCiogYGdldF9mb2xsb3dlcnMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBg\nTmFtZWRVc2VyYAoKRm9sbG93aW5nCi0tLS0tLS0tLQoqIGBhZGRfdG9fZm9s\nbG93aW5nKCBmb2xsb3dpbmcgKWAKICAgICogYGZvbGxvd2luZ2A6IGBOYW1l\nZFVzZXJgCiogYGdldF9mb2xsb3dpbmcoKWA6IGBQYWdpbmF0ZWRMaXN0YCBv\nZiBgTmFtZWRVc2VyYAoqIGBoYXNfaW5fZm9sbG93aW5nKCBmb2xsb3dpbmcg\nKWA6IGJvb2wKICAgICogYGZvbGxvd2luZ2A6IGBOYW1lZFVzZXJgCiogYHJl\nbW92ZV9mcm9tX2ZvbGxvd2luZyggZm9sbG93aW5nIClgCiAgICAqIGBmb2xs\nb3dpbmdgOiBgTmFtZWRVc2VyYAoKRm9ya2luZwotLS0tLS0tCiogYGNyZWF0\nZV9mb3JrKCByZXBvIClgOiBgUmVwb3NpdG9yeWAKICAgICogYHJlcG9gOiBg\nUmVwb3NpdG9yeWAKCkdpc3RzCi0tLS0tCiogYGNyZWF0ZV9naXN0KCBwdWJs\naWMsIGZpbGVzLCBbZGVzY3JpcHRpb25dIClgOiBgR2lzdGAKICAgICogYHB1\nYmxpY2A6IGJvb2wKICAgICogYGZpbGVzYDogZGljdCBvZiBzdHJpbmcgdG8g\nYElucHV0RmlsZUNvbnRlbnRgCiAgICAqIGBkZXNjcmlwdGlvbmA6IHN0cmlu\nZwoqIGBnZXRfZ2lzdHMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgR2lzdGAK\nKiBgZ2V0X3N0YXJyZWRfZ2lzdHMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBg\nR2lzdGAKCklzc3VlcwotLS0tLS0KKiBgZ2V0X2lzc3VlcygpYDogYFBhZ2lu\nYXRlZExpc3RgIG9mIGBJc3N1ZWAKCktleXMKLS0tLQoqIGBjcmVhdGVfa2V5\nKCB0aXRsZSwga2V5IClgOiBgVXNlcktleWAKICAgICogYHRpdGxlYDogc3Ry\naW5nCiAgICAqIGBrZXlgOiBzdHJpbmcKKiBgZ2V0X2tleSggaWQgKWA6IGBV\nc2VyS2V5YAogICAgKiBgaWRgOiBpbnRlZ2VyCiogYGdldF9rZXlzKClgOiBg\nUGFnaW5hdGVkTGlzdGAgb2YgYFVzZXJLZXlgCgpNb2RpZmljYXRpb24KLS0t\nLS0tLS0tLS0tCiogYGVkaXQoIFtuYW1lLCBlbWFpbCwgYmxvZywgY29tcGFu\neSwgbG9jYXRpb24sIGhpcmVhYmxlLCBiaW9dIClgCiAgICAqIGBuYW1lYDog\nc3RyaW5nCiAgICAqIGBlbWFpbGA6IHN0cmluZwogICAgKiBgYmxvZ2A6IHN0\ncmluZwogICAgKiBgY29tcGFueWA6IHN0cmluZwogICAgKiBgbG9jYXRpb25g\nOiBzdHJpbmcKICAgICogYGhpcmVhYmxlYDogYm9vbAogICAgKiBgYmlvYDog\nc3RyaW5nCgpPcmdzCi0tLS0KKiBgZ2V0X29yZ3MoKWA6IGBQYWdpbmF0ZWRM\naXN0YCBvZiBgT3JnYW5pemF0aW9uYAoKUmVwb3MKLS0tLS0KKiBgY3JlYXRl\nX3JlcG8oIG5hbWUsIFtkZXNjcmlwdGlvbiwgaG9tZXBhZ2UsIHByaXZhdGUs\nIGhhc19pc3N1ZXMsIGhhc193aWtpLCBoYXNfZG93bmxvYWRzLCBhdXRvX2lu\naXQsIGdpdGlnbm9yZV90ZW1wbGF0ZV0gKWA6IGBSZXBvc2l0b3J5YAogICAg\nKiBgbmFtZWA6IHN0cmluZwogICAgKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcK\nICAgICogYGhvbWVwYWdlYDogc3RyaW5nCiAgICAqIGBwcml2YXRlYDogYm9v\nbAogICAgKiBgaGFzX2lzc3Vlc2A6IGJvb2wKICAgICogYGhhc193aWtpYDog\nYm9vbAogICAgKiBgaGFzX2Rvd25sb2Fkc2A6IGJvb2wKICAgICogYGF1dG9f\naW5pdGA6IGJvb2wKICAgICogYGdpdGlnbm9yZV90ZW1wbGF0ZWA6IHN0cmlu\nZwoqIGBnZXRfcmVwbyggbmFtZSApYDogYFJlcG9zaXRvcnlgCiAgICAqIGBu\nYW1lYDogc3RyaW5nCiogYGdldF9yZXBvcyggW3R5cGUsIHNvcnQsIGRpcmVj\ndGlvbl0gKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgUmVwb3NpdG9yeWAKICAg\nICogYHR5cGVgOiBzdHJpbmcKICAgICogYHNvcnRgOiBzdHJpbmcKICAgICog\nYGRpcmVjdGlvbmA6IHN0cmluZwoKU3RhcnJlZAotLS0tLS0tCiogYGFkZF90\nb19zdGFycmVkKCBzdGFycmVkIClgCiAgICAqIGBzdGFycmVkYDogYFJlcG9z\naXRvcnlgCiogYGdldF9zdGFycmVkKClgOiBgUGFnaW5hdGVkTGlzdGAgb2Yg\nYFJlcG9zaXRvcnlgCiogYGhhc19pbl9zdGFycmVkKCBzdGFycmVkIClgOiBi\nb29sCiAgICAqIGBzdGFycmVkYDogYFJlcG9zaXRvcnlgCiogYHJlbW92ZV9m\ncm9tX3N0YXJyZWQoIHN0YXJyZWQgKWAKICAgICogYHN0YXJyZWRgOiBgUmVw\nb3NpdG9yeWAKClN1YnNjcmlwdGlvbnMKLS0tLS0tLS0tLS0tLQoqIGBhZGRf\ndG9fc3Vic2NyaXB0aW9ucyggc3Vic2NyaXB0aW9uIClgCiAgICAqIGBzdWJz\nY3JpcHRpb25gOiBgUmVwb3NpdG9yeWAKKiBgZ2V0X3N1YnNjcmlwdGlvbnMo\nKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgUmVwb3NpdG9yeWAKKiBgaGFzX2lu\nX3N1YnNjcmlwdGlvbnMoIHN1YnNjcmlwdGlvbiApYDogYm9vbAogICAgKiBg\nc3Vic2NyaXB0aW9uYDogYFJlcG9zaXRvcnlgCiogYHJlbW92ZV9mcm9tX3N1\nYnNjcmlwdGlvbnMoIHN1YnNjcmlwdGlvbiApYAogICAgKiBgc3Vic2NyaXB0\naW9uYDogYFJlcG9zaXRvcnlgCgpXYXRjaGVkCi0tLS0tLS0KKiBgYWRkX3Rv\nX3dhdGNoZWQoIHdhdGNoZWQgKWAKICAgICogYHdhdGNoZWRgOiBgUmVwb3Np\ndG9yeWAKKiBgZ2V0X3dhdGNoZWQoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBg\nUmVwb3NpdG9yeWAKKiBgaGFzX2luX3dhdGNoZWQoIHdhdGNoZWQgKWA6IGJv\nb2wKICAgICogYHdhdGNoZWRgOiBgUmVwb3NpdG9yeWAKKiBgcmVtb3ZlX2Zy\nb21fd2F0Y2hlZCggd2F0Y2hlZCApYAogICAgKiBgd2F0Y2hlZGA6IGBSZXBv\nc2l0b3J5YAoKQ2xhc3MgYEF1dGhvcml6YXRpb25gCj09PT09PT09PT09PT09\nPT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGFwcGA6IGBBdXRo\nb3JpemF0aW9uQXBwbGljYXRpb25gCiogYGNyZWF0ZWRfYXRgOiBkYXRldGlt\nZS5kYXRldGltZQoqIGBpZGA6IGludGVnZXIKKiBgbm90ZWA6IHN0cmluZwoq\nIGBub3RlX3VybGA6IHN0cmluZwoqIGBzY29wZXNgOiBsaXN0IG9mIHN0cmlu\nZwoqIGB0b2tlbmA6IHN0cmluZwoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUu\nZGF0ZXRpbWUKKiBgdXJsYDogc3RyaW5nCgpEZWxldGlvbgotLS0tLS0tLQoq\nIGBkZWxldGUoKWAKCk1vZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0KKiBgZWRp\ndCggW3Njb3BlcywgYWRkX3Njb3BlcywgcmVtb3ZlX3Njb3Blcywgbm90ZSwg\nbm90ZV91cmxdIClgCiAgICAqIGBzY29wZXNgOiBsaXN0IG9mIHN0cmluZwog\nICAgKiBgYWRkX3Njb3Blc2A6IGxpc3Qgb2Ygc3RyaW5nCiAgICAqIGByZW1v\ndmVfc2NvcGVzYDogbGlzdCBvZiBzdHJpbmcKICAgICogYG5vdGVgOiBzdHJp\nbmcKICAgICogYG5vdGVfdXJsYDogc3RyaW5nCgpDbGFzcyBgQXV0aG9yaXph\ndGlvbkFwcGxpY2F0aW9uYAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09\nPT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYG5hbWVgOiBzdHJpbmcK\nKiBgdXJsYDogc3RyaW5nCgpDbGFzcyBgQnJhbmNoYAo9PT09PT09PT09PT09\nPQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNvbW1pdGA6IGBDb21taXRg\nCiogYG5hbWVgOiBzdHJpbmcKCkNsYXNzIGBDb21taXRgCj09PT09PT09PT09\nPT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgYXV0aG9yYDogYE5hbWVk\nVXNlcmAKKiBgY29tbWl0YDogYEdpdENvbW1pdGAKKiBgY29tbWl0dGVyYDog\nYE5hbWVkVXNlcmAKKiBgZmlsZXNgOiBsaXN0IG9mIGBGaWxlYAoqIGBwYXJl\nbnRzYDogbGlzdCBvZiBgQ29tbWl0YAoqIGBzaGFgOiBzdHJpbmcKKiBgc3Rh\ndHNgOiBgQ29tbWl0U3RhdHNgCiogYHVybGA6IHN0cmluZwoKQ29tbWVudHMK\nLS0tLS0tLS0KKiBgY3JlYXRlX2NvbW1lbnQoIGJvZHksIFtsaW5lLCBwYXRo\nLCBwb3NpdGlvbl0gKWA6IGBDb21taXRDb21tZW50YAogICAgKiBgYm9keWA6\nIHN0cmluZwogICAgKiBgbGluZWA6IGludGVnZXIKICAgICogYHBhdGhgOiBz\ndHJpbmcKICAgICogYHBvc2l0aW9uYDogaW50ZWdlcgoqIGBnZXRfY29tbWVu\ndHMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgQ29tbWl0Q29tbWVudGAKClN0\nYXR1c2VzCi0tLS0tLS0tCiogYGNyZWF0ZV9zdGF0dXMoIHN0YXRlLCBbdGFy\nZ2V0X3VybCwgZGVzY3JpcHRpb25dIClgOiBgQ29tbWl0U3RhdHVzYAogICAg\nKiBgc3RhdGVgOiBzdHJpbmcKICAgICogYHRhcmdldF91cmxgOiBzdHJpbmcK\nICAgICogYGRlc2NyaXB0aW9uYDogc3RyaW5nCiogYGdldF9zdGF0dXNlcygp\nYDogYFBhZ2luYXRlZExpc3RgIG9mIGBDb21taXRTdGF0dXNgCgpDbGFzcyBg\nQ29tbWl0Q29tbWVudGAKPT09PT09PT09PT09PT09PT09PT09CgpBdHRyaWJ1\ndGVzCi0tLS0tLS0tLS0KKiBgYm9keWA6IHN0cmluZwoqIGBjb21taXRfaWRg\nOiBzdHJpbmcKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiog\nYGh0bWxfdXJsYDogc3RyaW5nCiogYGlkYDogaW50ZWdlcgoqIGBsaW5lYDog\naW50ZWdlcgoqIGBwYXRoYDogc3RyaW5nCiogYHBvc2l0aW9uYDogaW50ZWdl\ncgoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgdXJsYDog\nc3RyaW5nCiogYHVzZXJgOiBgTmFtZWRVc2VyYAoKRGVsZXRpb24KLS0tLS0t\nLS0KKiBgZGVsZXRlKClgCgpNb2RpZmljYXRpb24KLS0tLS0tLS0tLS0tCiog\nYGVkaXQoIGJvZHkgKWAKICAgICogYGJvZHlgOiBzdHJpbmcKCkNsYXNzIGBD\nb21taXRTdGF0c2AKPT09PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwot\nLS0tLS0tLS0tCiogYGFkZGl0aW9uc2A6IGludGVnZXIKKiBgZGVsZXRpb25z\nYDogaW50ZWdlcgoqIGB0b3RhbGA6IGludGVnZXIKCkNsYXNzIGBDb21taXRT\ndGF0dXNgCj09PT09PT09PT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0t\nLS0tLS0KKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGNy\nZWF0b3JgOiBgTmFtZWRVc2VyYAoqIGBkZXNjcmlwdGlvbmA6IHN0cmluZwoq\nIGBpZGA6IGludGVnZXIKKiBgc3RhdGVgOiBzdHJpbmcKKiBgdGFyZ2V0X3Vy\nbGA6IHN0cmluZwoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUK\nCkNsYXNzIGBDb21wYXJpc29uYAo9PT09PT09PT09PT09PT09PT0KCkF0dHJp\nYnV0ZXMKLS0tLS0tLS0tLQoqIGBhaGVhZF9ieWA6IGludGVnZXIKKiBgYmFz\nZV9jb21taXRgOiBgQ29tbWl0YAoqIGBiZWhpbmRfYnlgOiBpbnRlZ2VyCiog\nYGNvbW1pdHNgOiBsaXN0IG9mIGBDb21taXRgCiogYGRpZmZfdXJsYDogc3Ry\naW5nCiogYGZpbGVzYDogbGlzdCBvZiBgRmlsZWAKKiBgaHRtbF91cmxgOiBz\ndHJpbmcKKiBgcGF0Y2hfdXJsYDogc3RyaW5nCiogYHBlcm1hbGlua191cmxg\nOiBzdHJpbmcKKiBgc3RhdHVzYDogc3RyaW5nCiogYHRvdGFsX2NvbW1pdHNg\nOiBpbnRlZ2VyCiogYHVybGA6IHN0cmluZwoKQ2xhc3MgYENvbnRlbnRGaWxl\nYAo9PT09PT09PT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0K\nKiBgY29udGVudGA6IHN0cmluZwoqIGBlbmNvZGluZ2A6IHN0cmluZwoqIGBu\nYW1lYDogc3RyaW5nCiogYHBhdGhgOiBzdHJpbmcKKiBgc2hhYDogc3RyaW5n\nCiogYHNpemVgOiBpbnRlZ2VyCiogYHR5cGVgOiBzdHJpbmcKCkNsYXNzIGBE\nb3dubG9hZGAKPT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0t\nLS0tCiogYGFjY2Vzc2tleWlkYDogc3RyaW5nCiogYGFjbGA6IHN0cmluZwoq\nIGBidWNrZXRgOiBzdHJpbmcKKiBgY29udGVudF90eXBlYDogc3RyaW5nCiog\nYGNyZWF0ZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBkZXNjcmlwdGlv\nbmA6IHN0cmluZwoqIGBkb3dubG9hZF9jb3VudGA6IGludGVnZXIKKiBgZXhw\naXJhdGlvbmRhdGVgOiBkYXRldGltZS5kYXRldGltZQoqIGBodG1sX3VybGA6\nIHN0cmluZwoqIGBpZGA6IGludGVnZXIKKiBgbWltZV90eXBlYDogc3RyaW5n\nCiogYG5hbWVgOiBzdHJpbmcKKiBgcGF0aGA6IHN0cmluZwoqIGBwb2xpY3lg\nOiBzdHJpbmcKKiBgcHJlZml4YDogc3RyaW5nCiogYHJlZGlyZWN0YDogYm9v\nbAoqIGBzM191cmxgOiBzdHJpbmcKKiBgc2lnbmF0dXJlYDogc3RyaW5nCiog\nYHNpemVgOiBpbnRlZ2VyCiogYHVybGA6IHN0cmluZwoKRGVsZXRpb24KLS0t\nLS0tLS0KKiBgZGVsZXRlKClgCgpDbGFzcyBgRXZlbnRgCj09PT09PT09PT09\nPT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBhY3RvcmA6IGBOYW1lZFVz\nZXJgCiogYGNyZWF0ZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBpZGA6\nIHN0cmluZwoqIGBvcmdgOiBgT3JnYW5pemF0aW9uYAoqIGBwYXlsb2FkYDog\nZGljdAoqIGBwdWJsaWNgOiBib29sCiogYHJlcG9gOiBgUmVwb3NpdG9yeWAK\nKiBgdHlwZWA6IHN0cmluZwoKQ2xhc3MgYEZpbGVgCj09PT09PT09PT09PQoK\nQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGFkZGl0aW9uc2A6IGludGVnZXIK\nKiBgYmxvYl91cmxgOiBzdHJpbmcKKiBgY2hhbmdlc2A6IGludGVnZXIKKiBg\nZGVsZXRpb25zYDogaW50ZWdlcgoqIGBmaWxlbmFtZWA6IHN0cmluZwoqIGBw\nYXRjaGA6IHN0cmluZwoqIGByYXdfdXJsYDogc3RyaW5nCiogYHNoYWA6IHN0\ncmluZwoqIGBzdGF0dXNgOiBzdHJpbmcKCkNsYXNzIGBHaXN0YAo9PT09PT09\nPT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBjb21tZW50c2A6IGlu\ndGVnZXIKKiBgY3JlYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGRl\nc2NyaXB0aW9uYDogc3RyaW5nCiogYGZpbGVzYDogZGljdCBvZiBzdHJpbmcg\ndG8gYEdpc3RGaWxlYAoqIGBmb3JrX29mYDogYEdpc3RgCiogYGZvcmtzYDog\nbGlzdCBvZiBgR2lzdGAKKiBgZ2l0X3B1bGxfdXJsYDogc3RyaW5nCiogYGdp\ndF9wdXNoX3VybGA6IHN0cmluZwoqIGBoaXN0b3J5YDogbGlzdCBvZiBgR2lz\ndEhpc3RvcnlTdGF0ZWAKKiBgaHRtbF91cmxgOiBzdHJpbmcKKiBgaWRgOiBz\ndHJpbmcKKiBgcHVibGljYDogYm9vbAoqIGB1cGRhdGVkX2F0YDogZGF0ZXRp\nbWUuZGF0ZXRpbWUKKiBgdXJsYDogc3RyaW5nCiogYHVzZXJgOiBgTmFtZWRV\nc2VyYAoKQ29tbWVudHMKLS0tLS0tLS0KKiBgY3JlYXRlX2NvbW1lbnQoIGJv\nZHkgKWA6IGBHaXN0Q29tbWVudGAKICAgICogYGJvZHlgOiBzdHJpbmcKKiBg\nZ2V0X2NvbW1lbnQoIGlkIClgOiBgR2lzdENvbW1lbnRgCiAgICAqIGBpZGA6\nIGludGVnZXIKKiBgZ2V0X2NvbW1lbnRzKClgOiBgUGFnaW5hdGVkTGlzdGAg\nb2YgYEdpc3RDb21tZW50YAoKRGVsZXRpb24KLS0tLS0tLS0KKiBgZGVsZXRl\nKClgCgpGb3JraW5nCi0tLS0tLS0KKiBgY3JlYXRlX2ZvcmsoKWA6IGBHaXN0\nYAoKTW9kaWZpY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBbZGVzY3Jp\ncHRpb24sIGZpbGVzXSApYAogICAgKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcK\nICAgICogYGZpbGVzYDogZGljdCBvZiBzdHJpbmcgdG8gYElucHV0RmlsZUNv\nbnRlbnRgCgpTdGFycmluZwotLS0tLS0tLQoqIGBpc19zdGFycmVkKClgOiBi\nb29sCiogYHJlc2V0X3N0YXJyZWQoKWAKKiBgc2V0X3N0YXJyZWQoKWAKCkNs\nYXNzIGBHaXN0Q29tbWVudGAKPT09PT09PT09PT09PT09PT09PQoKQXR0cmli\ndXRlcwotLS0tLS0tLS0tCiogYGJvZHlgOiBzdHJpbmcKKiBgY3JlYXRlZF9h\ndGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGlkYDogaW50ZWdlcgoqIGB1cGRh\ndGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgdXJsYDogc3RyaW5nCiog\nYHVzZXJgOiBgTmFtZWRVc2VyYAoKRGVsZXRpb24KLS0tLS0tLS0KKiBgZGVs\nZXRlKClgCgpNb2RpZmljYXRpb24KLS0tLS0tLS0tLS0tCiogYGVkaXQoIGJv\nZHkgKWAKICAgICogYGJvZHlgOiBzdHJpbmcKCkNsYXNzIGBHaXN0RmlsZWAK\nPT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNv\nbnRlbnRgOiBzdHJpbmcKKiBgZmlsZW5hbWVgOiBzdHJpbmcKKiBgbGFuZ3Vh\nZ2VgOiBzdHJpbmcKKiBgcmF3X3VybGA6IHN0cmluZwoqIGBzaXplYDogaW50\nZWdlcgoKQ2xhc3MgYEdpc3RIaXN0b3J5U3RhdGVgCj09PT09PT09PT09PT09\nPT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNoYW5nZV9z\ndGF0dXNgOiBgQ29tbWl0U3RhdHNgCiogYGNvbW1pdHRlZF9hdGA6IGRhdGV0\naW1lLmRhdGV0aW1lCiogYHVybGA6IHN0cmluZwoqIGB1c2VyYDogYE5hbWVk\nVXNlcmAKKiBgdmVyc2lvbmA6IHN0cmluZwoKQ2xhc3MgYEdpdEF1dGhvcmAK\nPT09PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBk\nYXRlYDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgZW1haWxgOiBzdHJpbmcKKiBg\nbmFtZWA6IHN0cmluZwoKQ2xhc3MgYEdpdEJsb2JgCj09PT09PT09PT09PT09\nPQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNvbnRlbnRgOiBzdHJpbmcK\nKiBgZW5jb2RpbmdgOiBzdHJpbmcKKiBgc2hhYDogc3RyaW5nCiogYHNpemVg\nOiBpbnRlZ2VyCiogYHVybGA6IHN0cmluZwoKQ2xhc3MgYEdpdENvbW1pdGAK\nPT09PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBh\ndXRob3JgOiBgR2l0QXV0aG9yYAoqIGBjb21taXR0ZXJgOiBgR2l0QXV0aG9y\nYAoqIGBtZXNzYWdlYDogc3RyaW5nCiogYHBhcmVudHNgOiBsaXN0IG9mIGBH\naXRDb21taXRgCiogYHNoYWA6IHN0cmluZwoqIGB0cmVlYDogYEdpdFRyZWVg\nCiogYHVybGA6IHN0cmluZwoKQ2xhc3MgYEdpdE9iamVjdGAKPT09PT09PT09\nPT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBzaGFgOiBzdHJp\nbmcKKiBgdHlwZWA6IHN0cmluZwoqIGB1cmxgOiBzdHJpbmcKCkNsYXNzIGBH\naXRpZ25vcmVUZW1wbGF0ZWAKPT09PT09PT09PT09PT09PT09PT09PT09PQoK\nQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYG5hbWVgOiBzdHJpbmcKKiBgc291\ncmNlYDogc3RyaW5nCgpDbGFzcyBgR2l0UmVmYAo9PT09PT09PT09PT09PQoK\nQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYG9iamVjdGA6IGBHaXRPYmplY3Rg\nCiogYHJlZmA6IHN0cmluZwoqIGB1cmxgOiBzdHJpbmcKCkRlbGV0aW9uCi0t\nLS0tLS0tCiogYGRlbGV0ZSgpYAoKTW9kaWZpY2F0aW9uCi0tLS0tLS0tLS0t\nLQoqIGBlZGl0KCBzaGEsIFtmb3JjZV0gKWAKICAgICogYHNoYWA6IHN0cmlu\nZwogICAgKiBgZm9yY2VgOiBib29sCgpDbGFzcyBgR2l0VGFnYAo9PT09PT09\nPT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYG1lc3NhZ2VgOiBz\ndHJpbmcKKiBgb2JqZWN0YDogYEdpdE9iamVjdGAKKiBgc2hhYDogc3RyaW5n\nCiogYHRhZ2A6IHN0cmluZwoqIGB0YWdnZXJgOiBgR2l0QXV0aG9yYAoqIGB1\ncmxgOiBzdHJpbmcKCkNsYXNzIGBHaXRUcmVlYAo9PT09PT09PT09PT09PT0K\nCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBzaGFgOiBzdHJpbmcKKiBgdHJl\nZWA6IGxpc3Qgb2YgYEdpdFRyZWVFbGVtZW50YAoqIGB1cmxgOiBzdHJpbmcK\nCkNsYXNzIGBHaXRUcmVlRWxlbWVudGAKPT09PT09PT09PT09PT09PT09PT09\nPQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYG1vZGVgOiBzdHJpbmcKKiBg\ncGF0aGA6IHN0cmluZwoqIGBzaGFgOiBzdHJpbmcKKiBgc2l6ZWA6IGludGVn\nZXIKKiBgdHlwZWA6IHN0cmluZwoqIGB1cmxgOiBzdHJpbmcKCkNsYXNzIGBI\nb29rYAo9PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBh\nY3RpdmVgOiBib29sCiogYGNvbmZpZ2A6IGRpY3QKKiBgY3JlYXRlZF9hdGA6\nIGRhdGV0aW1lLmRhdGV0aW1lCiogYGV2ZW50c2A6IGxpc3Qgb2Ygc3RyaW5n\nCiogYGlkYDogaW50ZWdlcgoqIGBsYXN0X3Jlc3BvbnNlYDogYEhvb2tSZXNw\nb25zZWAKKiBgbmFtZWA6IHN0cmluZwoqIGB1cGRhdGVkX2F0YDogZGF0ZXRp\nbWUuZGF0ZXRpbWUKKiBgdXJsYDogc3RyaW5nCgpEZWxldGlvbgotLS0tLS0t\nLQoqIGBkZWxldGUoKWAKCk1vZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0KKiBg\nZWRpdCggbmFtZSwgY29uZmlnLCBbZXZlbnRzLCBhZGRfZXZlbnRzLCByZW1v\ndmVfZXZlbnRzLCBhY3RpdmVdIClgCiAgICAqIGBuYW1lYDogc3RyaW5nCiAg\nICAqIGBjb25maWdgOiBkaWN0CiAgICAqIGBldmVudHNgOiBsaXN0IG9mIHN0\ncmluZwogICAgKiBgYWRkX2V2ZW50c2A6IGxpc3Qgb2Ygc3RyaW5nCiAgICAq\nIGByZW1vdmVfZXZlbnRzYDogbGlzdCBvZiBzdHJpbmcKICAgICogYGFjdGl2\nZWA6IGJvb2wKClRlc3RpbmcKLS0tLS0tLQoqIGB0ZXN0KClgCgpDbGFzcyBg\nSG9va0Rlc2NyaXB0aW9uYAo9PT09PT09PT09PT09PT09PT09PT09PQoKQXR0\ncmlidXRlcwotLS0tLS0tLS0tCiogYGV2ZW50c2A6IGxpc3Qgb2Ygc3RyaW5n\nCiogYG5hbWVgOiBzdHJpbmcKKiBgc2NoZW1hYDogbGlzdCBvZiBsaXN0IG9m\nIHN0cmluZwoqIGBzdXBwb3J0ZWRfZXZlbnRzYDogbGlzdCBvZiBzdHJpbmcK\nCkNsYXNzIGBIb29rUmVzcG9uc2VgCj09PT09PT09PT09PT09PT09PT09CgpB\ndHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgY29kZWA6IGludGVnZXIKKiBgbWVz\nc2FnZWA6IHN0cmluZwoqIGBzdGF0dXNgOiBzdHJpbmcKCkNsYXNzIGBJc3N1\nZWAKPT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGFz\nc2lnbmVlYDogYE5hbWVkVXNlcmAKKiBgYm9keWA6IHN0cmluZwoqIGBjbG9z\nZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBjbG9zZWRfYnlgOiBgTmFt\nZWRVc2VyYAoqIGBjb21tZW50c2A6IGludGVnZXIKKiBgY3JlYXRlZF9hdGA6\nIGRhdGV0aW1lLmRhdGV0aW1lCiogYGh0bWxfdXJsYDogc3RyaW5nCiogYGlk\nYDogaW50ZWdlcgoqIGBsYWJlbHNgOiBsaXN0IG9mIGBMYWJlbGAKKiBgbWls\nZXN0b25lYDogYE1pbGVzdG9uZWAKKiBgbnVtYmVyYDogaW50ZWdlcgoqIGBw\ndWxsX3JlcXVlc3RgOiBgSXNzdWVQdWxsUmVxdWVzdGAKKiBgcmVwb3NpdG9y\neWA6IGBSZXBvc2l0b3J5YAoqIGBzdGF0ZWA6IHN0cmluZwoqIGB0aXRsZWA6\nIHN0cmluZwoqIGB1cGRhdGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBg\ndXJsYDogc3RyaW5nCiogYHVzZXJgOiBgTmFtZWRVc2VyYAoKQ29tbWVudHMK\nLS0tLS0tLS0KKiBgY3JlYXRlX2NvbW1lbnQoIGJvZHkgKWA6IGBJc3N1ZUNv\nbW1lbnRgCiAgICAqIGBib2R5YDogc3RyaW5nCiogYGdldF9jb21tZW50KCBp\nZCApYDogYElzc3VlQ29tbWVudGAKICAgICogYGlkYDogaW50ZWdlcgoqIGBn\nZXRfY29tbWVudHMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgSXNzdWVDb21t\nZW50YAoKRXZlbnRzCi0tLS0tLQoqIGBnZXRfZXZlbnRzKClgOiBgUGFnaW5h\ndGVkTGlzdGAgb2YgYElzc3VlRXZlbnRgCgpMYWJlbHMKLS0tLS0tCiogYGFk\nZF90b19sYWJlbHMoIGxhYmVsLCAuLi4gKWAKICAgICogYGxhYmVsYDogYExh\nYmVsYAoqIGBkZWxldGVfbGFiZWxzKClgCiogYGdldF9sYWJlbHMoKWA6IGBQ\nYWdpbmF0ZWRMaXN0YCBvZiBgTGFiZWxgCiogYHJlbW92ZV9mcm9tX2xhYmVs\ncyggbGFiZWwgKWAKICAgICogYGxhYmVsYDogYExhYmVsYAoqIGBzZXRfbGFi\nZWxzKCBsYWJlbCwgLi4uIClgCiAgICAqIGBsYWJlbGA6IGBMYWJlbGAKCk1v\nZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0KKiBgZWRpdCggW3RpdGxlLCBib2R5\nLCBhc3NpZ25lZSwgc3RhdGUsIG1pbGVzdG9uZSwgbGFiZWxzXSApYAogICAg\nKiBgdGl0bGVgOiBzdHJpbmcKICAgICogYGJvZHlgOiBzdHJpbmcKICAgICog\nYGFzc2lnbmVlYDogYE5hbWVkVXNlcmAgb3IgTm9uZQogICAgKiBgc3RhdGVg\nOiBzdHJpbmcKICAgICogYG1pbGVzdG9uZWA6IGBNaWxlc3RvbmVgIG9yIE5v\nbmUKICAgICogYGxhYmVsc2A6IGxpc3Qgb2Ygc3RyaW5nCgpDbGFzcyBgSXNz\ndWVDb21tZW50YAo9PT09PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwot\nLS0tLS0tLS0tCiogYGJvZHlgOiBzdHJpbmcKKiBgY3JlYXRlZF9hdGA6IGRh\ndGV0aW1lLmRhdGV0aW1lCiogYGlkYDogaW50ZWdlcgoqIGB1cGRhdGVkX2F0\nYDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgdXJsYDogc3RyaW5nCiogYHVzZXJg\nOiBgTmFtZWRVc2VyYAoKRGVsZXRpb24KLS0tLS0tLS0KKiBgZGVsZXRlKClg\nCgpNb2RpZmljYXRpb24KLS0tLS0tLS0tLS0tCiogYGVkaXQoIGJvZHkgKWAK\nICAgICogYGJvZHlgOiBzdHJpbmcKCkNsYXNzIGBJc3N1ZUV2ZW50YAo9PT09\nPT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBhY3Rv\ncmA6IGBOYW1lZFVzZXJgCiogYGNvbW1pdF9pZGA6IHN0cmluZwoqIGBjcmVh\ndGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgZXZlbnRgOiBzdHJpbmcK\nKiBgaWRgOiBpbnRlZ2VyCiogYGlzc3VlYDogYElzc3VlYAoqIGB1cmxgOiBz\ndHJpbmcKCkNsYXNzIGBJc3N1ZVB1bGxSZXF1ZXN0YAo9PT09PT09PT09PT09\nPT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBkaWZmX3Vy\nbGA6IHN0cmluZwoqIGBodG1sX3VybGA6IHN0cmluZwoqIGBwYXRjaF91cmxg\nOiBzdHJpbmcKCkNsYXNzIGBMYWJlbGAKPT09PT09PT09PT09PQoKQXR0cmli\ndXRlcwotLS0tLS0tLS0tCiogYGNvbG9yYDogc3RyaW5nCiogYG5hbWVgOiBz\ndHJpbmcKKiBgdXJsYDogc3RyaW5nCgpEZWxldGlvbgotLS0tLS0tLQoqIGBk\nZWxldGUoKWAKCk1vZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0KKiBgZWRpdCgg\nbmFtZSwgY29sb3IgKWAKICAgICogYG5hbWVgOiBzdHJpbmcKICAgICogYGNv\nbG9yYDogc3RyaW5nCgpDbGFzcyBgTWlsZXN0b25lYAo9PT09PT09PT09PT09\nPT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGNsb3NlZF9pc3N1ZXNg\nOiBpbnRlZ2VyCiogYGNyZWF0ZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoq\nIGBjcmVhdG9yYDogYE5hbWVkVXNlcmAKKiBgZGVzY3JpcHRpb25gOiBzdHJp\nbmcKKiBgZHVlX29uYDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgaWRgOiBpbnRl\nZ2VyCiogYG51bWJlcmA6IGludGVnZXIKKiBgb3Blbl9pc3N1ZXNgOiBpbnRl\nZ2VyCiogYHN0YXRlYDogc3RyaW5nCiogYHRpdGxlYDogc3RyaW5nCiogYHVy\nbGA6IHN0cmluZwoKRGVsZXRpb24KLS0tLS0tLS0KKiBgZGVsZXRlKClgCgpM\nYWJlbHMKLS0tLS0tCiogYGdldF9sYWJlbHMoKWA6IGBQYWdpbmF0ZWRMaXN0\nYCBvZiBgTGFiZWxgCgpNb2RpZmljYXRpb24KLS0tLS0tLS0tLS0tCiogYGVk\naXQoIHRpdGxlLCBbc3RhdGUsIGRlc2NyaXB0aW9uLCBkdWVfb25dIClgCiAg\nICAqIGB0aXRsZWA6IHN0cmluZwogICAgKiBgc3RhdGVgOiBzdHJpbmcKICAg\nICogYGRlc2NyaXB0aW9uYDogc3RyaW5nCiAgICAqIGBkdWVfb25gOiBkYXRl\nCgpDbGFzcyBgTmFtZWRVc2VyYAo9PT09PT09PT09PT09PT09PQoKQXR0cmli\ndXRlcwotLS0tLS0tLS0tCiogYGF2YXRhcl91cmxgOiBzdHJpbmcKKiBgYmlv\nYDogc3RyaW5nCiogYGJsb2dgOiBzdHJpbmcKKiBgY29sbGFib3JhdG9yc2A6\nIGludGVnZXIKKiBgY29tcGFueWA6IHN0cmluZwoqIGBjb250cmlidXRpb25z\nYDogaW50ZWdlcgoqIGBjcmVhdGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUK\nKiBgZGlza191c2FnZWA6IGludGVnZXIKKiBgZW1haWxgOiBzdHJpbmcKKiBg\nZm9sbG93ZXJzYDogaW50ZWdlcgoqIGBmb2xsb3dpbmdgOiBpbnRlZ2VyCiog\nYGdyYXZhdGFyX2lkYDogc3RyaW5nCiogYGhpcmVhYmxlYDogYm9vbAoqIGBo\ndG1sX3VybGA6IHN0cmluZwoqIGBpZGA6IGludGVnZXIKKiBgbG9jYXRpb25g\nOiBzdHJpbmcKKiBgbG9naW5gOiBzdHJpbmcKKiBgbmFtZWA6IHN0cmluZwoq\nIGBvd25lZF9wcml2YXRlX3JlcG9zYDogaW50ZWdlcgoqIGBwbGFuYDogYFBs\nYW5gCiogYHByaXZhdGVfZ2lzdHNgOiBpbnRlZ2VyCiogYHB1YmxpY19naXN0\nc2A6IGludGVnZXIKKiBgcHVibGljX3JlcG9zYDogaW50ZWdlcgoqIGB0b3Rh\nbF9wcml2YXRlX3JlcG9zYDogaW50ZWdlcgoqIGB0eXBlYDogc3RyaW5nCiog\nYHVybGA6IHN0cmluZwoKRXZlbnRzCi0tLS0tLQoqIGBnZXRfZXZlbnRzKClg\nOiBgUGFnaW5hdGVkTGlzdGAgb2YgYEV2ZW50YAoqIGBnZXRfcHVibGljX2V2\nZW50cygpYDogYFBhZ2luYXRlZExpc3RgIG9mIGBFdmVudGAKKiBgZ2V0X3Jl\nY2VpdmVkX2V2ZW50cygpYDogYFBhZ2luYXRlZExpc3RgIG9mIGBFdmVudGAK\nKiBgZ2V0X3B1YmxpY19yZWNlaXZlZF9ldmVudHMoKWA6IGBQYWdpbmF0ZWRM\naXN0YCBvZiBgRXZlbnRgCgpGb2xsb3dlcnMKLS0tLS0tLS0tCiogYGdldF9m\nb2xsb3dlcnMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgTmFtZWRVc2VyYAoK\nRm9sbG93aW5nCi0tLS0tLS0tLQoqIGBnZXRfZm9sbG93aW5nKClgOiBgUGFn\naW5hdGVkTGlzdGAgb2YgYE5hbWVkVXNlcmAKCkdpc3RzCi0tLS0tCiogYGNy\nZWF0ZV9naXN0KCBwdWJsaWMsIGZpbGVzLCBbZGVzY3JpcHRpb25dIClgOiBg\nR2lzdGAKICAgICogYHB1YmxpY2A6IGJvb2wKICAgICogYGZpbGVzYDogZGlj\ndCBvZiBzdHJpbmcgdG8gYElucHV0RmlsZUNvbnRlbnRgCiAgICAqIGBkZXNj\ncmlwdGlvbmA6IHN0cmluZwoqIGBnZXRfZ2lzdHMoKWA6IGBQYWdpbmF0ZWRM\naXN0YCBvZiBgR2lzdGAKCk9yZ3MKLS0tLQoqIGBnZXRfb3JncygpYDogYFBh\nZ2luYXRlZExpc3RgIG9mIGBPcmdhbml6YXRpb25gCgpSZXBvcwotLS0tLQoq\nIGBnZXRfcmVwbyggbmFtZSApYDogYFJlcG9zaXRvcnlgCiAgICAqIGBuYW1l\nYDogc3RyaW5nCiogYGdldF9yZXBvcyggW3R5cGVdIClgOiBgUGFnaW5hdGVk\nTGlzdGAgb2YgYFJlcG9zaXRvcnlgCiAgICAqIGB0eXBlYDogc3RyaW5nCgpT\ndGFycmVkCi0tLS0tLS0KKiBgZ2V0X3N0YXJyZWQoKWA6IGBQYWdpbmF0ZWRM\naXN0YCBvZiBgUmVwb3NpdG9yeWAKClN1YnNjcmlwdGlvbnMKLS0tLS0tLS0t\nLS0tLQoqIGBnZXRfc3Vic2NyaXB0aW9ucygpYDogYFBhZ2luYXRlZExpc3Rg\nIG9mIGBSZXBvc2l0b3J5YAoKV2F0Y2hlZAotLS0tLS0tCiogYGdldF93YXRj\naGVkKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYFJlcG9zaXRvcnlgCgpDbGFz\ncyBgT3JnYW5pemF0aW9uYAo9PT09PT09PT09PT09PT09PT09PQoKQXR0cmli\ndXRlcwotLS0tLS0tLS0tCiogYGF2YXRhcl91cmxgOiBzdHJpbmcKKiBgYmls\nbGluZ19lbWFpbGA6IHN0cmluZwoqIGBibG9nYDogc3RyaW5nCiogYGNvbGxh\nYm9yYXRvcnNgOiBpbnRlZ2VyCiogYGNvbXBhbnlgOiBzdHJpbmcKKiBgY3Jl\nYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGRpc2tfdXNhZ2VgOiBp\nbnRlZ2VyCiogYGVtYWlsYDogc3RyaW5nCiogYGZvbGxvd2Vyc2A6IGludGVn\nZXIKKiBgZm9sbG93aW5nYDogaW50ZWdlcgoqIGBncmF2YXRhcl9pZGA6IHN0\ncmluZwoqIGBodG1sX3VybGA6IHN0cmluZwoqIGBpZGA6IGludGVnZXIKKiBg\nbG9jYXRpb25gOiBzdHJpbmcKKiBgbG9naW5gOiBzdHJpbmcKKiBgbmFtZWA6\nIHN0cmluZwoqIGBvd25lZF9wcml2YXRlX3JlcG9zYDogaW50ZWdlcgoqIGBw\nbGFuYDogYFBsYW5gCiogYHByaXZhdGVfZ2lzdHNgOiBpbnRlZ2VyCiogYHB1\nYmxpY19naXN0c2A6IGludGVnZXIKKiBgcHVibGljX3JlcG9zYDogaW50ZWdl\ncgoqIGB0b3RhbF9wcml2YXRlX3JlcG9zYDogaW50ZWdlcgoqIGB0eXBlYDog\nc3RyaW5nCiogYHVybGA6IHN0cmluZwoKRXZlbnRzCi0tLS0tLQoqIGBnZXRf\nZXZlbnRzKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYEV2ZW50YAoKRm9ya2lu\nZwotLS0tLS0tCiogYGNyZWF0ZV9mb3JrKCByZXBvIClgOiBgUmVwb3NpdG9y\neWAKICAgICogYHJlcG9gOiBgUmVwb3NpdG9yeWAKCk1lbWJlcnMKLS0tLS0t\nLQoqIGBnZXRfbWVtYmVycygpYDogYFBhZ2luYXRlZExpc3RgIG9mIGBOYW1l\nZFVzZXJgCiogYGhhc19pbl9tZW1iZXJzKCBtZW1iZXIgKWA6IGJvb2wKICAg\nICogYG1lbWJlcmA6IGBOYW1lZFVzZXJgCiogYHJlbW92ZV9mcm9tX21lbWJl\ncnMoIG1lbWJlciApYAogICAgKiBgbWVtYmVyYDogYE5hbWVkVXNlcmAKCk1v\nZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0KKiBgZWRpdCggW2JpbGxpbmdfZW1h\naWwsIGJsb2csIGNvbXBhbnksIGVtYWlsLCBsb2NhdGlvbiwgbmFtZV0gKWAK\nICAgICogYGJpbGxpbmdfZW1haWxgOiBzdHJpbmcKICAgICogYGJsb2dgOiBz\ndHJpbmcKICAgICogYGNvbXBhbnlgOiBzdHJpbmcKICAgICogYGVtYWlsYDog\nc3RyaW5nCiAgICAqIGBsb2NhdGlvbmA6IHN0cmluZwogICAgKiBgbmFtZWA6\nIHN0cmluZwoKUHVibGljX21lbWJlcnMKLS0tLS0tLS0tLS0tLS0KKiBgYWRk\nX3RvX3B1YmxpY19tZW1iZXJzKCBwdWJsaWNfbWVtYmVyIClgCiAgICAqIGBw\ndWJsaWNfbWVtYmVyYDogYE5hbWVkVXNlcmAKKiBgZ2V0X3B1YmxpY19tZW1i\nZXJzKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYE5hbWVkVXNlcmAKKiBgaGFz\nX2luX3B1YmxpY19tZW1iZXJzKCBwdWJsaWNfbWVtYmVyIClgOiBib29sCiAg\nICAqIGBwdWJsaWNfbWVtYmVyYDogYE5hbWVkVXNlcmAKKiBgcmVtb3ZlX2Zy\nb21fcHVibGljX21lbWJlcnMoIHB1YmxpY19tZW1iZXIgKWAKICAgICogYHB1\nYmxpY19tZW1iZXJgOiBgTmFtZWRVc2VyYAoKUmVwb3MKLS0tLS0KKiBgY3Jl\nYXRlX3JlcG8oIG5hbWUsIFtkZXNjcmlwdGlvbiwgaG9tZXBhZ2UsIHByaXZh\ndGUsIGhhc19pc3N1ZXMsIGhhc193aWtpLCBoYXNfZG93bmxvYWRzLCB0ZWFt\nX2lkLCBhdXRvX2luaXQsIGdpdGlnbm9yZV90ZW1wbGF0ZV0gKWA6IGBSZXBv\nc2l0b3J5YAogICAgKiBgbmFtZWA6IHN0cmluZwogICAgKiBgZGVzY3JpcHRp\nb25gOiBzdHJpbmcKICAgICogYGhvbWVwYWdlYDogc3RyaW5nCiAgICAqIGBw\ncml2YXRlYDogYm9vbAogICAgKiBgaGFzX2lzc3Vlc2A6IGJvb2wKICAgICog\nYGhhc193aWtpYDogYm9vbAogICAgKiBgaGFzX2Rvd25sb2Fkc2A6IGJvb2wK\nICAgICogYHRlYW1faWRgOiBgVGVhbWAKICAgICogYGF1dG9faW5pdGA6IGJv\nb2wKICAgICogYGdpdGlnbm9yZV90ZW1wbGF0ZWA6IHN0cmluZwoqIGBnZXRf\ncmVwbyggbmFtZSApYDogYFJlcG9zaXRvcnlgCiAgICAqIGBuYW1lYDogc3Ry\naW5nCiogYGdldF9yZXBvcyggW3R5cGVdIClgOiBgUGFnaW5hdGVkTGlzdGAg\nb2YgYFJlcG9zaXRvcnlgCiAgICAqIGB0eXBlYDogc3RyaW5nCgpUZWFtcwot\nLS0tLQoqIGBjcmVhdGVfdGVhbSggbmFtZSwgW3JlcG9fbmFtZXMsIHBlcm1p\nc3Npb25dIClgOiBgVGVhbWAKICAgICogYG5hbWVgOiBzdHJpbmcKICAgICog\nYHJlcG9fbmFtZXNgOiBsaXN0IG9mIGBSZXBvc2l0b3J5YAogICAgKiBgcGVy\nbWlzc2lvbmA6IHN0cmluZwoqIGBnZXRfdGVhbSggaWQgKWA6IGBUZWFtYAog\nICAgKiBgaWRgOiBpbnRlZ2VyCiogYGdldF90ZWFtcygpYDogYFBhZ2luYXRl\nZExpc3RgIG9mIGBUZWFtYAoKQ2xhc3MgYFBlcm1pc3Npb25zYAo9PT09PT09\nPT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgYWRtaW5g\nOiBib29sCiogYHB1bGxgOiBib29sCiogYHB1c2hgOiBib29sCgpDbGFzcyBg\nUGxhbmAKPT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBg\nY29sbGFib3JhdG9yc2A6IGludGVnZXIKKiBgbmFtZWA6IHN0cmluZwoqIGBw\ncml2YXRlX3JlcG9zYDogaW50ZWdlcgoqIGBzcGFjZWA6IGludGVnZXIKCkNs\nYXNzIGBQdWxsUmVxdWVzdGAKPT09PT09PT09PT09PT09PT09PQoKQXR0cmli\ndXRlcwotLS0tLS0tLS0tCiogYGFkZGl0aW9uc2A6IGludGVnZXIKKiBgYXNz\naWduZWVgOiBgTmFtZWRVc2VyYAoqIGBiYXNlYDogYFB1bGxSZXF1ZXN0UGFy\ndGAKKiBgYm9keWA6IHN0cmluZwoqIGBjaGFuZ2VkX2ZpbGVzYDogaW50ZWdl\ncgoqIGBjbG9zZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGBjb21tZW50\nc2A6IGludGVnZXIKKiBgY29tbWl0c2A6IGludGVnZXIKKiBgY3JlYXRlZF9h\ndGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGRlbGV0aW9uc2A6IGludGVnZXIK\nKiBgZGlmZl91cmxgOiBzdHJpbmcKKiBgaGVhZGA6IGBQdWxsUmVxdWVzdFBh\ncnRgCiogYGh0bWxfdXJsYDogc3RyaW5nCiogYGlkYDogaW50ZWdlcgoqIGBp\nc3N1ZV91cmxgOiBzdHJpbmcKKiBgbWVyZ2VhYmxlYDogYm9vbAoqIGBtZXJn\nZWRgOiBib29sCiogYG1lcmdlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiog\nYG1lcmdlZF9ieWA6IGBOYW1lZFVzZXJgCiogYG51bWJlcmA6IGludGVnZXIK\nKiBgcGF0Y2hfdXJsYDogc3RyaW5nCiogYHJldmlld19jb21tZW50c2A6IGlu\ndGVnZXIKKiBgc3RhdGVgOiBzdHJpbmcKKiBgdGl0bGVgOiBzdHJpbmcKKiBg\ndXBkYXRlZF9hdGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYHVybGA6IHN0cmlu\nZwoqIGB1c2VyYDogYE5hbWVkVXNlcmAKClJldmlldyBjb21tZW50cwotLS0t\nLS0tLS0tLS0tLS0KKiBgY3JlYXRlX2NvbW1lbnQoIGJvZHksIGNvbW1pdF9p\nZCwgcGF0aCwgcG9zaXRpb24gKWA6IGBQdWxsUmVxdWVzdENvbW1lbnRgCiAg\nICAqIGBib2R5YDogc3RyaW5nCiAgICAqIGBjb21taXRfaWRgOiBgQ29tbWl0\nYAogICAgKiBgcGF0aGA6IHN0cmluZwogICAgKiBgcG9zaXRpb25gOiBpbnRl\nZ2VyCiogYGNyZWF0ZV9yZXZpZXdfY29tbWVudCggYm9keSwgY29tbWl0X2lk\nLCBwYXRoLCBwb3NpdGlvbiApYDogYFB1bGxSZXF1ZXN0Q29tbWVudGAKICAg\nICogYGJvZHlgOiBzdHJpbmcKICAgICogYGNvbW1pdF9pZGA6IGBDb21taXRg\nCiAgICAqIGBwYXRoYDogc3RyaW5nCiAgICAqIGBwb3NpdGlvbmA6IGludGVn\nZXIKKiBgZ2V0X2NvbW1lbnQoIGlkIClgOiBgUHVsbFJlcXVlc3RDb21tZW50\nYAogICAgKiBgaWRgOiBpbnRlZ2VyCiogYGdldF9yZXZpZXdfY29tbWVudCgg\naWQgKWA6IGBQdWxsUmVxdWVzdENvbW1lbnRgCiAgICAqIGBpZGA6IGludGVn\nZXIKKiBgZ2V0X2NvbW1lbnRzKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYFB1\nbGxSZXF1ZXN0Q29tbWVudGAKKiBgZ2V0X3Jldmlld19jb21tZW50cygpYDog\nYFBhZ2luYXRlZExpc3RgIG9mIGBQdWxsUmVxdWVzdENvbW1lbnRgCgpDb21t\naXRzCi0tLS0tLS0KKiBgZ2V0X2NvbW1pdHMoKWA6IGBQYWdpbmF0ZWRMaXN0\nYCBvZiBgQ29tbWl0YAoKRmlsZXMKLS0tLS0KKiBgZ2V0X2ZpbGVzKClgOiBg\nUGFnaW5hdGVkTGlzdGAgb2YgYEZpbGVgCgpJc3N1ZV9jb21tZW50cwotLS0t\nLS0tLS0tLS0tLQoqIGBjcmVhdGVfaXNzdWVfY29tbWVudCggYm9keSApYDog\nYElzc3VlQ29tbWVudGAKICAgICogYGJvZHlgOiBzdHJpbmcKKiBgZ2V0X2lz\nc3VlX2NvbW1lbnQoIGlkIClgOiBgSXNzdWVDb21tZW50YAogICAgKiBgaWRg\nOiBpbnRlZ2VyCiogYGdldF9pc3N1ZV9jb21tZW50cygpYDogYFBhZ2luYXRl\nZExpc3RgIG9mIGBJc3N1ZUNvbW1lbnRgCgpNZXJnaW5nCi0tLS0tLS0KKiBg\naXNfbWVyZ2VkKClgOiBib29sCiogYG1lcmdlKCBbY29tbWl0X21lc3NhZ2Vd\nIClgOiBgUHVsbFJlcXVlc3RNZXJnZVN0YXR1c2AKICAgICogYGNvbW1pdF9t\nZXNzYWdlYDogc3RyaW5nCgpNb2RpZmljYXRpb24KLS0tLS0tLS0tLS0tCiog\nYGVkaXQoIFt0aXRsZSwgYm9keSwgc3RhdGVdIClgCiAgICAqIGB0aXRsZWA6\nIHN0cmluZwogICAgKiBgYm9keWA6IHN0cmluZwogICAgKiBgc3RhdGVgOiBz\ndHJpbmcKCkNsYXNzIGBQdWxsUmVxdWVzdENvbW1lbnRgCj09PT09PT09PT09\nPT09PT09PT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgYm9k\neWA6IHN0cmluZwoqIGBjb21taXRfaWRgOiBzdHJpbmcKKiBgY3JlYXRlZF9h\ndGA6IGRhdGV0aW1lLmRhdGV0aW1lCiogYGlkYDogaW50ZWdlcgoqIGBvcmln\naW5hbF9jb21taXRfaWRgOiBzdHJpbmcKKiBgb3JpZ2luYWxfcG9zaXRpb25g\nOiBpbnRlZ2VyCiogYHBhdGhgOiBzdHJpbmcKKiBgcG9zaXRpb25gOiBpbnRl\nZ2VyCiogYHVwZGF0ZWRfYXRgOiBkYXRldGltZS5kYXRldGltZQoqIGB1cmxg\nOiBzdHJpbmcKKiBgdXNlcmA6IGBOYW1lZFVzZXJgCgpEZWxldGlvbgotLS0t\nLS0tLQoqIGBkZWxldGUoKWAKCk1vZGlmaWNhdGlvbgotLS0tLS0tLS0tLS0K\nKiBgZWRpdCggYm9keSApYAogICAgKiBgYm9keWA6IHN0cmluZwoKQ2xhc3Mg\nYFB1bGxSZXF1ZXN0TWVyZ2VTdGF0dXNgCj09PT09PT09PT09PT09PT09PT09\nPT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYG1lcmdlZGA6\nIGJvb2wKKiBgbWVzc2FnZWA6IHN0cmluZwoqIGBzaGFgOiBzdHJpbmcKCkNs\nYXNzIGBQdWxsUmVxdWVzdFBhcnRgCj09PT09PT09PT09PT09PT09PT09PT09\nCgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgbGFiZWxgOiBzdHJpbmcKKiBg\ncmVmYDogc3RyaW5nCiogYHJlcG9gOiBgUmVwb3NpdG9yeWAKKiBgc2hhYDog\nc3RyaW5nCiogYHVzZXJgOiBgTmFtZWRVc2VyYAoKQ2xhc3MgYFJlcG9zaXRv\ncnlgCj09PT09PT09PT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0t\nCiogYGNsb25lX3VybGA6IHN0cmluZwoqIGBjcmVhdGVkX2F0YDogZGF0ZXRp\nbWUuZGF0ZXRpbWUKKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcKKiBgZm9ya2A6\nIGJvb2wKKiBgZm9ya3NgOiBpbnRlZ2VyCiogYGZ1bGxfbmFtZWA6IHN0cmlu\nZwoqIGBnaXRfdXJsYDogc3RyaW5nCiogYGhhc19kb3dubG9hZHNgOiBib29s\nCiogYGhhc19pc3N1ZXNgOiBib29sCiogYGhhc193aWtpYDogYm9vbAoqIGBo\nb21lcGFnZWA6IHN0cmluZwoqIGBodG1sX3VybGA6IHN0cmluZwoqIGBpZGA6\nIGludGVnZXIKKiBgbGFuZ3VhZ2VgOiBzdHJpbmcKKiBgbWFzdGVyX2JyYW5j\naGA6IHN0cmluZwoqIGBuYW1lYDogc3RyaW5nCiogYG9wZW5faXNzdWVzYDog\naW50ZWdlcgoqIGBvcmdhbml6YXRpb25gOiBgT3JnYW5pemF0aW9uYAoqIGBv\nd25lcmA6IGBOYW1lZFVzZXJgCiogYHBhcmVudGA6IGBSZXBvc2l0b3J5YAoq\nIGBwZXJtaXNzaW9uc2A6IGBQZXJtaXNzaW9uc2AKKiBgcHJpdmF0ZWA6IGJv\nb2wKKiBgcHVzaGVkX2F0YDogZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgc2l6ZWA6\nIGludGVnZXIKKiBgc291cmNlYDogYFJlcG9zaXRvcnlgCiogYHNzaF91cmxg\nOiBzdHJpbmcKKiBgc3ZuX3VybGA6IHN0cmluZwoqIGB1cGRhdGVkX2F0YDog\nZGF0ZXRpbWUuZGF0ZXRpbWUKKiBgdXJsYDogc3RyaW5nCiogYHdhdGNoZXJz\nYDogaW50ZWdlcgoKQ29tcGFyaXNvbgotLS0tLS0tLS0tCiogYGNvbXBhcmUo\nIGJhc2UsIGhlYWQgKWA6IGBDb21wYXJpc29uYAogICAgKiBgYmFzZWA6IHN0\ncmluZwogICAgKiBgaGVhZGA6IHN0cmluZwoKQXNzaWduZWVzCi0tLS0tLS0t\nLQoqIGBnZXRfYXNzaWduZWVzKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYE5h\nbWVkVXNlcmAKKiBgaGFzX2luX2Fzc2lnbmVlcyggYXNzaWduZWUgKWA6IGJv\nb2wKICAgICogYGFzc2lnbmVlYDogYE5hbWVkVXNlcmAKCkJyYW5jaGVzCi0t\nLS0tLS0tCiogYGdldF9icmFuY2goIGJyYW5jaCApYDogYEJyYW5jaGAKICAg\nICogYGJyYW5jaGA6IHN0cmluZwoqIGBnZXRfYnJhbmNoZXMoKWA6IGBQYWdp\nbmF0ZWRMaXN0YCBvZiBgQnJhbmNoYAoKQ29sbGFib3JhdG9ycwotLS0tLS0t\nLS0tLS0tCiogYGFkZF90b19jb2xsYWJvcmF0b3JzKCBjb2xsYWJvcmF0b3Ig\nKWAKICAgICogYGNvbGxhYm9yYXRvcmA6IGBOYW1lZFVzZXJgCiogYGdldF9j\nb2xsYWJvcmF0b3JzKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYE5hbWVkVXNl\ncmAKKiBgaGFzX2luX2NvbGxhYm9yYXRvcnMoIGNvbGxhYm9yYXRvciApYDog\nYm9vbAogICAgKiBgY29sbGFib3JhdG9yYDogYE5hbWVkVXNlcmAKKiBgcmVt\nb3ZlX2Zyb21fY29sbGFib3JhdG9ycyggY29sbGFib3JhdG9yIClgCiAgICAq\nIGBjb2xsYWJvcmF0b3JgOiBgTmFtZWRVc2VyYAoKQ29tbWVudHMKLS0tLS0t\nLS0KKiBgZ2V0X2NvbW1lbnQoIGlkIClgOiBgQ29tbWl0Q29tbWVudGAKICAg\nICogYGlkYDogaW50ZWdlcgoqIGBnZXRfY29tbWVudHMoKWA6IGBQYWdpbmF0\nZWRMaXN0YCBvZiBgQ29tbWl0Q29tbWVudGAKCkNvbW1pdHMKLS0tLS0tLQoq\nIGBnZXRfY29tbWl0KCBzaGEgKWA6IGBDb21taXRgCiAgICAqIGBzaGFgOiBz\ndHJpbmcKKiBgZ2V0X2NvbW1pdHMoIFtzaGEsIHBhdGhdIClgOiBgUGFnaW5h\ndGVkTGlzdGAgb2YgYENvbW1pdGAKICAgICogYHNoYWA6IHN0cmluZwogICAg\nKiBgcGF0aGA6IHN0cmluZwoKQ29udGVudHMKLS0tLS0tLS0KKiBgZ2V0X3Jl\nYWRtZSgpYDogYENvbnRlbnRGaWxlYAoqIGBnZXRfY29udGVudHMoIHBhdGgg\nKWA6IGBDb250ZW50RmlsZWAKICAgICogYHBhdGhgOiBzdHJpbmcKKiBgZ2V0\nX2FyY2hpdmVfbGluayggYXJjaGl2ZV9mb3JtYXQsIFtyZWZdIClgOiBzdHJp\nbmcKICAgICogYGFyY2hpdmVfZm9ybWF0YDogc3RyaW5nCiAgICAqIGByZWZg\nOiBzdHJpbmcKCkNvbnRyaWJ1dG9ycwotLS0tLS0tLS0tLS0KKiBgZ2V0X2Nv\nbnRyaWJ1dG9ycygpYDogYFBhZ2luYXRlZExpc3RgIG9mIGBOYW1lZFVzZXJg\nCgpEZWxldGlvbgotLS0tLS0tLQoqIGBkZWxldGUoKWAKCkRvd25sb2Fkcwot\nLS0tLS0tLS0KKiBgY3JlYXRlX2Rvd25sb2FkKCBuYW1lLCBzaXplLCBbZGVz\nY3JpcHRpb24sIGNvbnRlbnRfdHlwZV0gKWA6IGBEb3dubG9hZGAKICAgICog\nYG5hbWVgOiBzdHJpbmcKICAgICogYHNpemVgOiBpbnRlZ2VyCiAgICAqIGBk\nZXNjcmlwdGlvbmA6IHN0cmluZwogICAgKiBgY29udGVudF90eXBlYDogc3Ry\naW5nCiogYGdldF9kb3dubG9hZCggaWQgKWA6IGBEb3dubG9hZGAKICAgICog\nYGlkYDogaW50ZWdlcgoqIGBnZXRfZG93bmxvYWRzKClgOiBgUGFnaW5hdGVk\nTGlzdGAgb2YgYERvd25sb2FkYAoKRXZlbnRzCi0tLS0tLQoqIGBnZXRfZXZl\nbnRzKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYEV2ZW50YAoqIGBnZXRfbmV0\nd29ya19ldmVudHMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgRXZlbnRgCgpG\nb3JrcwotLS0tLQoqIGBnZXRfZm9ya3MoKWA6IGBQYWdpbmF0ZWRMaXN0YCBv\nZiBgUmVwb3NpdG9yeWAKCkdpdF9ibG9icwotLS0tLS0tLS0KKiBgY3JlYXRl\nX2dpdF9ibG9iKCBjb250ZW50LCBlbmNvZGluZyApYDogYEdpdEJsb2JgCiAg\nICAqIGBjb250ZW50YDogc3RyaW5nCiAgICAqIGBlbmNvZGluZ2A6IHN0cmlu\nZwoqIGBnZXRfZ2l0X2Jsb2IoIHNoYSApYDogYEdpdEJsb2JgCiAgICAqIGBz\naGFgOiBzdHJpbmcKCkdpdF9jb21taXRzCi0tLS0tLS0tLS0tCiogYGNyZWF0\nZV9naXRfY29tbWl0KCBtZXNzYWdlLCB0cmVlLCBwYXJlbnRzLCBbYXV0aG9y\nLCBjb21taXR0ZXJdIClgOiBgR2l0Q29tbWl0YAogICAgKiBgbWVzc2FnZWA6\nIHN0cmluZwogICAgKiBgdHJlZWA6IGBHaXRUcmVlYAogICAgKiBgcGFyZW50\nc2A6IGxpc3Qgb2YgYEdpdENvbW1pdGAKICAgICogYGF1dGhvcmA6IGBJbnB1\ndEdpdEF1dGhvcmAKICAgICogYGNvbW1pdHRlcmA6IGBJbnB1dEdpdEF1dGhv\ncmAKKiBgZ2V0X2dpdF9jb21taXQoIHNoYSApYDogYEdpdENvbW1pdGAKICAg\nICogYHNoYWA6IHN0cmluZwoKR2l0X3JlZnMKLS0tLS0tLS0KKiBgY3JlYXRl\nX2dpdF9yZWYoIHJlZiwgc2hhIClgOiBgR2l0UmVmYAogICAgKiBgcmVmYDog\nc3RyaW5nCiAgICAqIGBzaGFgOiBzdHJpbmcKKiBgZ2V0X2dpdF9yZWYoIHJl\nZiApYDogYEdpdFJlZmAKICAgICogYHJlZmA6IHN0cmluZwoqIGBnZXRfZ2l0\nX3JlZnMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgR2l0UmVmYAoKR2l0X3Rh\nZ3MKLS0tLS0tLS0KKiBgY3JlYXRlX2dpdF90YWcoIHRhZywgbWVzc2FnZSwg\nb2JqZWN0LCB0eXBlLCBbdGFnZ2VyXSApYDogYEdpdFRhZ2AKICAgICogYHRh\nZ2A6IHN0cmluZwogICAgKiBgbWVzc2FnZWA6IHN0cmluZwogICAgKiBgb2Jq\nZWN0YDogc3RyaW5nCiAgICAqIGB0eXBlYDogc3RyaW5nCiAgICAqIGB0YWdn\nZXJgOiBgSW5wdXRHaXRBdXRob3JgCiogYGdldF9naXRfdGFnKCBzaGEgKWA6\nIGBHaXRUYWdgCiAgICAqIGBzaGFgOiBzdHJpbmcKCkdpdF90cmVlcwotLS0t\nLS0tLS0KKiBgY3JlYXRlX2dpdF90cmVlKCB0cmVlLCBbYmFzZV90cmVlXSAp\nYDogYEdpdFRyZWVgCiAgICAqIGB0cmVlYDogbGlzdCBvZiBgSW5wdXRHaXRU\ncmVlRWxlbWVudGAKICAgICogYGJhc2VfdHJlZWA6IGBHaXRUcmVlYAoqIGBn\nZXRfZ2l0X3RyZWUoIHNoYSwgW3JlY3Vyc2l2ZV0gKWA6IGBHaXRUcmVlYAog\nICAgKiBgc2hhYDogc3RyaW5nCiAgICAqIGByZWN1cnNpdmVgOiBib29sCgpI\nb29rcwotLS0tLQoqIGBjcmVhdGVfaG9vayggbmFtZSwgY29uZmlnLCBbZXZl\nbnRzLCBhY3RpdmVdIClgOiBgSG9va2AKICAgICogYG5hbWVgOiBzdHJpbmcK\nICAgICogYGNvbmZpZ2A6IGRpY3QKICAgICogYGV2ZW50c2A6IGxpc3Qgb2Yg\nc3RyaW5nCiAgICAqIGBhY3RpdmVgOiBib29sCiogYGdldF9ob29rKCBpZCAp\nYDogYEhvb2tgCiAgICAqIGBpZGA6IGludGVnZXIKKiBgZ2V0X2hvb2tzKClg\nOiBgUGFnaW5hdGVkTGlzdGAgb2YgYEhvb2tgCgpJc3N1ZXMKLS0tLS0tCiog\nYGNyZWF0ZV9pc3N1ZSggdGl0bGUsIFtib2R5LCBhc3NpZ25lZSwgbWlsZXN0\nb25lLCBsYWJlbHNdIClgOiBgSXNzdWVgCiAgICAqIGB0aXRsZWA6IHN0cmlu\nZwogICAgKiBgYm9keWA6IHN0cmluZwogICAgKiBgYXNzaWduZWVgOiBgTmFt\nZWRVc2VyYAogICAgKiBgbWlsZXN0b25lYDogYE1pbGVzdG9uZWAKICAgICog\nYGxhYmVsc2A6IGxpc3Qgb2YgYExhYmVsYAoqIGBnZXRfaXNzdWUoIG51bWJl\nciApYDogYElzc3VlYAogICAgKiBgbnVtYmVyYDogaW50ZWdlcgoqIGBnZXRf\naXNzdWVzKCBbbWlsZXN0b25lLCBzdGF0ZSwgYXNzaWduZWUsIG1lbnRpb25l\nZCwgbGFiZWxzLCBzb3J0LCBkaXJlY3Rpb24sIHNpbmNlXSApYDogYFBhZ2lu\nYXRlZExpc3RgIG9mIGBJc3N1ZWAKICAgICogYG1pbGVzdG9uZWA6IGBNaWxl\nc3RvbmVgIG9yICJub25lIiBvciAiKiIKICAgICogYHN0YXRlYDogc3RyaW5n\nCiAgICAqIGBhc3NpZ25lZWA6IGBOYW1lZFVzZXJgIG9yICJub25lIiBvciAi\nKiIKICAgICogYG1lbnRpb25lZGA6IGBOYW1lZFVzZXJgCiAgICAqIGBsYWJl\nbHNgOiBsaXN0IG9mIGBMYWJlbGAKICAgICogYHNvcnRgOiBzdHJpbmcKICAg\nICogYGRpcmVjdGlvbmA6IHN0cmluZwogICAgKiBgc2luY2VgOiBkYXRldGlt\nZS5kYXRldGltZQoqIGBsZWdhY3lfc2VhcmNoX2lzc3Vlcyggc3RhdGUsIGtl\neXdvcmQgKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgSXNzdWVgCiAgICAqIGBz\ndGF0ZWA6ICJvcGVuIiBvciAiY2xvc2VkIgogICAgKiBga2V5d29yZGA6IHN0\ncmluZwoKSXNzdWVzX2V2ZW50cwotLS0tLS0tLS0tLS0tCiogYGdldF9pc3N1\nZXNfZXZlbnQoIGlkIClgOiBgSXNzdWVFdmVudGAKICAgICogYGlkYDogaW50\nZWdlcgoqIGBnZXRfaXNzdWVzX2V2ZW50cygpYDogYFBhZ2luYXRlZExpc3Rg\nIG9mIGBJc3N1ZUV2ZW50YAoKS2V5cwotLS0tCiogYGNyZWF0ZV9rZXkoIHRp\ndGxlLCBrZXkgKWA6IGBSZXBvc2l0b3J5S2V5YAogICAgKiBgdGl0bGVgOiBz\ndHJpbmcKICAgICogYGtleWA6IHN0cmluZwoqIGBnZXRfa2V5KCBpZCApYDog\nYFJlcG9zaXRvcnlLZXlgCiAgICAqIGBpZGA6IGludGVnZXIKKiBgZ2V0X2tl\neXMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgUmVwb3NpdG9yeUtleWAKCkxh\nYmVscwotLS0tLS0KKiBgY3JlYXRlX2xhYmVsKCBuYW1lLCBjb2xvciApYDog\nYExhYmVsYAogICAgKiBgbmFtZWA6IHN0cmluZwogICAgKiBgY29sb3JgOiBz\ndHJpbmcKKiBgZ2V0X2xhYmVsKCBuYW1lIClgOiBgTGFiZWxgCiAgICAqIGBu\nYW1lYDogc3RyaW5nCiogYGdldF9sYWJlbHMoKWA6IGBQYWdpbmF0ZWRMaXN0\nYCBvZiBgTGFiZWxgCgpMYW5ndWFnZXMKLS0tLS0tLS0tCiogYGdldF9sYW5n\ndWFnZXMoKWA6IGRpY3Qgb2Ygc3RyaW5nIHRvIGludGVnZXIKCk1lcmdpbmcK\nLS0tLS0tLQoqIGBtZXJnZSggYmFzZSwgaGVhZCwgW2NvbW1pdF9tZXNzYWdl\nXSApYDogYENvbW1pdGAKICAgICogYGJhc2VgOiBzdHJpbmcKICAgICogYGhl\nYWRgOiBzdHJpbmcKICAgICogYGNvbW1pdF9tZXNzYWdlYDogc3RyaW5nCgpN\naWxlc3RvbmVzCi0tLS0tLS0tLS0KKiBgY3JlYXRlX21pbGVzdG9uZSggdGl0\nbGUsIFtzdGF0ZSwgZGVzY3JpcHRpb24sIGR1ZV9vbl0gKWA6IGBNaWxlc3Rv\nbmVgCiAgICAqIGB0aXRsZWA6IHN0cmluZwogICAgKiBgc3RhdGVgOiBzdHJp\nbmcKICAgICogYGRlc2NyaXB0aW9uYDogc3RyaW5nCiAgICAqIGBkdWVfb25g\nOiBkYXRlCiogYGdldF9taWxlc3RvbmUoIG51bWJlciApYDogYE1pbGVzdG9u\nZWAKICAgICogYG51bWJlcmA6IGludGVnZXIKKiBgZ2V0X21pbGVzdG9uZXMo\nIFtzdGF0ZSwgc29ydCwgZGlyZWN0aW9uXSApYDogYFBhZ2luYXRlZExpc3Rg\nIG9mIGBNaWxlc3RvbmVgCiAgICAqIGBzdGF0ZWA6IHN0cmluZwogICAgKiBg\nc29ydGA6IHN0cmluZwogICAgKiBgZGlyZWN0aW9uYDogc3RyaW5nCgpNb2Rp\nZmljYXRpb24KLS0tLS0tLS0tLS0tCiogYGVkaXQoIG5hbWUsIFtkZXNjcmlw\ndGlvbiwgaG9tZXBhZ2UsIHB1YmxpYywgaGFzX2lzc3VlcywgaGFzX3dpa2ks\nIGhhc19kb3dubG9hZHMsIGRlZmF1bHRfYnJhbmNoXSApYAogICAgKiBgbmFt\nZWA6IHN0cmluZwogICAgKiBgZGVzY3JpcHRpb25gOiBzdHJpbmcKICAgICog\nYGhvbWVwYWdlYDogc3RyaW5nCiAgICAqIGBwdWJsaWNgOiBib29sCiAgICAq\nIGBoYXNfaXNzdWVzYDogYm9vbAogICAgKiBgaGFzX3dpa2lgOiBib29sCiAg\nICAqIGBoYXNfZG93bmxvYWRzYDogYm9vbAogICAgKiBgZGVmYXVsdF9icmFu\nY2hgOiBzdHJpbmcKClB1bGxzCi0tLS0tCiogYGNyZWF0ZV9wdWxsKCA8IHRp\ndGxlLCBib2R5LCBiYXNlLCBoZWFkID4gb3IgPCBpc3N1ZSwgYmFzZSwgaGVh\nZCA+IClgOiBgUHVsbFJlcXVlc3RgCiAgICAqIGB0aXRsZWA6IHN0cmluZwog\nICAgKiBgYm9keWA6IHN0cmluZwogICAgKiBgaXNzdWVgOiBgSXNzdWVgCiAg\nICAqIGBiYXNlYDogc3RyaW5nCiAgICAqIGBoZWFkYDogc3RyaW5nCiogYGdl\ndF9wdWxsKCBudW1iZXIgKWA6IGBQdWxsUmVxdWVzdGAKICAgICogYG51bWJl\ncmA6IGludGVnZXIKKiBgZ2V0X3B1bGxzKCBbc3RhdGVdIClgOiBgUGFnaW5h\ndGVkTGlzdGAgb2YgYFB1bGxSZXF1ZXN0YAogICAgKiBgc3RhdGVgOiBzdHJp\nbmcKClN0YXJnYXplcnMKLS0tLS0tLS0tLQoqIGBnZXRfc3RhcmdhemVycygp\nYDogYFBhZ2luYXRlZExpc3RgIG9mIGBOYW1lZFVzZXJgCgpTdWJzY3JpYmVy\ncwotLS0tLS0tLS0tLQoqIGBnZXRfc3Vic2NyaWJlcnMoKWA6IGBQYWdpbmF0\nZWRMaXN0YCBvZiBgTmFtZWRVc2VyYAoKVGFncwotLS0tCiogYGdldF90YWdz\nKClgOiBgUGFnaW5hdGVkTGlzdGAgb2YgYFRhZ2AKClRlYW1zCi0tLS0tCiog\nYGdldF90ZWFtcygpYDogYFBhZ2luYXRlZExpc3RgIG9mIGBUZWFtYAoKV2F0\nY2hlcnMKLS0tLS0tLS0KKiBgZ2V0X3dhdGNoZXJzKClgOiBgUGFnaW5hdGVk\nTGlzdGAgb2YgYE5hbWVkVXNlcmAKCkNsYXNzIGBSZXBvc2l0b3J5S2V5YAo9\nPT09PT09PT09PT09PT09PT09PT0KCkF0dHJpYnV0ZXMKLS0tLS0tLS0tLQoq\nIGBpZGA6IGludGVnZXIKKiBga2V5YDogc3RyaW5nCiogYHRpdGxlYDogc3Ry\naW5nCiogYHVybGA6IHN0cmluZwoqIGB2ZXJpZmllZGA6IGJvb2wKCkRlbGV0\naW9uCi0tLS0tLS0tCiogYGRlbGV0ZSgpYAoKTW9kaWZpY2F0aW9uCi0tLS0t\nLS0tLS0tLQoqIGBlZGl0KCBbdGl0bGUsIGtleV0gKWAKICAgICogYHRpdGxl\nYDogc3RyaW5nCiAgICAqIGBrZXlgOiBzdHJpbmcKCkNsYXNzIGBUYWdgCj09\nPT09PT09PT09CgpBdHRyaWJ1dGVzCi0tLS0tLS0tLS0KKiBgY29tbWl0YDog\nYENvbW1pdGAKKiBgbmFtZWA6IHN0cmluZwoqIGB0YXJiYWxsX3VybGA6IHN0\ncmluZwoqIGB6aXBiYWxsX3VybGA6IHN0cmluZwoKQ2xhc3MgYFRlYW1gCj09\nPT09PT09PT09PQoKQXR0cmlidXRlcwotLS0tLS0tLS0tCiogYGlkYDogaW50\nZWdlcgoqIGBtZW1iZXJzX2NvdW50YDogaW50ZWdlcgoqIGBuYW1lYDogc3Ry\naW5nCiogYHBlcm1pc3Npb25gOiBzdHJpbmcKKiBgcmVwb3NfY291bnRgOiBp\nbnRlZ2VyCiogYHVybGA6IHN0cmluZwoKRGVsZXRpb24KLS0tLS0tLS0KKiBg\nZGVsZXRlKClgCgpNZW1iZXJzCi0tLS0tLS0KKiBgYWRkX3RvX21lbWJlcnMo\nIG1lbWJlciApYAogICAgKiBgbWVtYmVyYDogYE5hbWVkVXNlcmAKKiBgZ2V0\nX21lbWJlcnMoKWA6IGBQYWdpbmF0ZWRMaXN0YCBvZiBgTmFtZWRVc2VyYAoq\nIGBoYXNfaW5fbWVtYmVycyggbWVtYmVyIClgOiBib29sCiAgICAqIGBtZW1i\nZXJgOiBgTmFtZWRVc2VyYAoqIGByZW1vdmVfZnJvbV9tZW1iZXJzKCBtZW1i\nZXIgKWAKICAgICogYG1lbWJlcmA6IGBOYW1lZFVzZXJgCgpNb2RpZmljYXRp\nb24KLS0tLS0tLS0tLS0tCiogYGVkaXQoIG5hbWUsIFtwZXJtaXNzaW9uXSAp\nYAogICAgKiBgbmFtZWA6IHN0cmluZwogICAgKiBgcGVybWlzc2lvbmA6IHN0\ncmluZwoKUmVwb3MKLS0tLS0KKiBgYWRkX3RvX3JlcG9zKCByZXBvIClgCiAg\nICAqIGByZXBvYDogYFJlcG9zaXRvcnlgCiogYGdldF9yZXBvcygpYDogYFBh\nZ2luYXRlZExpc3RgIG9mIGBSZXBvc2l0b3J5YAoqIGBoYXNfaW5fcmVwb3Mo\nIHJlcG8gKWA6IGJvb2wKICAgICogYHJlcG9gOiBgUmVwb3NpdG9yeWAKKiBg\ncmVtb3ZlX2Zyb21fcmVwb3MoIHJlcG8gKWAKICAgICogYHJlcG9gOiBgUmVw\nb3NpdG9yeWAKCkNsYXNzIGBVc2VyS2V5YAo9PT09PT09PT09PT09PT0KCkF0\ndHJpYnV0ZXMKLS0tLS0tLS0tLQoqIGBpZGA6IGludGVnZXIKKiBga2V5YDog\nc3RyaW5nCiogYHRpdGxlYDogc3RyaW5nCiogYHVybGA6IHN0cmluZwoqIGB2\nZXJpZmllZGA6IGJvb2wKCkRlbGV0aW9uCi0tLS0tLS0tCiogYGRlbGV0ZSgp\nYAoKTW9kaWZpY2F0aW9uCi0tLS0tLS0tLS0tLQoqIGBlZGl0KCBbdGl0bGUs\nIGtleV0gKWAKICAgICogYHRpdGxlYDogc3RyaW5nCiAgICAqIGBrZXlgOiBz\ndHJpbmcK\n","_links":{"git":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/07b170f1d3df085278aafbc49164178ba0df7d59","html":"https://github.com/PyGithub/PyGithub/blob/refs/heads/topic/ExperimentOnDocumentation/doc/ReferenceOfClasses.md","self":"https://api.github.com/repos/PyGithub/PyGithub/contents/doc/ReferenceOfClasses.md?ref=refs/heads/topic/ExperimentOnDocumentation"},"git_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/07b170f1d3df085278aafbc49164178ba0df7d59","sha":"07b170f1d3df085278aafbc49164178ba0df7d59","size":32406,"encoding":"base64","name":"ReferenceOfClasses.md"} diff --git a/tests/ReplayData/Repository.testGetContributors.txt b/tests/ReplayData/Repository.testGetContributors.txt index 5c48df8ea0..4a71a9782b 100644 --- a/tests/ReplayData/Repository.testGetContributors.txt +++ b/tests/ReplayData/Repository.testGetContributors.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/contributors +/repos/PyGithub/PyGithub/contributors {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testGetCustomProperties.txt b/tests/ReplayData/Repository.testGetCustomProperties.txt index 47a97900ba..14ef8e89c4 100644 --- a/tests/ReplayData/Repository.testGetCustomProperties.txt +++ b/tests/ReplayData/Repository.testGetCustomProperties.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/properties/values +/repos/PyGithub/PyGithub/properties/values {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testGetDeployments.txt b/tests/ReplayData/Repository.testGetDeployments.txt index a73c57ce27..d15c9be188 100644 --- a/tests/ReplayData/Repository.testGetDeployments.txt +++ b/tests/ReplayData/Repository.testGetDeployments.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/deployments +/repos/PyGithub/PyGithub/deployments {'Accept': 'application/vnd.github.ant-man-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('Date', 'Wed, 26 Aug 2020 13:30:00 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"38512da93238689c49f6a4fab46c4650"'), ('X-OAuth-Scopes', 'repo_deployment'), ('X-Accepted-OAuth-Scopes', 'repo, repo_deployment'), ('X-GitHub-Media-Type', 'github.ant-man-preview; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4997'), ('X-RateLimit-Reset', '1598452199'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, 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', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '8774:5DBE:4951B1C:598D725:5F4663D8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258","id":263877258,"node_id":"MDEwOkRlcGxveW1lbnQyNjIzNTE3NzY=","sha":"743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","ref":"743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","task":"deploy","payload":{"test":true},"original_environment":"test","environment":"test","description":"Test deployment","creator":{"login":"jacquev6","id":2102878,"node_id":"MDQ6VXNlcjIxMDI4Nzg=","avatar_url":"https://avatars3.githubusercontent.com/u/2102878?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"created_at":"2020-08-26T11:44:53Z","updated_at":"2020-08-26T11:44:53Z","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258/statuses","repository_url":"https://api.github.com/repos/jacquev6/PyGithub","transient_environment":true,"production_environment":false,"performed_via_github_app":null},{"url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/262350588","id":262350588,"node_id":"MDEwOkRlcGxveW1lbnQyNjIzNTA1ODg=","sha":"743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","ref":"743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","task":"deploy","payload":{},"original_environment":"production","environment":"production","description":null,"creator":{"login":"jacquev6","id":2102878,"node_id":"MDQ6VXNlcjIxMDI4Nzg=","avatar_url":"https://avatars3.githubusercontent.com/u/2102878?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"created_at":"2020-08-26T11:40:41Z","updated_at":"2020-08-26T11:40:41Z","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/262350588/statuses","repository_url":"https://api.github.com/repos/jacquev6/PyGithub","transient_environment":false,"production_environment":false,"performed_via_github_app":null}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/deployments/263877258","id":263877258,"node_id":"MDEwOkRlcGxveW1lbnQyNjIzNTE3NzY=","sha":"743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","ref":"743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","task":"deploy","payload":{"test":true},"original_environment":"test","environment":"test","description":"Test deployment","creator":{"login":"jacquev6","id":2102878,"node_id":"MDQ6VXNlcjIxMDI4Nzg=","avatar_url":"https://avatars3.githubusercontent.com/u/2102878?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"created_at":"2020-08-26T11:44:53Z","updated_at":"2020-08-26T11:44:53Z","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments/263877258/statuses","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","transient_environment":true,"production_environment":false,"performed_via_github_app":null},{"url":"https://api.github.com/repos/PyGithub/PyGithub/deployments/262350588","id":262350588,"node_id":"MDEwOkRlcGxveW1lbnQyNjIzNTA1ODg=","sha":"743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","ref":"743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","task":"deploy","payload":{},"original_environment":"production","environment":"production","description":null,"creator":{"login":"jacquev6","id":2102878,"node_id":"MDQ6VXNlcjIxMDI4Nzg=","avatar_url":"https://avatars3.githubusercontent.com/u/2102878?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"created_at":"2020-08-26T11:40:41Z","updated_at":"2020-08-26T11:40:41Z","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments/262350588/statuses","repository_url":"https://api.github.com/repos/PyGithub/PyGithub","transient_environment":false,"production_environment":false,"performed_via_github_app":null}] diff --git a/tests/ReplayData/Repository.testGetDownloads.txt b/tests/ReplayData/Repository.testGetDownloads.txt index 72dc935f62..df6b0e65d6 100644 --- a/tests/ReplayData/Repository.testGetDownloads.txt +++ b/tests/ReplayData/Repository.testGetDownloads.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/downloads +/repos/PyGithub/PyGithub/downloads {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4968'), ('content-length', '277'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"209ba3e85bfec4914fb88bb2d12b55e9"'), ('date', 'Sun, 27 May 2012 06:55:04 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"content_type":".py","download_count":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/245143","size":1024,"name":"Hook.py","created_at":"2012-05-27T06:54:54Z","description":"","id":245143,"html_url":"https://github.com/downloads/jacquev6/PyGithub/Hook.py"}] +[{"content_type":".py","download_count":0,"url":"https://api.github.com/repos/PyGithub/PyGithub/downloads/245143","size":1024,"name":"Hook.py","created_at":"2012-05-27T06:54:54Z","description":"","id":245143,"html_url":"https://github.com/downloads/PyGithub/PyGithub/Hook.py"}] diff --git a/tests/ReplayData/Repository.testGetEvents.txt b/tests/ReplayData/Repository.testGetEvents.txt index 378dee9421..3b0537ab55 100644 --- a/tests/ReplayData/Repository.testGetEvents.txt +++ b/tests/ReplayData/Repository.testGetEvents.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/events +/repos/PyGithub/PyGithub/events {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4965'), ('content-length', '44412'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"a0d405b3f385bd0d26640c75b50c95dd"'), ('date', 'Sun, 27 May 2012 06:57:59 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"type":"DownloadEvent","payload":{"download":{"name":"Hook.py","size":1024,"created_at":"2012-05-27T06:54:54Z","content_type":".py","url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/245143","download_count":0,"id":245143,"description":"","html_url":"https://github.com/downloads/jacquev6/PyGithub/Hook.py"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-27T06:54:55Z","id":"1556239111","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"DownloadEvent","payload":{"download":{"name":"htmlcov.zip","size":258048,"created_at":"2012-05-27T06:53:47Z","content_type":".zip","download_count":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/245142","id":245142,"description":"","html_url":"https://github.com/downloads/jacquev6/PyGithub/htmlcov.zip"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-27T06:53:48Z","id":"1556239049","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"956279094a7383b6a8f00c93770ed02ca711f8e5","size":4,"push_id":80734053,"ref":"refs/heads/topic/RewriteWithGeneratedCode","commits":[{"sha":"8cb3e63e80f3ab741ca580eed791a85fb4e1b968","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8cb3e63e80f3ab741ca580eed791a85fb4e1b968","distinct":true,"message":"Test Team"},{"sha":"e7fe18b7dd3daa03a6ebb7f83a4f100c0f68e96b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e7fe18b7dd3daa03a6ebb7f83a4f100c0f68e96b","distinct":true,"message":"Test Organization members"},{"sha":"4169010f17cf66a9f1e43e476115485ed7cda90c","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4169010f17cf66a9f1e43e476115485ed7cda90c","distinct":true,"message":"Improve coverage of Organization"},{"sha":"956279094a7383b6a8f00c93770ed02ca711f8e5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/956279094a7383b6a8f00c93770ed02ca711f8e5","distinct":true,"message":"Test Repository.create_git_*"}]},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-27T06:00:30Z","id":"1556235497","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"opened","issue":{"number":30,"created_at":"2012-05-27T05:40:15Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Body created by PyGithub","comments":0,"title":"Issue also created by PyGithub","updated_at":"2012-05-27T05:40:15Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/30","id":4769659,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":2,"due_on":"2012-06-04T07:00:00Z","created_at":"2012-03-08T12:22:28Z","title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","id":93547,"open_issues":10,"closed_issues":2,"description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","state":"open"},"closed_at":null,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/issues/30","labels":[{"name":"Question","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","color":"02e10c"}],"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-27T05:40:15Z","id":"1556234207","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"MemberEvent","payload":{"action":"added","member":{"gravatar_id":"1517ed584458ccf83e03f5d77d9699d7","avatar_url":"https://secure.gravatar.com/avatar/1517ed584458ccf83e03f5d77d9699d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/Lyloa","id":1131432,"login":"Lyloa"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-27T05:34:29Z","id":"1556233923","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"MemberEvent","payload":{"action":"added","member":{"gravatar_id":"1517ed584458ccf83e03f5d77d9699d7","avatar_url":"https://secure.gravatar.com/avatar/1517ed584458ccf83e03f5d77d9699d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/Lyloa","id":1131432,"login":"Lyloa"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-27T05:33:44Z","id":"1556233882","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"ForkEvent","payload":{"forkee":{"name":"PyGithub","size":348,"has_wiki":false,"created_at":"2012-05-27T05:23:17Z","clone_url":"https://github.com/BeaverSoftware/PyGithub.git","public":true,"watchers":1,"private":false,"updated_at":"2012-05-27T05:23:18Z","git_url":"git://github.com/BeaverSoftware/PyGithub.git","fork":true,"language":"Python","url":"https://api.github.com/repos/BeaverSoftware/PyGithub","ssh_url":"git@github.com:BeaverSoftware/PyGithub.git","id":4460027,"svn_url":"https://github.com/BeaverSoftware/PyGithub","pushed_at":"2012-05-26T20:54:13Z","has_downloads":true,"mirror_url":null,"open_issues":0,"full_name":"BeaverSoftware/PyGithub","has_issues":false,"homepage":"http://vincent-jacques.net/PyGithub","description":"Python library implementing the full Github API v3","forks":0,"html_url":"https://github.com/BeaverSoftware/PyGithub","owner":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware"}}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-27T05:23:18Z","id":"1556233222","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware"}},{"type":"PushEvent","payload":{"head":"a39af6a0aae16a923f7be48a70fe1095b17280d2","size":2,"push_id":80709334,"commits":[{"sha":"60fb7a8ef56f46d3fe9ce6d008e6b58238a71d29","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/60fb7a8ef56f46d3fe9ce6d008e6b58238a71d29","distinct":true,"message":"Heavy refactoring of integration tests"},{"sha":"a39af6a0aae16a923f7be48a70fe1095b17280d2","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a39af6a0aae16a923f7be48a70fe1095b17280d2","distinct":true,"message":"Improve test coverage"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-26T20:54:15Z","id":"1556182773","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"WatchEvent","payload":{"action":"started"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-26T18:33:42Z","id":"1556168218","actor":{"gravatar_id":"1689abbd998128dbb3658698b429b022","avatar_url":"https://secure.gravatar.com/avatar/1689abbd998128dbb3658698b429b022?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/michaelpedersen","id":22974,"login":"michaelpedersen"}},{"type":"IssuesEvent","payload":{"action":"closed","issue":{"number":28,"created_at":"2012-05-19T10:38:23Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Body edited by PyGithub","title":"Issue created by PyGithub","comments":0,"updated_at":"2012-05-26T14:59:33Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","id":4653757,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":1,"created_at":"2012-03-08T12:22:10Z","due_on":"2012-03-13T07:00:00Z","title":"Version 0.4","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","id":93546,"open_issues":0,"closed_issues":3,"description":"","state":"closed"},"closed_at":"2012-05-26T14:59:33Z","html_url":"https://github.com/jacquev6/PyGithub/issues/28","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"labels":[{"name":"Bug","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","color":"e10c02"},{"name":"Project management","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","color":"444444"},{"name":"Question","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","color":"02e10c"}],"state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-26T14:59:34Z","id":"1556145515","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"36574ded89738a81f47f415017ba880d0cad839b","size":5,"push_id":80677260,"commits":[{"sha":"95cd6c507bdfbf3700a31bafbe26f72a1d684be1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/95cd6c507bdfbf3700a31bafbe26f72a1d684be1","distinct":true,"message":"Use setUp in test for NamedUser"},{"sha":"386bcde55e1744fa888b034d34ad9f167595d2cf","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/386bcde55e1744fa888b034d34ad9f167595d2cf","distinct":true,"message":"Refactor tests of NamedUser"},{"sha":"1b3ca70ebe8724ab7d0d6ba9c8b20853a018eeec","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1b3ca70ebe8724ab7d0d6ba9c8b20853a018eeec","distinct":true,"message":"Restore coverage of Event"},{"sha":"ff8d87d5391b2ef8d10e89f77260a18440e88e25","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ff8d87d5391b2ef8d10e89f77260a18440e88e25","distinct":true,"message":"Test NamedUser.create_gist withour description"},{"sha":"36574ded89738a81f47f415017ba880d0cad839b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/36574ded89738a81f47f415017ba880d0cad839b","distinct":true,"message":"Refactor tests of Repository"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-26T11:25:50Z","id":"1556126182","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"619eae8d51c5988f0d2889fc767fa677438ba95d","size":11,"push_id":80673538,"ref":"refs/heads/topic/RewriteWithGeneratedCode","commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"},{"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","distinct":false,"message":"Merge branch 'develop'"},{"sha":"3a3bf4763192ee1234eb0557628133e06f3dfc76","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3a3bf4763192ee1234eb0557628133e06f3dfc76","distinct":true,"message":"Merge branch 'master' into topic/RewriteWithGeneratedCode\n\nConflicts:\n\tgithub/Github.py\n\tgithub/Requester.py"},{"sha":"608f17794664f61693a3dc05e6056fea8fbef0ff","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/608f17794664f61693a3dc05e6056fea8fbef0ff","distinct":true,"message":"Restore some form of Authorization header in replay data"},{"sha":"2c04b8adbd91d38eef4f0767337ab7a12b2f684b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2c04b8adbd91d38eef4f0767337ab7a12b2f684b","distinct":true,"message":"Allow test without pre-set-up Github"},{"sha":"5b97389988b6fe43e15a079702f6f1671257fb28","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5b97389988b6fe43e15a079702f6f1671257fb28","distinct":true,"message":"Test three authentication schemes"},{"sha":"12747613c5ec00deccf296b8619ad507f7050475","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/12747613c5ec00deccf296b8619ad507f7050475","distinct":true,"message":"Test Issue.getComments"},{"sha":"2982fa96c5ca75abe717d974d83f9135d664232e","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2982fa96c5ca75abe717d974d83f9135d664232e","distinct":true,"message":"Test the new Repository.full_name attribute"},{"sha":"619eae8d51c5988f0d2889fc767fa677438ba95d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/619eae8d51c5988f0d2889fc767fa677438ba95d","distinct":true,"message":"Improve coverage of AuthenticatedUser"}]},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-26T10:01:39Z","id":"1556114751","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"closed","issue":{"number":29,"created_at":"2012-05-25T11:47:59Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"","comments":0,"title":"Publish version 0.7","updated_at":"2012-05-25T17:32:32Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/29","id":4752048,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":5,"due_on":"2012-05-26T07:00:00Z","created_at":"2012-05-25T11:47:06Z","title":"Version 0.7","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","id":124045,"closed_issues":2,"open_issues":0,"description":"","state":"closed"},"closed_at":"2012-05-25T17:32:32Z","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"labels":[{"name":"Project management","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","color":"444444"}],"html_url":"https://github.com/jacquev6/PyGithub/issues/29","state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T17:32:33Z","id":"1555940993","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"closed","issue":{"number":15,"created_at":"2012-03-13T06:24:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"One would want to use the API without authentication, with login+password, and with OAuth token. Let's cover these use-cases.","comments":1,"title":"Implement all authentication schemes","updated_at":"2012-05-25T17:32:31Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/15","id":3624575,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":5,"due_on":"2012-05-26T07:00:00Z","created_at":"2012-05-25T11:47:06Z","title":"Version 0.7","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","id":124045,"closed_issues":2,"open_issues":0,"description":"","state":"closed"},"closed_at":"2012-05-25T17:32:31Z","labels":[{"name":"Functionalities","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","color":"e102d8"}],"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/issues/15","state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T17:32:33Z","id":"1555940986","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CreateEvent","payload":{"master_branch":"master","ref_type":"tag","ref":"v0.7","description":"Python library implementing the full Github API v3"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T17:19:48Z","id":"1555936661","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"DeleteEvent","payload":{"ref_type":"branch","ref":"topic/Authentication"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T17:19:48Z","id":"1555936660","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","size":4,"push_id":80573368,"ref":"refs/heads/master","commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"},{"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","distinct":true,"message":"Merge branch 'develop'"}]},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T17:19:48Z","id":"1555936659","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","size":3,"push_id":80573367,"commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"}],"ref":"refs/heads/develop"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T17:19:47Z","id":"1555936657","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CreateEvent","payload":{"master_branch":"master","ref":"topic/Authentication","description":"Python library implementing the full Github API v3","ref_type":"branch"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T12:24:21Z","id":"1555833283","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"opened","issue":{"number":29,"created_at":"2012-05-25T11:47:59Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"","title":"Publish version 0.7","comments":0,"updated_at":"2012-05-25T11:47:59Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/29","id":4752048,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":5,"created_at":"2012-05-25T11:47:06Z","due_on":"2012-05-26T07:00:00Z","title":"Version 0.7","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","id":124045,"open_issues":2,"closed_issues":0,"description":"","state":"open"},"closed_at":null,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/issues/29","labels":[{"name":"Project management","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","color":"444444"}],"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T12:02:48Z","id":"1555822981","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-25T06:31:42Z","body":"It means that there will be three ways to create an instance of the Github class:\n github = Github()\n github = Github( login, password )\n github = Github( oauth_token )\n","updated_at":"2012-05-25T06:31:42Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5924198","id":5924198,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},"action":"created","issue":{"number":15,"created_at":"2012-03-13T06:24:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"comments":1,"body":"One would want to use the API without authentication, with login+password, and with OAuth token. Let's cover these use-cases.","title":"Implement all authentication schemes","updated_at":"2012-05-25T06:31:42Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/15","id":3624575,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":null,"closed_at":null,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"labels":[{"name":"Functionalities","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","color":"e102d8"}],"html_url":"https://github.com/jacquev6/PyGithub/issues/15","state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T06:31:42Z","id":"1555742639","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"WatchEvent","payload":{"action":"started"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T06:05:21Z","id":"1555738288","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"527ce7459a2e60d1536883f19b9bc6850d71127b","size":5,"push_id":79877715,"commits":[{"sha":"287bc541542f9d32339e7dd4b36a511cab2ebdae","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/287bc541542f9d32339e7dd4b36a511cab2ebdae","distinct":true,"message":"Generate more coverage information"},{"sha":"588a4a9a355096c00a2bb25f27664d2115e120ac","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/588a4a9a355096c00a2bb25f27664d2115e120ac","distinct":true,"message":"Test AuthenticatedUser watching"},{"sha":"815720f0deb376c34166c27b6e3b73e5c1f5b1a3","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/815720f0deb376c34166c27b6e3b73e5c1f5b1a3","distinct":true,"message":"Test Authorization"},{"sha":"473c92adcd8bbbd32003d9c65666ede66059551b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/473c92adcd8bbbd32003d9c65666ede66059551b","distinct":true,"message":"Test Download and CommitComment"},{"sha":"527ce7459a2e60d1536883f19b9bc6850d71127b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/527ce7459a2e60d1536883f19b9bc6850d71127b","distinct":true,"message":"Merge commit 'c93f9cc8484b7' into topic/RewriteWithGeneratedCode\n\nConflicts:\n\ttest/IntegrationTest.py"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T19:59:48Z","id":"1554729420","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"DownloadEvent","payload":{"download":{"name":"Foobar.txt","size":1024,"created_at":"2012-05-22T19:15:29Z","content_type":"text/plain","download_count":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/242562","id":242562,"description":null,"html_url":"https://github.com/downloads/jacquev6/PyGithub/Foobar.txt"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T19:15:30Z","id":"1554712197","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"DownloadEvent","payload":{"download":{"name":"Foobar.txt","size":1024,"created_at":"2012-05-22T19:11:49Z","content_type":"text/richtext","download_count":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/242556","id":242556,"description":"Download created by PyGithub","html_url":"https://github.com/downloads/jacquev6/PyGithub/Foobar.txt"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T19:11:49Z","id":"1554710791","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"DownloadEvent","payload":{"download":{"name":"Foobar.txt","created_at":"2012-05-22T18:58:32Z","size":1024,"content_type":"text/plain","url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/242550","download_count":0,"id":242550,"description":null,"html_url":"https://github.com/downloads/jacquev6/PyGithub/Foobar.txt"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T18:58:32Z","id":"1554705673","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":19,"created_at":"2012-05-22T18:53:25Z","line":211,"body":"Foobar","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:53:25Z","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1362020","id":1362020,"path":"src/github/AuthenticatedUser.py","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362020","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T18:53:25Z","id":"1554703698","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":3,"created_at":"2012-05-22T18:50:02Z","line":null,"body":"Comment also created by PyGithub","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:50:02Z","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1362001","id":1362001,"path":"codegen/templates/GithubObject.MethodBody.UseResult.py","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362001","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T18:50:02Z","id":"1554702296","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":null,"created_at":"2012-05-22T18:49:34Z","line":26,"body":"Comment created by PyGithub","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:49:34Z","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1362000","id":1362000,"path":"codegen/templates/GithubObject.MethodBody.UseResult.py","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362000","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T18:49:34Z","id":"1554702087","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":null,"created_at":"2012-05-22T18:40:18Z","body":"Comment created by PyGithub","line":null,"commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:40:18Z","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1361949","id":1361949,"path":null,"html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1361949","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T18:40:18Z","id":"1554698320","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}] +[('status', '200 OK'), ('x-ratelimit-remaining', '4965'), ('content-length', '44412'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"a0d405b3f385bd0d26640c75b50c95dd"'), ('date', 'Sun, 27 May 2012 06:57:59 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"type":"DownloadEvent","payload":{"download":{"name":"Hook.py","size":1024,"created_at":"2012-05-27T06:54:54Z","content_type":".py","url":"https://api.github.com/repos/PyGithub/PyGithub/downloads/245143","download_count":0,"id":245143,"description":"","html_url":"https://github.com/downloads/PyGithub/PyGithub/Hook.py"}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-27T06:54:55Z","id":"1556239111","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"DownloadEvent","payload":{"download":{"name":"htmlcov.zip","size":258048,"created_at":"2012-05-27T06:53:47Z","content_type":".zip","download_count":0,"url":"https://api.github.com/repos/PyGithub/PyGithub/downloads/245142","id":245142,"description":"","html_url":"https://github.com/downloads/PyGithub/PyGithub/htmlcov.zip"}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-27T06:53:48Z","id":"1556239049","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"956279094a7383b6a8f00c93770ed02ca711f8e5","size":4,"push_id":80734053,"ref":"refs/heads/topic/RewriteWithGeneratedCode","commits":[{"sha":"8cb3e63e80f3ab741ca580eed791a85fb4e1b968","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8cb3e63e80f3ab741ca580eed791a85fb4e1b968","distinct":true,"message":"Test Team"},{"sha":"e7fe18b7dd3daa03a6ebb7f83a4f100c0f68e96b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e7fe18b7dd3daa03a6ebb7f83a4f100c0f68e96b","distinct":true,"message":"Test Organization members"},{"sha":"4169010f17cf66a9f1e43e476115485ed7cda90c","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4169010f17cf66a9f1e43e476115485ed7cda90c","distinct":true,"message":"Improve coverage of Organization"},{"sha":"956279094a7383b6a8f00c93770ed02ca711f8e5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/956279094a7383b6a8f00c93770ed02ca711f8e5","distinct":true,"message":"Test Repository.create_git_*"}]},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-27T06:00:30Z","id":"1556235497","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"opened","issue":{"number":30,"created_at":"2012-05-27T05:40:15Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Body created by PyGithub","comments":0,"title":"Issue also created by PyGithub","updated_at":"2012-05-27T05:40:15Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","id":4769659,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":2,"due_on":"2012-06-04T07:00:00Z","created_at":"2012-03-08T12:22:28Z","title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","id":93547,"open_issues":10,"closed_issues":2,"description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","state":"open"},"closed_at":null,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"html_url":"https://github.com/PyGithub/PyGithub/issues/30","labels":[{"name":"Question","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","color":"02e10c"}],"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-27T05:40:15Z","id":"1556234207","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"MemberEvent","payload":{"action":"added","member":{"gravatar_id":"1517ed584458ccf83e03f5d77d9699d7","avatar_url":"https://secure.gravatar.com/avatar/1517ed584458ccf83e03f5d77d9699d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/Lyloa","id":1131432,"login":"Lyloa"}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-27T05:34:29Z","id":"1556233923","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"MemberEvent","payload":{"action":"added","member":{"gravatar_id":"1517ed584458ccf83e03f5d77d9699d7","avatar_url":"https://secure.gravatar.com/avatar/1517ed584458ccf83e03f5d77d9699d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/Lyloa","id":1131432,"login":"Lyloa"}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-27T05:33:44Z","id":"1556233882","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"ForkEvent","payload":{"forkee":{"name":"PyGithub","size":348,"has_wiki":false,"created_at":"2012-05-27T05:23:17Z","clone_url":"https://github.com/BeaverSoftware/PyGithub.git","public":true,"watchers":1,"private":false,"updated_at":"2012-05-27T05:23:18Z","git_url":"git://github.com/BeaverSoftware/PyGithub.git","fork":true,"language":"Python","url":"https://api.github.com/repos/BeaverSoftware/PyGithub","ssh_url":"git@github.com:BeaverSoftware/PyGithub.git","id":4460027,"svn_url":"https://github.com/BeaverSoftware/PyGithub","pushed_at":"2012-05-26T20:54:13Z","has_downloads":true,"mirror_url":null,"open_issues":0,"full_name":"BeaverSoftware/PyGithub","has_issues":false,"homepage":"http://vincent-jacques.net/PyGithub","description":"Python library implementing the full Github API v3","forks":0,"html_url":"https://github.com/BeaverSoftware/PyGithub","owner":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware"}}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-27T05:23:18Z","id":"1556233222","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware"}},{"type":"PushEvent","payload":{"head":"a39af6a0aae16a923f7be48a70fe1095b17280d2","size":2,"push_id":80709334,"commits":[{"sha":"60fb7a8ef56f46d3fe9ce6d008e6b58238a71d29","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/60fb7a8ef56f46d3fe9ce6d008e6b58238a71d29","distinct":true,"message":"Heavy refactoring of integration tests"},{"sha":"a39af6a0aae16a923f7be48a70fe1095b17280d2","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a39af6a0aae16a923f7be48a70fe1095b17280d2","distinct":true,"message":"Improve test coverage"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-26T20:54:15Z","id":"1556182773","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"WatchEvent","payload":{"action":"started"},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-26T18:33:42Z","id":"1556168218","actor":{"gravatar_id":"1689abbd998128dbb3658698b429b022","avatar_url":"https://secure.gravatar.com/avatar/1689abbd998128dbb3658698b429b022?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/michaelpedersen","id":22974,"login":"michaelpedersen"}},{"type":"IssuesEvent","payload":{"action":"closed","issue":{"number":28,"created_at":"2012-05-19T10:38:23Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Body edited by PyGithub","title":"Issue created by PyGithub","comments":0,"updated_at":"2012-05-26T14:59:33Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","id":4653757,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":1,"created_at":"2012-03-08T12:22:10Z","due_on":"2012-03-13T07:00:00Z","title":"Version 0.4","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/1","id":93546,"open_issues":0,"closed_issues":3,"description":"","state":"closed"},"closed_at":"2012-05-26T14:59:33Z","html_url":"https://github.com/PyGithub/PyGithub/issues/28","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"labels":[{"name":"Bug","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","color":"e10c02"},{"name":"Project management","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","color":"444444"},{"name":"Question","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","color":"02e10c"}],"state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-26T14:59:34Z","id":"1556145515","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"36574ded89738a81f47f415017ba880d0cad839b","size":5,"push_id":80677260,"commits":[{"sha":"95cd6c507bdfbf3700a31bafbe26f72a1d684be1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/95cd6c507bdfbf3700a31bafbe26f72a1d684be1","distinct":true,"message":"Use setUp in test for NamedUser"},{"sha":"386bcde55e1744fa888b034d34ad9f167595d2cf","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/386bcde55e1744fa888b034d34ad9f167595d2cf","distinct":true,"message":"Refactor tests of NamedUser"},{"sha":"1b3ca70ebe8724ab7d0d6ba9c8b20853a018eeec","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1b3ca70ebe8724ab7d0d6ba9c8b20853a018eeec","distinct":true,"message":"Restore coverage of Event"},{"sha":"ff8d87d5391b2ef8d10e89f77260a18440e88e25","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ff8d87d5391b2ef8d10e89f77260a18440e88e25","distinct":true,"message":"Test NamedUser.create_gist withour description"},{"sha":"36574ded89738a81f47f415017ba880d0cad839b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/36574ded89738a81f47f415017ba880d0cad839b","distinct":true,"message":"Refactor tests of Repository"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-26T11:25:50Z","id":"1556126182","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"619eae8d51c5988f0d2889fc767fa677438ba95d","size":11,"push_id":80673538,"ref":"refs/heads/topic/RewriteWithGeneratedCode","commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"},{"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","distinct":false,"message":"Merge branch 'develop'"},{"sha":"3a3bf4763192ee1234eb0557628133e06f3dfc76","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/3a3bf4763192ee1234eb0557628133e06f3dfc76","distinct":true,"message":"Merge branch 'master' into topic/RewriteWithGeneratedCode\n\nConflicts:\n\tgithub/Github.py\n\tgithub/Requester.py"},{"sha":"608f17794664f61693a3dc05e6056fea8fbef0ff","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/608f17794664f61693a3dc05e6056fea8fbef0ff","distinct":true,"message":"Restore some form of Authorization header in replay data"},{"sha":"2c04b8adbd91d38eef4f0767337ab7a12b2f684b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2c04b8adbd91d38eef4f0767337ab7a12b2f684b","distinct":true,"message":"Allow test without pre-set-up Github"},{"sha":"5b97389988b6fe43e15a079702f6f1671257fb28","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5b97389988b6fe43e15a079702f6f1671257fb28","distinct":true,"message":"Test three authentication schemes"},{"sha":"12747613c5ec00deccf296b8619ad507f7050475","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/12747613c5ec00deccf296b8619ad507f7050475","distinct":true,"message":"Test Issue.getComments"},{"sha":"2982fa96c5ca75abe717d974d83f9135d664232e","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2982fa96c5ca75abe717d974d83f9135d664232e","distinct":true,"message":"Test the new Repository.full_name attribute"},{"sha":"619eae8d51c5988f0d2889fc767fa677438ba95d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/619eae8d51c5988f0d2889fc767fa677438ba95d","distinct":true,"message":"Improve coverage of AuthenticatedUser"}]},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-26T10:01:39Z","id":"1556114751","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"closed","issue":{"number":29,"created_at":"2012-05-25T11:47:59Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"","comments":0,"title":"Publish version 0.7","updated_at":"2012-05-25T17:32:32Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/29","id":4752048,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":5,"due_on":"2012-05-26T07:00:00Z","created_at":"2012-05-25T11:47:06Z","title":"Version 0.7","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/5","id":124045,"closed_issues":2,"open_issues":0,"description":"","state":"closed"},"closed_at":"2012-05-25T17:32:32Z","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"labels":[{"name":"Project management","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","color":"444444"}],"html_url":"https://github.com/PyGithub/PyGithub/issues/29","state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-25T17:32:33Z","id":"1555940993","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"closed","issue":{"number":15,"created_at":"2012-03-13T06:24:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"One would want to use the API without authentication, with login+password, and with OAuth token. Let's cover these use-cases.","comments":1,"title":"Implement all authentication schemes","updated_at":"2012-05-25T17:32:31Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/15","id":3624575,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":5,"due_on":"2012-05-26T07:00:00Z","created_at":"2012-05-25T11:47:06Z","title":"Version 0.7","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/5","id":124045,"closed_issues":2,"open_issues":0,"description":"","state":"closed"},"closed_at":"2012-05-25T17:32:31Z","labels":[{"name":"Functionalities","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","color":"e102d8"}],"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"html_url":"https://github.com/PyGithub/PyGithub/issues/15","state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-25T17:32:33Z","id":"1555940986","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CreateEvent","payload":{"master_branch":"master","ref_type":"tag","ref":"v0.7","description":"Python library implementing the full Github API v3"},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-25T17:19:48Z","id":"1555936661","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"DeleteEvent","payload":{"ref_type":"branch","ref":"topic/Authentication"},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-25T17:19:48Z","id":"1555936660","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","size":4,"push_id":80573368,"ref":"refs/heads/master","commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"},{"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","distinct":true,"message":"Merge branch 'develop'"}]},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-25T17:19:48Z","id":"1555936659","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","size":3,"push_id":80573367,"commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"}],"ref":"refs/heads/develop"},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-25T17:19:47Z","id":"1555936657","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CreateEvent","payload":{"master_branch":"master","ref":"topic/Authentication","description":"Python library implementing the full Github API v3","ref_type":"branch"},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-25T12:24:21Z","id":"1555833283","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"opened","issue":{"number":29,"created_at":"2012-05-25T11:47:59Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"","title":"Publish version 0.7","comments":0,"updated_at":"2012-05-25T11:47:59Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/29","id":4752048,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":5,"created_at":"2012-05-25T11:47:06Z","due_on":"2012-05-26T07:00:00Z","title":"Version 0.7","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/5","id":124045,"open_issues":2,"closed_issues":0,"description":"","state":"open"},"closed_at":null,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"html_url":"https://github.com/PyGithub/PyGithub/issues/29","labels":[{"name":"Project management","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","color":"444444"}],"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-25T12:02:48Z","id":"1555822981","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-25T06:31:42Z","body":"It means that there will be three ways to create an instance of the Github class:\n github = Github()\n github = Github( login, password )\n github = Github( oauth_token )\n","updated_at":"2012-05-25T06:31:42Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5924198","id":5924198,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},"action":"created","issue":{"number":15,"created_at":"2012-03-13T06:24:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"comments":1,"body":"One would want to use the API without authentication, with login+password, and with OAuth token. Let's cover these use-cases.","title":"Implement all authentication schemes","updated_at":"2012-05-25T06:31:42Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/15","id":3624575,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":null,"closed_at":null,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"labels":[{"name":"Functionalities","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","color":"e102d8"}],"html_url":"https://github.com/PyGithub/PyGithub/issues/15","state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-25T06:31:42Z","id":"1555742639","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"WatchEvent","payload":{"action":"started"},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-25T06:05:21Z","id":"1555738288","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"527ce7459a2e60d1536883f19b9bc6850d71127b","size":5,"push_id":79877715,"commits":[{"sha":"287bc541542f9d32339e7dd4b36a511cab2ebdae","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/287bc541542f9d32339e7dd4b36a511cab2ebdae","distinct":true,"message":"Generate more coverage information"},{"sha":"588a4a9a355096c00a2bb25f27664d2115e120ac","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/588a4a9a355096c00a2bb25f27664d2115e120ac","distinct":true,"message":"Test AuthenticatedUser watching"},{"sha":"815720f0deb376c34166c27b6e3b73e5c1f5b1a3","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/815720f0deb376c34166c27b6e3b73e5c1f5b1a3","distinct":true,"message":"Test Authorization"},{"sha":"473c92adcd8bbbd32003d9c65666ede66059551b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/473c92adcd8bbbd32003d9c65666ede66059551b","distinct":true,"message":"Test Download and CommitComment"},{"sha":"527ce7459a2e60d1536883f19b9bc6850d71127b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/527ce7459a2e60d1536883f19b9bc6850d71127b","distinct":true,"message":"Merge commit 'c93f9cc8484b7' into topic/RewriteWithGeneratedCode\n\nConflicts:\n\ttest/IntegrationTest.py"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-22T19:59:48Z","id":"1554729420","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"DownloadEvent","payload":{"download":{"name":"Foobar.txt","size":1024,"created_at":"2012-05-22T19:15:29Z","content_type":"text/plain","download_count":0,"url":"https://api.github.com/repos/PyGithub/PyGithub/downloads/242562","id":242562,"description":null,"html_url":"https://github.com/downloads/PyGithub/PyGithub/Foobar.txt"}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-22T19:15:30Z","id":"1554712197","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"DownloadEvent","payload":{"download":{"name":"Foobar.txt","size":1024,"created_at":"2012-05-22T19:11:49Z","content_type":"text/richtext","download_count":0,"url":"https://api.github.com/repos/PyGithub/PyGithub/downloads/242556","id":242556,"description":"Download created by PyGithub","html_url":"https://github.com/downloads/PyGithub/PyGithub/Foobar.txt"}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-22T19:11:49Z","id":"1554710791","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"DownloadEvent","payload":{"download":{"name":"Foobar.txt","created_at":"2012-05-22T18:58:32Z","size":1024,"content_type":"text/plain","url":"https://api.github.com/repos/PyGithub/PyGithub/downloads/242550","download_count":0,"id":242550,"description":null,"html_url":"https://github.com/downloads/PyGithub/PyGithub/Foobar.txt"}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-22T18:58:32Z","id":"1554705673","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":19,"created_at":"2012-05-22T18:53:25Z","line":211,"body":"Foobar","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:53:25Z","url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1362020","id":1362020,"path":"src/github/AuthenticatedUser.py","html_url":"https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362020","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-22T18:53:25Z","id":"1554703698","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":3,"created_at":"2012-05-22T18:50:02Z","line":null,"body":"Comment also created by PyGithub","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:50:02Z","url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1362001","id":1362001,"path":"codegen/templates/GithubObject.MethodBody.UseResult.py","html_url":"https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362001","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-22T18:50:02Z","id":"1554702296","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":null,"created_at":"2012-05-22T18:49:34Z","line":26,"body":"Comment created by PyGithub","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:49:34Z","url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1362000","id":1362000,"path":"codegen/templates/GithubObject.MethodBody.UseResult.py","html_url":"https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362000","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-22T18:49:34Z","id":"1554702087","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":null,"created_at":"2012-05-22T18:40:18Z","body":"Comment created by PyGithub","line":null,"commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:40:18Z","url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1361949","id":1361949,"path":null,"html_url":"https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1361949","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/PyGithub/PyGithub","id":3544490,"name":"PyGithub/PyGithub"},"created_at":"2012-05-22T18:40:18Z","id":"1554698320","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}] diff --git a/tests/ReplayData/Repository.testGetForks.txt b/tests/ReplayData/Repository.testGetForks.txt index 23c71cfb32..d4c084d290 100644 --- a/tests/ReplayData/Repository.testGetForks.txt +++ b/tests/ReplayData/Repository.testGetForks.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/forks +/repos/PyGithub/PyGithub/forks {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testGetGitRef.txt b/tests/ReplayData/Repository.testGetGitRef.txt index 45e68b5bb9..5644370f91 100644 --- a/tests/ReplayData/Repository.testGetGitRef.txt +++ b/tests/ReplayData/Repository.testGetGitRef.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/git/refs/heads/master +/repos/PyGithub/PyGithub/git/refs/heads/master {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '288'), ('server', 'nginx'), ('last-modified', 'Sun, 28 Oct 2012 01:48:38 GMT'), ('connection', 'keep-alive'), ('etag', '"d7478b9ae7e3c0de496ede43edd2fdfc"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sun, 28 Oct 2012 08:58:25 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/heads/master","object":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/31110327ec45f3138e58ed247b2cf420fee481ec","type":"commit","sha":"31110327ec45f3138e58ed247b2cf420fee481ec"},"ref":"refs/heads/master"} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs/heads/master","object":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/31110327ec45f3138e58ed247b2cf420fee481ec","type":"commit","sha":"31110327ec45f3138e58ed247b2cf420fee481ec"},"ref":"refs/heads/master"} diff --git a/tests/ReplayData/Repository.testGetGitRefWithIssue102Reverted.txt b/tests/ReplayData/Repository.testGetGitRefWithIssue102Reverted.txt index 45e68b5bb9..5644370f91 100644 --- a/tests/ReplayData/Repository.testGetGitRefWithIssue102Reverted.txt +++ b/tests/ReplayData/Repository.testGetGitRefWithIssue102Reverted.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/git/refs/heads/master +/repos/PyGithub/PyGithub/git/refs/heads/master {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '288'), ('server', 'nginx'), ('last-modified', 'Sun, 28 Oct 2012 01:48:38 GMT'), ('connection', 'keep-alive'), ('etag', '"d7478b9ae7e3c0de496ede43edd2fdfc"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sun, 28 Oct 2012 08:58:25 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/heads/master","object":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/31110327ec45f3138e58ed247b2cf420fee481ec","type":"commit","sha":"31110327ec45f3138e58ed247b2cf420fee481ec"},"ref":"refs/heads/master"} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs/heads/master","object":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/31110327ec45f3138e58ed247b2cf420fee481ec","type":"commit","sha":"31110327ec45f3138e58ed247b2cf420fee481ec"},"ref":"refs/heads/master"} diff --git a/tests/ReplayData/Repository.testGetGitRefs.txt b/tests/ReplayData/Repository.testGetGitRefs.txt index 01c68899af..2d441b7d9f 100644 --- a/tests/ReplayData/Repository.testGetGitRefs.txt +++ b/tests/ReplayData/Repository.testGetGitRefs.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/git/refs +/repos/PyGithub/PyGithub/git/refs {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4956'), ('content-length', '3176'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"85c62d1ec1ea8966569c391d802d4f3f"'), ('date', 'Sun, 27 May 2012 07:00:43 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"ref":"refs/heads/develop","url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/heads/develop","object":{"type":"commit","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16"}},{"ref":"refs/heads/master","url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/heads/master","object":{"type":"commit","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"}},{"ref":"refs/heads/topic/DependencyGraph","url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/heads/topic/DependencyGraph","object":{"type":"commit","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/05157f11f29a3ac057e35d2487880c5d08bd69af","sha":"05157f11f29a3ac057e35d2487880c5d08bd69af"}},{"ref":"refs/heads/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/heads/topic/RewriteWithGeneratedCode","object":{"type":"commit","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/956279094a7383b6a8f00c93770ed02ca711f8e5","sha":"956279094a7383b6a8f00c93770ed02ca711f8e5"}},{"ref":"refs/tags/v0.1","url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/tags/v0.1","object":{"type":"tag","url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags/fc28301862c0118b88cc94da678fb5104b249370","sha":"fc28301862c0118b88cc94da678fb5104b249370"}},{"ref":"refs/tags/v0.2","url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/tags/v0.2","object":{"type":"tag","url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags/48cabc0fc3b1a9767d6f0db9f6058f24681cada7","sha":"48cabc0fc3b1a9767d6f0db9f6058f24681cada7"}},{"ref":"refs/tags/v0.3","url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/tags/v0.3","object":{"type":"tag","url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags/4870747f5faf15ba38ece8211283ef87b25679c1","sha":"4870747f5faf15ba38ece8211283ef87b25679c1"}},{"ref":"refs/tags/v0.4","url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/tags/v0.4","object":{"type":"tag","url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags/26fb28983636cb4773acb5581f4a443cd0aef808","sha":"26fb28983636cb4773acb5581f4a443cd0aef808"}},{"ref":"refs/tags/v0.5","url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/tags/v0.5","object":{"type":"tag","url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags/c88b802b71cf19cfbc2e915dbb8a0e98f235a926","sha":"c88b802b71cf19cfbc2e915dbb8a0e98f235a926"}},{"ref":"refs/tags/v0.6","url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/tags/v0.6","object":{"type":"tag","url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags/f5f37322407b02a80de4526ad88d5f188977bc3c","sha":"f5f37322407b02a80de4526ad88d5f188977bc3c"}},{"ref":"refs/tags/v0.7","url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/tags/v0.7","object":{"type":"tag","url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags/78ca479ac54294dabd16a6644bbe5e013fabf183","sha":"78ca479ac54294dabd16a6644bbe5e013fabf183"}}] +[{"ref":"refs/heads/develop","url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs/heads/develop","object":{"type":"commit","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16"}},{"ref":"refs/heads/master","url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs/heads/master","object":{"type":"commit","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"}},{"ref":"refs/heads/topic/DependencyGraph","url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs/heads/topic/DependencyGraph","object":{"type":"commit","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/05157f11f29a3ac057e35d2487880c5d08bd69af","sha":"05157f11f29a3ac057e35d2487880c5d08bd69af"}},{"ref":"refs/heads/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs/heads/topic/RewriteWithGeneratedCode","object":{"type":"commit","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/956279094a7383b6a8f00c93770ed02ca711f8e5","sha":"956279094a7383b6a8f00c93770ed02ca711f8e5"}},{"ref":"refs/tags/v0.1","url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs/tags/v0.1","object":{"type":"tag","url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags/fc28301862c0118b88cc94da678fb5104b249370","sha":"fc28301862c0118b88cc94da678fb5104b249370"}},{"ref":"refs/tags/v0.2","url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs/tags/v0.2","object":{"type":"tag","url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags/48cabc0fc3b1a9767d6f0db9f6058f24681cada7","sha":"48cabc0fc3b1a9767d6f0db9f6058f24681cada7"}},{"ref":"refs/tags/v0.3","url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs/tags/v0.3","object":{"type":"tag","url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags/4870747f5faf15ba38ece8211283ef87b25679c1","sha":"4870747f5faf15ba38ece8211283ef87b25679c1"}},{"ref":"refs/tags/v0.4","url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs/tags/v0.4","object":{"type":"tag","url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags/26fb28983636cb4773acb5581f4a443cd0aef808","sha":"26fb28983636cb4773acb5581f4a443cd0aef808"}},{"ref":"refs/tags/v0.5","url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs/tags/v0.5","object":{"type":"tag","url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags/c88b802b71cf19cfbc2e915dbb8a0e98f235a926","sha":"c88b802b71cf19cfbc2e915dbb8a0e98f235a926"}},{"ref":"refs/tags/v0.6","url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs/tags/v0.6","object":{"type":"tag","url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags/f5f37322407b02a80de4526ad88d5f188977bc3c","sha":"f5f37322407b02a80de4526ad88d5f188977bc3c"}},{"ref":"refs/tags/v0.7","url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs/tags/v0.7","object":{"type":"tag","url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags/78ca479ac54294dabd16a6644bbe5e013fabf183","sha":"78ca479ac54294dabd16a6644bbe5e013fabf183"}}] diff --git a/tests/ReplayData/Repository.testGetGitTreeWithRecursive.txt b/tests/ReplayData/Repository.testGetGitTreeWithRecursive.txt index 7ca45f7467..c94184fc8a 100644 --- a/tests/ReplayData/Repository.testGetGitTreeWithRecursive.txt +++ b/tests/ReplayData/Repository.testGetGitTreeWithRecursive.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad?recursive=1 +/repos/PyGithub/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad?recursive=1 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('content-length', '22154'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c20355ebfacf97b7c3b8809da473b6be"'), ('date', 'Tue, 29 May 2012 17:50:12 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad","sha":"f492784d8ca837779650d1fb406a1a3587a764ad","tree":[{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/8a9af1462c3f4e3358315c2d2e6ef1e7334c59dd","size":53,"path":".gitignore","sha":"8a9af1462c3f4e3358315c2d2e6ef1e7334c59dd","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/7863d93a3ef3700fd05d2e0e6b9c1b5161c4572b","size":1832,"path":"Design.md","sha":"7863d93a3ef3700fd05d2e0e6b9c1b5161c4572b","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/82be8f1b97c4cfb005ad9ce8b8215c2f71470630","size":28643,"path":"IntegrationTest.py","sha":"82be8f1b97c4cfb005ad9ce8b8215c2f71470630","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/8da6802f0b9d4acd1945440053dfd6be3ee80c95","size":3153,"path":"ReadMe.md","sha":"8da6802f0b9d4acd1945440053dfd6be3ee80c95","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/3ee24565835d6a352e0ce37b1f2413572f55e368","size":12687,"path":"ReferenceOfApis.md","sha":"3ee24565835d6a352e0ce37b1f2413572f55e368","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/af9d09559eb6dae86af23b81e6ddcebfa4dc37e6","size":15967,"path":"ReferenceOfClasses.md","sha":"af9d09559eb6dae86af23b81e6ddcebfa4dc37e6","mode":"100644"},{"type":"tree","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/60b4602b2c2070246c5df078fb7a5150b45815eb","path":"ReplayDataForIntegrationTest","sha":"60b4602b2c2070246c5df078fb7a5150b45815eb","mode":"040000"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/899acba9e6519909e8f518c93b3775a656359386","size":609,"path":"ReplayDataForIntegrationTest/AuthenticatedUserDetails.txt","sha":"899acba9e6519909e8f518c93b3775a656359386","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/e768d406b775a852e46fc54cb6924c7f37f6b7bd","size":7158,"path":"ReplayDataForIntegrationTest/Colaborators.txt","sha":"e768d406b775a852e46fc54cb6924c7f37f6b7bd","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/291ed44bf7e03cd9b6f02af19499589e54b7398a","size":23895,"path":"ReplayDataForIntegrationTest/CommentCommit.txt","sha":"291ed44bf7e03cd9b6f02af19499589e54b7398a","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/7abd0442ccde81422bf9967e655dd0e28092d909","size":7638,"path":"ReplayDataForIntegrationTest/CreateForkForOrganization.txt","sha":"7abd0442ccde81422bf9967e655dd0e28092d909","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/6e61fd654124629b0ff2b1f6de97ff8fe486870f","size":9063,"path":"ReplayDataForIntegrationTest/CreateRepoForOrganization.txt","sha":"6e61fd654124629b0ff2b1f6de97ff8fe486870f","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/cb671f517ba3c8002ecb2f7336ce180f60c2e99b","size":47473,"path":"ReplayDataForIntegrationTest/CreateRepoForUser.txt","sha":"cb671f517ba3c8002ecb2f7336ce180f60c2e99b","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/b4171942210f47faddba6df980d64bd8e2072cb5","size":6762,"path":"ReplayDataForIntegrationTest/Downloads.txt","sha":"b4171942210f47faddba6df980d64bd8e2072cb5","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/9ec888931dda43e8e88f33f70cdc0a95992f021d","size":3521,"path":"ReplayDataForIntegrationTest/EditAuthenticatedUser.txt","sha":"9ec888931dda43e8e88f33f70cdc0a95992f021d","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/f60c63a9ee01455d98173b943c309bd8ca0c358d","size":3283,"path":"ReplayDataForIntegrationTest/EditOrganization.txt","sha":"f60c63a9ee01455d98173b943c309bd8ca0c358d","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/fe947fcec0a35994498b2b0517fbba01becafafc","size":24634,"path":"ReplayDataForIntegrationTest/EditOrganizationTeamAndMembers.txt","sha":"fe947fcec0a35994498b2b0517fbba01becafafc","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/78fdccde664076fc363446ee2dd18d4f08d19e24","size":2034,"path":"ReplayDataForIntegrationTest/Emails.txt","sha":"78fdccde664076fc363446ee2dd18d4f08d19e24","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/53d65d31fc057de4d0fc62668ca695ea690463b7","size":830522,"path":"ReplayDataForIntegrationTest/Events.txt","sha":"53d65d31fc057de4d0fc62668ca695ea690463b7","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/193f10c7d2d8b29de1d430f6665ebec492f7bc03","size":13489,"path":"ReplayDataForIntegrationTest/Follow.txt","sha":"193f10c7d2d8b29de1d430f6665ebec492f7bc03","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/355cfac1f2b53d6dd09bc861f982e7380ab7ea6c","size":39318,"path":"ReplayDataForIntegrationTest/Gists.txt","sha":"355cfac1f2b53d6dd09bc861f982e7380ab7ea6c","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/b18abe6bda1a8d5690effc4709ca2284c0ba3fce","size":274113,"path":"ReplayDataForIntegrationTest/GistsAll.txt","sha":"b18abe6bda1a8d5690effc4709ca2284c0ba3fce","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/b8ff613ae927823bb6aa0b0430e0131626353493","size":17052,"path":"ReplayDataForIntegrationTest/GitObjects.txt","sha":"b8ff613ae927823bb6aa0b0430e0131626353493","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/be345cdb76780a84fdb0f7a8e9d4f92d93730b44","size":10297,"path":"ReplayDataForIntegrationTest/GitObjectsAlternative.txt","sha":"be345cdb76780a84fdb0f7a8e9d4f92d93730b44","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/bf0471641650dcf92d33bc6aafd7307b8c43b652","size":7486,"path":"ReplayDataForIntegrationTest/Hooks.txt","sha":"bf0471641650dcf92d33bc6aafd7307b8c43b652","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/1631b78249fcdde37c5bc54832c202372ebcc0d6","size":60086,"path":"ReplayDataForIntegrationTest/IssuesAndMilestones.txt","sha":"1631b78249fcdde37c5bc54832c202372ebcc0d6","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/40e23bcc3d16a3f409ded8487d526ce019f14cba","size":23825,"path":"ReplayDataForIntegrationTest/IssuesForAuthenticatedUser.txt","sha":"40e23bcc3d16a3f409ded8487d526ce019f14cba","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/119acdad17754f2b806f8f2a236152d5e2738072","size":12513,"path":"ReplayDataForIntegrationTest/Keys.txt","sha":"119acdad17754f2b806f8f2a236152d5e2738072","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/5fb50bcb8c87b2edcf8e3f700483533f67ba63fa","size":8501,"path":"ReplayDataForIntegrationTest/MergePullRequest.txt","sha":"5fb50bcb8c87b2edcf8e3f700483533f67ba63fa","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/e2bb418a947baf51f5a726c81dc12849d8e57401","size":65016,"path":"ReplayDataForIntegrationTest/NamedUserDetails.txt","sha":"e2bb418a947baf51f5a726c81dc12849d8e57401","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/d37e86574b55beedca277dc67f591ce1ad677950","size":877,"path":"ReplayDataForIntegrationTest/OrganizationDetails.txt","sha":"d37e86574b55beedca277dc67f591ce1ad677950","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/a0d497fb5819e66685d5506ca091ca626cd8cc9b","size":41292,"path":"ReplayDataForIntegrationTest/PullRequest.txt","sha":"a0d497fb5819e66685d5506ca091ca626cd8cc9b","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/8d3c8098592470fca5ae07a1edf271fcf2682268","size":160243,"path":"ReplayDataForIntegrationTest/RepositoryCompare.txt","sha":"8d3c8098592470fca5ae07a1edf271fcf2682268","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/04c0eae1a45e1f74085a5bb566f3ac022afc7653","size":26507,"path":"ReplayDataForIntegrationTest/RepositoryDetails.txt","sha":"04c0eae1a45e1f74085a5bb566f3ac022afc7653","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/0fa34785c12f0969f8a6862531dbf9e9ee0a32a1","size":8833,"path":"ReplayDataForIntegrationTest/RepositoryKeys.txt","sha":"0fa34785c12f0969f8a6862531dbf9e9ee0a32a1","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/f294af3d6284498ed413ed56d0ede0635acd1e96","size":31556,"path":"ReplayDataForIntegrationTest/Watch.txt","sha":"f294af3d6284498ed413ed56d0ede0635acd1e96","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/61cfa6bc84a562c134770b1e10445e7b810dbc26","size":320,"path":"RoadMap.md","sha":"61cfa6bc84a562c134770b1e10445e7b810dbc26","mode":"100644"},{"type":"tree","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/929f19535e74d80fb117aa021742ce2556ddc9a2","path":"github","sha":"929f19535e74d80fb117aa021742ce2556ddc9a2","mode":"040000"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/c05b41fe0f526f0d92a00381860c5005d8910218","size":2251,"path":"github/GenerateReferenceOfApis.py","sha":"c05b41fe0f526f0d92a00381860c5005d8910218","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/c7c328b2e79ad79b3188da87f2458278b4df370e","size":751,"path":"github/GenerateReferenceOfClasses.py","sha":"c7c328b2e79ad79b3188da87f2458278b4df370e","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/73d750640226cc5c80141101578adf2159056431","size":7848,"path":"github/Github.UnitTest.py","sha":"73d750640226cc5c80141101578adf2159056431","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/e6373d6ea2c02bdf37e9b26fc7f7b08db9f011b8","size":1281,"path":"github/Github.py","sha":"e6373d6ea2c02bdf37e9b26fc7f7b08db9f011b8","mode":"100644"},{"type":"tree","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/1a549caa38bde6661f0b9d881a5d765c633c1992","path":"github/GithubObjects","sha":"1a549caa38bde6661f0b9d881a5d765c633c1992","mode":"040000"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/22d7121fb27e682e09bc670c29ac981e3cb62a7e","size":4049,"path":"github/GithubObjects/AuthenticatedUser.py","sha":"22d7121fb27e682e09bc670c29ac981e3cb62a7e","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/2316041bf8880725effc3ce8c8c2b7cf8db11cee","size":400,"path":"github/GithubObjects/Authorization.py","sha":"2316041bf8880725effc3ce8c8c2b7cf8db11cee","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/30fbebc5e728fa98337221da0c155227662362d7","size":179,"path":"github/GithubObjects/Branch.py","sha":"30fbebc5e728fa98337221da0c155227662362d7","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/3a990227a4fcb71ae3d32fe2af24d249edf8150d","size":884,"path":"github/GithubObjects/Commit.py","sha":"3a990227a4fcb71ae3d32fe2af24d249edf8150d","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/5bb931084bfbe9f76bd70ac630f7528393c77a23","size":443,"path":"github/GithubObjects/CommitComment.py","sha":"5bb931084bfbe9f76bd70ac630f7528393c77a23","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/a4577f31e2753b88d104d9f252883655ed617211","size":485,"path":"github/GithubObjects/Download.py","sha":"a4577f31e2753b88d104d9f252883655ed617211","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/1cdb4e961f76bca3371ce524fd8f19d18977c060","size":407,"path":"github/GithubObjects/Event.py","sha":"1cdb4e961f76bca3371ce524fd8f19d18977c060","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/771c33f701ab4d5a2a7ff0b6a64bb82b4467da59","size":1755,"path":"github/GithubObjects/Gist.py","sha":"771c33f701ab4d5a2a7ff0b6a64bb82b4467da59","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/4fc4c442cc6bdb1f2323b6f0195518e3549d53ec","size":352,"path":"github/GithubObjects/GistComment.py","sha":"4fc4c442cc6bdb1f2323b6f0195518e3549d53ec","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/607429faac7285ffaf30f42e9e3d2498f9dce199","size":259,"path":"github/GithubObjects/GitBlob.py","sha":"607429faac7285ffaf30f42e9e3d2498f9dce199","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/c9aa31c2047c9e18d092cdb8362b0872a4c858da","size":330,"path":"github/GithubObjects/GitCommit.py","sha":"c9aa31c2047c9e18d092cdb8362b0872a4c858da","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/f242e173e74399387fec3e65311ed1b4d9307795","size":301,"path":"github/GithubObjects/GitRef.py","sha":"f242e173e74399387fec3e65311ed1b4d9307795","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/9248ea6195629a87a603bc2a960c5a88da50c7aa","size":279,"path":"github/GithubObjects/GitTag.py","sha":"9248ea6195629a87a603bc2a960c5a88da50c7aa","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/61dac784bf2103e9b55e141042efd26da9ebcd3d","size":295,"path":"github/GithubObjects/GitTree.py","sha":"61dac784bf2103e9b55e141042efd26da9ebcd3d","mode":"100644"},{"type":"tree","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/173066f1477e24afa2ffd4cb9ceedb2531256837","path":"github/GithubObjects/GithubObject","sha":"173066f1477e24afa2ffd4cb9ceedb2531256837","mode":"040000"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/b2c5b054c3587ec60e2873bb269940eb2d09d0fa","size":2121,"path":"github/GithubObjects/GithubObject/ArgumentsChecker.py","sha":"b2c5b054c3587ec60e2873bb269940eb2d09d0fa","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/2702c9f4df72cd9c77e4545081cf7e5511523a0f","size":4111,"path":"github/GithubObjects/GithubObject/Basic.py","sha":"2702c9f4df72cd9c77e4545081cf7e5511523a0f","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/b7a2f794033bcbd3c28ba1e49369a49da5c78a5d","size":24438,"path":"github/GithubObjects/GithubObject/GithubObject.UnitTest.py","sha":"b7a2f794033bcbd3c28ba1e49369a49da5c78a5d","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/72464749e55a17e232841444bcddb48ad81d1b31","size":5179,"path":"github/GithubObjects/GithubObject/GithubObject.py","sha":"72464749e55a17e232841444bcddb48ad81d1b31","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/b4d29b38144d319b1d18f96eb4e9502fa82fd4c6","size":8470,"path":"github/GithubObjects/GithubObject/List.py","sha":"b4d29b38144d319b1d18f96eb4e9502fa82fd4c6","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/a7aeb7372fba85d33239c7d023f779f0d7db81ad","size":921,"path":"github/GithubObjects/GithubObject/TypePolicies.py","sha":"a7aeb7372fba85d33239c7d023f779f0d7db81ad","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/cbc7e4d667044eb16ddbe42d6242857057b5fc4d","size":27,"path":"github/GithubObjects/GithubObject/__init__.py","sha":"cbc7e4d667044eb16ddbe42d6242857057b5fc4d","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/36dc1354a94613fc3a0d785028f9792182a07af8","size":671,"path":"github/GithubObjects/Hook.py","sha":"36dc1354a94613fc3a0d785028f9792182a07af8","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/13c2f05af897f7b1fc5fc789f73757ee1e3731a0","size":1612,"path":"github/GithubObjects/Issue.py","sha":"13c2f05af897f7b1fc5fc789f73757ee1e3731a0","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/fb812b33bb5c3cb7fc65048e191c95d586888434","size":387,"path":"github/GithubObjects/IssueComment.py","sha":"fb812b33bb5c3cb7fc65048e191c95d586888434","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/c5b6fd29765aeefd1113e255c5b58f4fdf7c99e3","size":328,"path":"github/GithubObjects/IssueEvent.py","sha":"c5b6fd29765aeefd1113e255c5b58f4fdf7c99e3","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/aec594f92b8081b93a469c6f7b5c616df5197b6b","size":370,"path":"github/GithubObjects/Label.py","sha":"aec594f92b8081b93a469c6f7b5c616df5197b6b","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/7cd1bc0d6dc6b78d2a98b908de4a607621f30919","size":742,"path":"github/GithubObjects/Milestone.py","sha":"7cd1bc0d6dc6b78d2a98b908de4a607621f30919","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/c460d2f2b4e842a1517f4fd10b338768cccad2a3","size":963,"path":"github/GithubObjects/NamedUser.py","sha":"c460d2f2b4e842a1517f4fd10b338768cccad2a3","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/74c170d10feaace6bfa523224011147627a05df2","size":1968,"path":"github/GithubObjects/NamedUser_complete.py","sha":"74c170d10feaace6bfa523224011147627a05df2","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/3fb7adc168b5ed21c58363a4efe1f195cab3f81d","size":1052,"path":"github/GithubObjects/Organization.py","sha":"3fb7adc168b5ed21c58363a4efe1f195cab3f81d","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/dd1096ae08e979220dd0e4c9faf684c33578f819","size":1290,"path":"github/GithubObjects/Organization_complete.py","sha":"dd1096ae08e979220dd0e4c9faf684c33578f819","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/5ee414d50e9d1ba4ee5c3132904d3f48f21be0b6","size":2045,"path":"github/GithubObjects/PullRequest.py","sha":"5ee414d50e9d1ba4ee5c3132904d3f48f21be0b6","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/ac3cb0d3f33adfc281ca9ef5eaa8b7a45f9cf0f7","size":459,"path":"github/GithubObjects/PullRequestComment.py","sha":"ac3cb0d3f33adfc281ca9ef5eaa8b7a45f9cf0f7","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/d7135d168b80968f5d207c4c14b2a27c46ce3eb7","size":236,"path":"github/GithubObjects/PullRequestFile.py","sha":"d7135d168b80968f5d207c4c14b2a27c46ce3eb7","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/81ce811139f1e108a4c33ae5be07d1c618dc2a1b","size":8064,"path":"github/GithubObjects/Repository.py","sha":"81ce811139f1e108a4c33ae5be07d1c618dc2a1b","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/cea71c017ea61a7a8d39df0077838132c10f743e","size":318,"path":"github/GithubObjects/RepositoryKey.py","sha":"cea71c017ea61a7a8d39df0077838132c10f743e","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/4a9ae6f58fd12b622cdce969648c4b3f293d3242","size":753,"path":"github/GithubObjects/Repository_complete.py","sha":"4a9ae6f58fd12b622cdce969648c4b3f293d3242","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/cd65493dc75482f3000a7df631ba70f2fe2023a6","size":203,"path":"github/GithubObjects/Tag.py","sha":"cd65493dc75482f3000a7df631ba70f2fe2023a6","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/fcd844200ff859b29c892ccffb8bfe124b1af2bd","size":748,"path":"github/GithubObjects/Team.py","sha":"fcd844200ff859b29c892ccffb8bfe124b1af2bd","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/ba912f6accf2030147561fdd9614b152d427d24b","size":272,"path":"github/GithubObjects/UserKey.py","sha":"ba912f6accf2030147561fdd9614b152d427d24b","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/e19884f3141840b495c2c42bcb0708a4a58f7a1f","size":297,"path":"github/GithubObjects/__init__.py","sha":"e19884f3141840b495c2c42bcb0708a4a58f7a1f","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/1901018b6ebb83c70bb8077568177bc213de7ce6","size":3336,"path":"github/Requester.UnitTest.py","sha":"1901018b6ebb83c70bb8077568177bc213de7ce6","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/fac044b85acf5419e36f494de21559871c7fb743","size":2776,"path":"github/Requester.py","sha":"fac044b85acf5419e36f494de21559871c7fb743","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/109d6b9a44f7e489bb5f860da7d76407b2c99a66","size":26,"path":"github/__init__.py","sha":"109d6b9a44f7e489bb5f860da7d76407b2c99a66","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/9532bcaa5fcc0a9d3678b3e4fd05688e32d2a321","size":673,"path":"run_tests.sh","sha":"9532bcaa5fcc0a9d3678b3e4fd05688e32d2a321","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/53bce9fa919b4544e67275089b3ec5b44be20667","size":1295,"path":"setup.py","sha":"53bce9fa919b4544e67275089b3ec5b44be20667","mode":"100644"}]} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad","sha":"f492784d8ca837779650d1fb406a1a3587a764ad","tree":[{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/8a9af1462c3f4e3358315c2d2e6ef1e7334c59dd","size":53,"path":".gitignore","sha":"8a9af1462c3f4e3358315c2d2e6ef1e7334c59dd","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/7863d93a3ef3700fd05d2e0e6b9c1b5161c4572b","size":1832,"path":"Design.md","sha":"7863d93a3ef3700fd05d2e0e6b9c1b5161c4572b","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/82be8f1b97c4cfb005ad9ce8b8215c2f71470630","size":28643,"path":"IntegrationTest.py","sha":"82be8f1b97c4cfb005ad9ce8b8215c2f71470630","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/8da6802f0b9d4acd1945440053dfd6be3ee80c95","size":3153,"path":"ReadMe.md","sha":"8da6802f0b9d4acd1945440053dfd6be3ee80c95","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/3ee24565835d6a352e0ce37b1f2413572f55e368","size":12687,"path":"ReferenceOfApis.md","sha":"3ee24565835d6a352e0ce37b1f2413572f55e368","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/af9d09559eb6dae86af23b81e6ddcebfa4dc37e6","size":15967,"path":"ReferenceOfClasses.md","sha":"af9d09559eb6dae86af23b81e6ddcebfa4dc37e6","mode":"100644"},{"type":"tree","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/60b4602b2c2070246c5df078fb7a5150b45815eb","path":"ReplayDataForIntegrationTest","sha":"60b4602b2c2070246c5df078fb7a5150b45815eb","mode":"040000"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/899acba9e6519909e8f518c93b3775a656359386","size":609,"path":"ReplayDataForIntegrationTest/AuthenticatedUserDetails.txt","sha":"899acba9e6519909e8f518c93b3775a656359386","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/e768d406b775a852e46fc54cb6924c7f37f6b7bd","size":7158,"path":"ReplayDataForIntegrationTest/Colaborators.txt","sha":"e768d406b775a852e46fc54cb6924c7f37f6b7bd","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/291ed44bf7e03cd9b6f02af19499589e54b7398a","size":23895,"path":"ReplayDataForIntegrationTest/CommentCommit.txt","sha":"291ed44bf7e03cd9b6f02af19499589e54b7398a","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/7abd0442ccde81422bf9967e655dd0e28092d909","size":7638,"path":"ReplayDataForIntegrationTest/CreateForkForOrganization.txt","sha":"7abd0442ccde81422bf9967e655dd0e28092d909","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/6e61fd654124629b0ff2b1f6de97ff8fe486870f","size":9063,"path":"ReplayDataForIntegrationTest/CreateRepoForOrganization.txt","sha":"6e61fd654124629b0ff2b1f6de97ff8fe486870f","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/cb671f517ba3c8002ecb2f7336ce180f60c2e99b","size":47473,"path":"ReplayDataForIntegrationTest/CreateRepoForUser.txt","sha":"cb671f517ba3c8002ecb2f7336ce180f60c2e99b","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/b4171942210f47faddba6df980d64bd8e2072cb5","size":6762,"path":"ReplayDataForIntegrationTest/Downloads.txt","sha":"b4171942210f47faddba6df980d64bd8e2072cb5","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/9ec888931dda43e8e88f33f70cdc0a95992f021d","size":3521,"path":"ReplayDataForIntegrationTest/EditAuthenticatedUser.txt","sha":"9ec888931dda43e8e88f33f70cdc0a95992f021d","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/f60c63a9ee01455d98173b943c309bd8ca0c358d","size":3283,"path":"ReplayDataForIntegrationTest/EditOrganization.txt","sha":"f60c63a9ee01455d98173b943c309bd8ca0c358d","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/fe947fcec0a35994498b2b0517fbba01becafafc","size":24634,"path":"ReplayDataForIntegrationTest/EditOrganizationTeamAndMembers.txt","sha":"fe947fcec0a35994498b2b0517fbba01becafafc","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/78fdccde664076fc363446ee2dd18d4f08d19e24","size":2034,"path":"ReplayDataForIntegrationTest/Emails.txt","sha":"78fdccde664076fc363446ee2dd18d4f08d19e24","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/53d65d31fc057de4d0fc62668ca695ea690463b7","size":830522,"path":"ReplayDataForIntegrationTest/Events.txt","sha":"53d65d31fc057de4d0fc62668ca695ea690463b7","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/193f10c7d2d8b29de1d430f6665ebec492f7bc03","size":13489,"path":"ReplayDataForIntegrationTest/Follow.txt","sha":"193f10c7d2d8b29de1d430f6665ebec492f7bc03","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/355cfac1f2b53d6dd09bc861f982e7380ab7ea6c","size":39318,"path":"ReplayDataForIntegrationTest/Gists.txt","sha":"355cfac1f2b53d6dd09bc861f982e7380ab7ea6c","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/b18abe6bda1a8d5690effc4709ca2284c0ba3fce","size":274113,"path":"ReplayDataForIntegrationTest/GistsAll.txt","sha":"b18abe6bda1a8d5690effc4709ca2284c0ba3fce","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/b8ff613ae927823bb6aa0b0430e0131626353493","size":17052,"path":"ReplayDataForIntegrationTest/GitObjects.txt","sha":"b8ff613ae927823bb6aa0b0430e0131626353493","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/be345cdb76780a84fdb0f7a8e9d4f92d93730b44","size":10297,"path":"ReplayDataForIntegrationTest/GitObjectsAlternative.txt","sha":"be345cdb76780a84fdb0f7a8e9d4f92d93730b44","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/bf0471641650dcf92d33bc6aafd7307b8c43b652","size":7486,"path":"ReplayDataForIntegrationTest/Hooks.txt","sha":"bf0471641650dcf92d33bc6aafd7307b8c43b652","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/1631b78249fcdde37c5bc54832c202372ebcc0d6","size":60086,"path":"ReplayDataForIntegrationTest/IssuesAndMilestones.txt","sha":"1631b78249fcdde37c5bc54832c202372ebcc0d6","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/40e23bcc3d16a3f409ded8487d526ce019f14cba","size":23825,"path":"ReplayDataForIntegrationTest/IssuesForAuthenticatedUser.txt","sha":"40e23bcc3d16a3f409ded8487d526ce019f14cba","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/119acdad17754f2b806f8f2a236152d5e2738072","size":12513,"path":"ReplayDataForIntegrationTest/Keys.txt","sha":"119acdad17754f2b806f8f2a236152d5e2738072","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/5fb50bcb8c87b2edcf8e3f700483533f67ba63fa","size":8501,"path":"ReplayDataForIntegrationTest/MergePullRequest.txt","sha":"5fb50bcb8c87b2edcf8e3f700483533f67ba63fa","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/e2bb418a947baf51f5a726c81dc12849d8e57401","size":65016,"path":"ReplayDataForIntegrationTest/NamedUserDetails.txt","sha":"e2bb418a947baf51f5a726c81dc12849d8e57401","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/d37e86574b55beedca277dc67f591ce1ad677950","size":877,"path":"ReplayDataForIntegrationTest/OrganizationDetails.txt","sha":"d37e86574b55beedca277dc67f591ce1ad677950","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/a0d497fb5819e66685d5506ca091ca626cd8cc9b","size":41292,"path":"ReplayDataForIntegrationTest/PullRequest.txt","sha":"a0d497fb5819e66685d5506ca091ca626cd8cc9b","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/8d3c8098592470fca5ae07a1edf271fcf2682268","size":160243,"path":"ReplayDataForIntegrationTest/RepositoryCompare.txt","sha":"8d3c8098592470fca5ae07a1edf271fcf2682268","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/04c0eae1a45e1f74085a5bb566f3ac022afc7653","size":26507,"path":"ReplayDataForIntegrationTest/RepositoryDetails.txt","sha":"04c0eae1a45e1f74085a5bb566f3ac022afc7653","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/0fa34785c12f0969f8a6862531dbf9e9ee0a32a1","size":8833,"path":"ReplayDataForIntegrationTest/RepositoryKeys.txt","sha":"0fa34785c12f0969f8a6862531dbf9e9ee0a32a1","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/f294af3d6284498ed413ed56d0ede0635acd1e96","size":31556,"path":"ReplayDataForIntegrationTest/Watch.txt","sha":"f294af3d6284498ed413ed56d0ede0635acd1e96","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/61cfa6bc84a562c134770b1e10445e7b810dbc26","size":320,"path":"RoadMap.md","sha":"61cfa6bc84a562c134770b1e10445e7b810dbc26","mode":"100644"},{"type":"tree","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/929f19535e74d80fb117aa021742ce2556ddc9a2","path":"github","sha":"929f19535e74d80fb117aa021742ce2556ddc9a2","mode":"040000"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/c05b41fe0f526f0d92a00381860c5005d8910218","size":2251,"path":"github/GenerateReferenceOfApis.py","sha":"c05b41fe0f526f0d92a00381860c5005d8910218","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/c7c328b2e79ad79b3188da87f2458278b4df370e","size":751,"path":"github/GenerateReferenceOfClasses.py","sha":"c7c328b2e79ad79b3188da87f2458278b4df370e","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/73d750640226cc5c80141101578adf2159056431","size":7848,"path":"github/Github.UnitTest.py","sha":"73d750640226cc5c80141101578adf2159056431","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/e6373d6ea2c02bdf37e9b26fc7f7b08db9f011b8","size":1281,"path":"github/Github.py","sha":"e6373d6ea2c02bdf37e9b26fc7f7b08db9f011b8","mode":"100644"},{"type":"tree","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/1a549caa38bde6661f0b9d881a5d765c633c1992","path":"github/GithubObjects","sha":"1a549caa38bde6661f0b9d881a5d765c633c1992","mode":"040000"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/22d7121fb27e682e09bc670c29ac981e3cb62a7e","size":4049,"path":"github/GithubObjects/AuthenticatedUser.py","sha":"22d7121fb27e682e09bc670c29ac981e3cb62a7e","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/2316041bf8880725effc3ce8c8c2b7cf8db11cee","size":400,"path":"github/GithubObjects/Authorization.py","sha":"2316041bf8880725effc3ce8c8c2b7cf8db11cee","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/30fbebc5e728fa98337221da0c155227662362d7","size":179,"path":"github/GithubObjects/Branch.py","sha":"30fbebc5e728fa98337221da0c155227662362d7","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/3a990227a4fcb71ae3d32fe2af24d249edf8150d","size":884,"path":"github/GithubObjects/Commit.py","sha":"3a990227a4fcb71ae3d32fe2af24d249edf8150d","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/5bb931084bfbe9f76bd70ac630f7528393c77a23","size":443,"path":"github/GithubObjects/CommitComment.py","sha":"5bb931084bfbe9f76bd70ac630f7528393c77a23","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/a4577f31e2753b88d104d9f252883655ed617211","size":485,"path":"github/GithubObjects/Download.py","sha":"a4577f31e2753b88d104d9f252883655ed617211","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/1cdb4e961f76bca3371ce524fd8f19d18977c060","size":407,"path":"github/GithubObjects/Event.py","sha":"1cdb4e961f76bca3371ce524fd8f19d18977c060","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/771c33f701ab4d5a2a7ff0b6a64bb82b4467da59","size":1755,"path":"github/GithubObjects/Gist.py","sha":"771c33f701ab4d5a2a7ff0b6a64bb82b4467da59","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/4fc4c442cc6bdb1f2323b6f0195518e3549d53ec","size":352,"path":"github/GithubObjects/GistComment.py","sha":"4fc4c442cc6bdb1f2323b6f0195518e3549d53ec","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/607429faac7285ffaf30f42e9e3d2498f9dce199","size":259,"path":"github/GithubObjects/GitBlob.py","sha":"607429faac7285ffaf30f42e9e3d2498f9dce199","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/c9aa31c2047c9e18d092cdb8362b0872a4c858da","size":330,"path":"github/GithubObjects/GitCommit.py","sha":"c9aa31c2047c9e18d092cdb8362b0872a4c858da","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/f242e173e74399387fec3e65311ed1b4d9307795","size":301,"path":"github/GithubObjects/GitRef.py","sha":"f242e173e74399387fec3e65311ed1b4d9307795","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/9248ea6195629a87a603bc2a960c5a88da50c7aa","size":279,"path":"github/GithubObjects/GitTag.py","sha":"9248ea6195629a87a603bc2a960c5a88da50c7aa","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/61dac784bf2103e9b55e141042efd26da9ebcd3d","size":295,"path":"github/GithubObjects/GitTree.py","sha":"61dac784bf2103e9b55e141042efd26da9ebcd3d","mode":"100644"},{"type":"tree","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/173066f1477e24afa2ffd4cb9ceedb2531256837","path":"github/GithubObjects/GithubObject","sha":"173066f1477e24afa2ffd4cb9ceedb2531256837","mode":"040000"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/b2c5b054c3587ec60e2873bb269940eb2d09d0fa","size":2121,"path":"github/GithubObjects/GithubObject/ArgumentsChecker.py","sha":"b2c5b054c3587ec60e2873bb269940eb2d09d0fa","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/2702c9f4df72cd9c77e4545081cf7e5511523a0f","size":4111,"path":"github/GithubObjects/GithubObject/Basic.py","sha":"2702c9f4df72cd9c77e4545081cf7e5511523a0f","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/b7a2f794033bcbd3c28ba1e49369a49da5c78a5d","size":24438,"path":"github/GithubObjects/GithubObject/GithubObject.UnitTest.py","sha":"b7a2f794033bcbd3c28ba1e49369a49da5c78a5d","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/72464749e55a17e232841444bcddb48ad81d1b31","size":5179,"path":"github/GithubObjects/GithubObject/GithubObject.py","sha":"72464749e55a17e232841444bcddb48ad81d1b31","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/b4d29b38144d319b1d18f96eb4e9502fa82fd4c6","size":8470,"path":"github/GithubObjects/GithubObject/List.py","sha":"b4d29b38144d319b1d18f96eb4e9502fa82fd4c6","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/a7aeb7372fba85d33239c7d023f779f0d7db81ad","size":921,"path":"github/GithubObjects/GithubObject/TypePolicies.py","sha":"a7aeb7372fba85d33239c7d023f779f0d7db81ad","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/cbc7e4d667044eb16ddbe42d6242857057b5fc4d","size":27,"path":"github/GithubObjects/GithubObject/__init__.py","sha":"cbc7e4d667044eb16ddbe42d6242857057b5fc4d","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/36dc1354a94613fc3a0d785028f9792182a07af8","size":671,"path":"github/GithubObjects/Hook.py","sha":"36dc1354a94613fc3a0d785028f9792182a07af8","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/13c2f05af897f7b1fc5fc789f73757ee1e3731a0","size":1612,"path":"github/GithubObjects/Issue.py","sha":"13c2f05af897f7b1fc5fc789f73757ee1e3731a0","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/fb812b33bb5c3cb7fc65048e191c95d586888434","size":387,"path":"github/GithubObjects/IssueComment.py","sha":"fb812b33bb5c3cb7fc65048e191c95d586888434","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/c5b6fd29765aeefd1113e255c5b58f4fdf7c99e3","size":328,"path":"github/GithubObjects/IssueEvent.py","sha":"c5b6fd29765aeefd1113e255c5b58f4fdf7c99e3","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/aec594f92b8081b93a469c6f7b5c616df5197b6b","size":370,"path":"github/GithubObjects/Label.py","sha":"aec594f92b8081b93a469c6f7b5c616df5197b6b","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/7cd1bc0d6dc6b78d2a98b908de4a607621f30919","size":742,"path":"github/GithubObjects/Milestone.py","sha":"7cd1bc0d6dc6b78d2a98b908de4a607621f30919","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/c460d2f2b4e842a1517f4fd10b338768cccad2a3","size":963,"path":"github/GithubObjects/NamedUser.py","sha":"c460d2f2b4e842a1517f4fd10b338768cccad2a3","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/74c170d10feaace6bfa523224011147627a05df2","size":1968,"path":"github/GithubObjects/NamedUser_complete.py","sha":"74c170d10feaace6bfa523224011147627a05df2","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/3fb7adc168b5ed21c58363a4efe1f195cab3f81d","size":1052,"path":"github/GithubObjects/Organization.py","sha":"3fb7adc168b5ed21c58363a4efe1f195cab3f81d","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/dd1096ae08e979220dd0e4c9faf684c33578f819","size":1290,"path":"github/GithubObjects/Organization_complete.py","sha":"dd1096ae08e979220dd0e4c9faf684c33578f819","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/5ee414d50e9d1ba4ee5c3132904d3f48f21be0b6","size":2045,"path":"github/GithubObjects/PullRequest.py","sha":"5ee414d50e9d1ba4ee5c3132904d3f48f21be0b6","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/ac3cb0d3f33adfc281ca9ef5eaa8b7a45f9cf0f7","size":459,"path":"github/GithubObjects/PullRequestComment.py","sha":"ac3cb0d3f33adfc281ca9ef5eaa8b7a45f9cf0f7","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/d7135d168b80968f5d207c4c14b2a27c46ce3eb7","size":236,"path":"github/GithubObjects/PullRequestFile.py","sha":"d7135d168b80968f5d207c4c14b2a27c46ce3eb7","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/81ce811139f1e108a4c33ae5be07d1c618dc2a1b","size":8064,"path":"github/GithubObjects/Repository.py","sha":"81ce811139f1e108a4c33ae5be07d1c618dc2a1b","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/cea71c017ea61a7a8d39df0077838132c10f743e","size":318,"path":"github/GithubObjects/RepositoryKey.py","sha":"cea71c017ea61a7a8d39df0077838132c10f743e","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/4a9ae6f58fd12b622cdce969648c4b3f293d3242","size":753,"path":"github/GithubObjects/Repository_complete.py","sha":"4a9ae6f58fd12b622cdce969648c4b3f293d3242","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/cd65493dc75482f3000a7df631ba70f2fe2023a6","size":203,"path":"github/GithubObjects/Tag.py","sha":"cd65493dc75482f3000a7df631ba70f2fe2023a6","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/fcd844200ff859b29c892ccffb8bfe124b1af2bd","size":748,"path":"github/GithubObjects/Team.py","sha":"fcd844200ff859b29c892ccffb8bfe124b1af2bd","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/ba912f6accf2030147561fdd9614b152d427d24b","size":272,"path":"github/GithubObjects/UserKey.py","sha":"ba912f6accf2030147561fdd9614b152d427d24b","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/e19884f3141840b495c2c42bcb0708a4a58f7a1f","size":297,"path":"github/GithubObjects/__init__.py","sha":"e19884f3141840b495c2c42bcb0708a4a58f7a1f","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/1901018b6ebb83c70bb8077568177bc213de7ce6","size":3336,"path":"github/Requester.UnitTest.py","sha":"1901018b6ebb83c70bb8077568177bc213de7ce6","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/fac044b85acf5419e36f494de21559871c7fb743","size":2776,"path":"github/Requester.py","sha":"fac044b85acf5419e36f494de21559871c7fb743","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/109d6b9a44f7e489bb5f860da7d76407b2c99a66","size":26,"path":"github/__init__.py","sha":"109d6b9a44f7e489bb5f860da7d76407b2c99a66","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/9532bcaa5fcc0a9d3678b3e4fd05688e32d2a321","size":673,"path":"run_tests.sh","sha":"9532bcaa5fcc0a9d3678b3e4fd05688e32d2a321","mode":"100644"},{"type":"blob","url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/53bce9fa919b4544e67275089b3ec5b44be20667","size":1295,"path":"setup.py","sha":"53bce9fa919b4544e67275089b3ec5b44be20667","mode":"100644"}]} diff --git a/tests/ReplayData/Repository.testGetHookDeliveries.txt b/tests/ReplayData/Repository.testGetHookDeliveries.txt index b54039833d..3c7234d9b0 100644 --- a/tests/ReplayData/Repository.testGetHookDeliveries.txt +++ b/tests/ReplayData/Repository.testGetHookDeliveries.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/hooks/257993/deliveries +/repos/PyGithub/PyGithub/hooks/257993/deliveries {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testGetHookDelivery.txt b/tests/ReplayData/Repository.testGetHookDelivery.txt index 67029a72d6..36b614110f 100644 --- a/tests/ReplayData/Repository.testGetHookDelivery.txt +++ b/tests/ReplayData/Repository.testGetHookDelivery.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/hooks/257993/deliveries/12345 +/repos/PyGithub/PyGithub/hooks/257993/deliveries/12345 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testGetHooks.txt b/tests/ReplayData/Repository.testGetHooks.txt index 4f4acf54ea..7c20724574 100644 --- a/tests/ReplayData/Repository.testGetHooks.txt +++ b/tests/ReplayData/Repository.testGetHooks.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/hooks +/repos/PyGithub/PyGithub/hooks {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4953'), ('content-length', '295'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"07e5e1a2fafd1a5e2de62eb3afd007d5"'), ('date', 'Sun, 27 May 2012 07:02:25 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"updated_at":"2012-05-27T06:00:32Z","last_response":{"status":"ok","message":"OK","code":200},"events":["push"],"url":"https://api.github.com/repos/jacquev6/PyGithub/hooks/257993","active":true,"name":"web","config":{"url":"http://foobar.com"},"id":257993,"created_at":"2012-05-19T06:01:45Z"}] +[{"updated_at":"2012-05-27T06:00:32Z","last_response":{"status":"ok","message":"OK","code":200},"events":["push"],"url":"https://api.github.com/repos/PyGithub/PyGithub/hooks/257993","active":true,"name":"web","config":{"url":"http://foobar.com"},"id":257993,"created_at":"2012-05-19T06:01:45Z"}] diff --git a/tests/ReplayData/Repository.testGetIssues.txt b/tests/ReplayData/Repository.testGetIssues.txt index 69a4b33908..43a7b44e6b 100644 --- a/tests/ReplayData/Repository.testGetIssues.txt +++ b/tests/ReplayData/Repository.testGetIssues.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues +/repos/PyGithub/PyGithub/issues {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4950'), ('content-length', '28950'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"41676dcfbbfc49368e60f758c3e1d36f"'), ('date', 'Sun, 27 May 2012 07:03:19 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"updated_at":"2012-05-27T05:40:15Z","body":"Body created by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/30","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":30,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Issue also created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-27T05:40:15Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4769659,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/30"},{"updated_at":"2012-05-18T11:06:11Z","body":"As per discussion in 6945921c529be14c3a8f566dd1e483674516d46d\n\nI have observed that autocompletion (using PyDev+Eclipse in my case) is pretty erratic.\nFor example, in the tutorial from the readme, `g.get_u` gets autocompleted correctly, but `g.get_user().get_r` (or any method or attribute applicable to `NamedUsers`/`AuthenticatedUser`, really) does not show autocompletion to `g.get_user().get_repo()`.\n\nThis makes exploring the library/API a bit cumbersome. ","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/27","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":27,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Facilitate IDE autocompletion","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-18T10:52:29Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327442},"id":4639931,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/27"},{"updated_at":"2012-05-07T10:49:06Z","body":"List known clients.\r\n\r\nFirst known client: http://pypi.python.org/pypi/tratihubis/ (cf #24)","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/25","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":25,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"List project(s) using PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-05-07T10:49:06Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4452000,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/25"},{"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/24","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":24,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Improve error messages on broken requests","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-04-30T20:01:20Z","state":"open","user":{"url":"https://api.github.com/users/roskakori","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":328726},"id":4356743,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/24"},{"updated_at":"2012-03-19T19:08:18Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/20","comments":0,"milestone":null,"number":20,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Rework GitTree.recursive","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring","color":"0b02e1"}],"created_at":"2012-03-19T19:08:18Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3716033,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/20"},{"updated_at":"2012-03-19T19:04:19Z","body":"In general, when you get a collection, you should get an iterable, and the pagination should be done only if needed. This is mandatory for Github.get_gists","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/19","comments":0,"milestone":null,"number":19,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Rework Github.get_gists","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"created_at":"2012-03-19T19:04:19Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3715946,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/19"},{"updated_at":"2012-03-14T06:49:31Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/18","comments":0,"milestone":null,"number":18,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Take care of _identity","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring","color":"0b02e1"}],"created_at":"2012-03-14T06:49:31Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3643837,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/18"},{"updated_at":"2012-03-13T12:09:48Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/17","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":17,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Document issue reporting","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-03-13T12:09:48Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3628022,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/17"},{"updated_at":"2012-03-13T07:04:42Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/16","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":16,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Add copyright and license notice","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-03-13T06:25:31Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3624595,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/16"},{"updated_at":"2012-03-13T06:23:35Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/14","comments":0,"milestone":null,"number":14,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Rework BaseUrl to use tuples instead of string concatenation","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring","color":"0b02e1"}],"created_at":"2012-03-13T06:23:35Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3624570,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/14"},{"updated_at":"2012-03-13T06:22:27Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/13","comments":0,"milestone":null,"number":13,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Remove the _repo hugly hack","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring","color":"0b02e1"}],"created_at":"2012-03-13T06:22:27Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3624561,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/13"},{"updated_at":"2012-03-13T06:21:57Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/12","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":12,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Structure some InternalSimpleAttributes","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-03-13T06:21:57Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3624556,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/12"},{"updated_at":"2012-03-12T21:58:05Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/9","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":9,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Publish version 1.0","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-03-12T21:58:05Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3619973,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/9"},{"updated_at":"2012-03-08T12:23:29Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":4,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Review public interface homogeneity ","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-03-06T16:48:40Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3527266,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/4"},{"updated_at":"2012-05-19T06:42:43Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3","comments":0,"milestone":null,"number":3,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Deduce mandatory parameters","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"created_at":"2012-03-06T16:47:49Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3527245,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/3"},{"updated_at":"2012-03-08T12:23:29Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/2","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":2,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Use objects as parameters instead of shas, ids, etc.","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-03-06T16:46:49Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3527231,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/2"}] +[{"updated_at":"2012-05-27T05:40:15Z","body":"Body created by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":30,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Issue also created by PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-27T05:40:15Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4769659,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/30"},{"updated_at":"2012-05-18T11:06:11Z","body":"As per discussion in 6945921c529be14c3a8f566dd1e483674516d46d\n\nI have observed that autocompletion (using PyDev+Eclipse in my case) is pretty erratic.\nFor example, in the tutorial from the readme, `g.get_u` gets autocompleted correctly, but `g.get_user().get_r` (or any method or attribute applicable to `NamedUsers`/`AuthenticatedUser`, really) does not show autocompletion to `g.get_user().get_repo()`.\n\nThis makes exploring the library/API a bit cumbersome. ","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/27","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":27,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Facilitate IDE autocompletion","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-18T10:52:29Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327442},"id":4639931,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/27"},{"updated_at":"2012-05-07T10:49:06Z","body":"List known clients.\r\n\r\nFirst known client: http://pypi.python.org/pypi/tratihubis/ (cf #24)","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/25","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":25,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"List project(s) using PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-05-07T10:49:06Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4452000,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/25"},{"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/24","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":24,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Improve error messages on broken requests","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-04-30T20:01:20Z","state":"open","user":{"url":"https://api.github.com/users/roskakori","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":328726},"id":4356743,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/24"},{"updated_at":"2012-03-19T19:08:18Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/20","comments":0,"milestone":null,"number":20,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Rework GitTree.recursive","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Refactoring","name":"Refactoring","color":"0b02e1"}],"created_at":"2012-03-19T19:08:18Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3716033,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/20"},{"updated_at":"2012-03-19T19:04:19Z","body":"In general, when you get a collection, you should get an iterable, and the pagination should be done only if needed. This is mandatory for Github.get_gists","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/19","comments":0,"milestone":null,"number":19,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Rework Github.get_gists","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"created_at":"2012-03-19T19:04:19Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3715946,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/19"},{"updated_at":"2012-03-14T06:49:31Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/18","comments":0,"milestone":null,"number":18,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Take care of _identity","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Refactoring","name":"Refactoring","color":"0b02e1"}],"created_at":"2012-03-14T06:49:31Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3643837,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/18"},{"updated_at":"2012-03-13T12:09:48Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/17","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":17,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Document issue reporting","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-03-13T12:09:48Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3628022,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/17"},{"updated_at":"2012-03-13T07:04:42Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/16","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":16,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Add copyright and license notice","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-03-13T06:25:31Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3624595,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/16"},{"updated_at":"2012-03-13T06:23:35Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/14","comments":0,"milestone":null,"number":14,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Rework BaseUrl to use tuples instead of string concatenation","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Refactoring","name":"Refactoring","color":"0b02e1"}],"created_at":"2012-03-13T06:23:35Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3624570,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/14"},{"updated_at":"2012-03-13T06:22:27Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/13","comments":0,"milestone":null,"number":13,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Remove the _repo hugly hack","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Refactoring","name":"Refactoring","color":"0b02e1"}],"created_at":"2012-03-13T06:22:27Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3624561,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/13"},{"updated_at":"2012-03-13T06:21:57Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/12","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":12,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Structure some InternalSimpleAttributes","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-03-13T06:21:57Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3624556,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/12"},{"updated_at":"2012-03-12T21:58:05Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/9","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":9,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Publish version 1.0","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-03-12T21:58:05Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3619973,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/9"},{"updated_at":"2012-03-08T12:23:29Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":4,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Review public interface homogeneity ","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-03-06T16:48:40Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3527266,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/4"},{"updated_at":"2012-05-19T06:42:43Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3","comments":0,"milestone":null,"number":3,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Deduce mandatory parameters","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"created_at":"2012-03-06T16:47:49Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3527245,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/3"},{"updated_at":"2012-03-08T12:23:29Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/2","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_issues":2,"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":2,"assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"closed_at":null,"title":"Use objects as parameters instead of shas, ids, etc.","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-03-06T16:46:49Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3527231,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/2"}] diff --git a/tests/ReplayData/Repository.testGetIssuesComments.txt b/tests/ReplayData/Repository.testGetIssuesComments.txt index 536f2a3b00..895322c75a 100644 --- a/tests/ReplayData/Repository.testGetIssuesComments.txt +++ b/tests/ReplayData/Repository.testGetIssuesComments.txt @@ -2,64 +2,64 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/comments +/repos/PyGithub/PyGithub/issues/comments {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('x-ratelimit-limit', '5000'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '42659'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 22:43:37 GMT'), ('connection', 'keep-alive'), ('etag', '"e9ac24ceac76d4d31cf648484a47b665"'), ('link', '; rel="next", ; rel="last"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:53:42 GMT'), ('x-github-media-type', 'github.beta; format=json'), ('content-type', 'application/json; charset=utf-8')] -[{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4141750","body":"Thank you for reporting this. I'll publish a fix as soon as possible (tonight or tomorrow)","updated_at":"2012-04-17T05:50:25Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5168757","created_at":"2012-04-17T05:50:25Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5168757},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4141750","body":"Fixed in version 0.6. Please `easy_install --upgrade pygithub`","updated_at":"2012-04-17T17:59:18Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5181640","created_at":"2012-04-17T17:59:18Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5181640},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4141750","body":"yes fixed thanks","updated_at":"2012-04-17T18:58:05Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5183010","created_at":"2012-04-17T18:58:05Z","user":{"type":"User","events_url":"https://api.github.com/users/tallforasmurf/events{/privacy}","received_events_url":"https://api.github.com/users/tallforasmurf/received_events","gists_url":"https://api.github.com/users/tallforasmurf/gists{/gist_id}","followers_url":"https://api.github.com/users/tallforasmurf/followers","following_url":"https://api.github.com/users/tallforasmurf/following","organizations_url":"https://api.github.com/users/tallforasmurf/orgs","url":"https://api.github.com/users/tallforasmurf","gravatar_id":"bff435ae5fc2e73d7c7c8351231e8040","starred_url":"https://api.github.com/users/tallforasmurf/starred{/owner}{/repo}","login":"tallforasmurf","avatar_url":"https://secure.gravatar.com/avatar/bff435ae5fc2e73d7c7c8351231e8040?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/tallforasmurf/repos","subscriptions_url":"https://api.github.com/users/tallforasmurf/subscriptions","id":1137018},"id":5183010},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4159230","body":"`UnknownGithubObject` is the exception I throw when you request an object that doesn't exist. Here, there is no download with `id` `1` or `\"foobar\"` in your repo.\r\n\r\nThe `TypeError` you get when calling `repo.get_download()`is because `get_download` requires an argument as stated in the [reference of classes](https://github.com/jacquev6/PyGithub/blob/master/ReferenceOfClasses.md) (See \"Downloads\" in \"class Repository\").\r\n\r\nSo, what argument should you pass to `get_downloads`? Well, the documentation says `id`, so you can first call `get_downloads` which returns a list of `Download`s, and look what is `Download.id`.\r\n\r\nThe fact is that I have no repository to test this with downloads, but here is an example with issues (`g` is a `Github` instance):\r\n\r\n >>> g.get_user().get_repo( \"PyGithub\" ).get_issues()[0].number\r\n 23\r\n >>> g.get_user().get_repo( \"PyGithub\" ).get_issue( 23 )\r\n \r\n\r\n(I took the `number` attribute of the first `Issue`, because the reference says that `get_issue` takes a `number`.)\r\n\r\nI hope it helps.","updated_at":"2012-04-17T21:10:15Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5186061","created_at":"2012-04-17T21:10:15Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5186061},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4159230","body":"I hope this report will be useful, however, I am not going to be using this package after all. I discovered (what should have been obvious) that I can get everything I need from github just using urllib and reading the page.\r\n\r\n import urllib2\r\n try:\r\n u = urllib2.urlopen( 'https://github.com//', timeout=5 )\r\n except:\r\n #cannot contact github - try later\r\n #exit\r\n s = u.read()\r\n u.close()\r\n\r\nIt's all there, file names, SHA, last commit date, and if I want to read file data, no need to decode a blob, it's at ```https://raw.github.com///master/```\r\n","updated_at":"2012-04-19T16:40:02Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5226090","created_at":"2012-04-19T16:40:02Z","user":{"type":"User","events_url":"https://api.github.com/users/tallforasmurf/events{/privacy}","received_events_url":"https://api.github.com/users/tallforasmurf/received_events","gists_url":"https://api.github.com/users/tallforasmurf/gists{/gist_id}","followers_url":"https://api.github.com/users/tallforasmurf/followers","following_url":"https://api.github.com/users/tallforasmurf/following","organizations_url":"https://api.github.com/users/tallforasmurf/orgs","url":"https://api.github.com/users/tallforasmurf","gravatar_id":"bff435ae5fc2e73d7c7c8351231e8040","starred_url":"https://api.github.com/users/tallforasmurf/starred{/owner}{/repo}","login":"tallforasmurf","avatar_url":"https://secure.gravatar.com/avatar/bff435ae5fc2e73d7c7c8351231e8040?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/tallforasmurf/repos","subscriptions_url":"https://api.github.com/users/tallforasmurf/subscriptions","id":1137018},"id":5226090},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4356743","body":"Thank you for the suggestion. It's somehow related to https://github.com/jacquev6/PyGithub/issues/6, even if I have not described it in details.\r\n\r\nI'm currently doing a very deep rewrite, which will lead to much more readable stack traces in case of exceptions, and I will include more details about the error. I may also be able to detect type errors *before* sending the request to github.\r\n\r\nBy the way, I'm very glad to hear that you have solved a real-life use case using PyGithub :-)","updated_at":"2012-05-01T22:03:59Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5449237","created_at":"2012-05-01T22:03:59Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5449237},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4356743","body":"Good to hear you are already working on this in #6, so I suppose this can be tagged as duplicate and be closed.\r\n\r\nBTW, I cleaned up my script to convert Trac tickets to Github issues and uploaded it to PyPI: http://pypi.python.org/pypi/tratihubis/. It seems that at least some people find it useful, so hopefully it helps to popularize PyGithub a little.","updated_at":"2012-05-04T19:23:57Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5518272","created_at":"2012-05-04T19:23:57Z","user":{"type":"User","events_url":"https://api.github.com/users/roskakori/events{/privacy}","received_events_url":"https://api.github.com/users/roskakori/received_events","gists_url":"https://api.github.com/users/roskakori/gists{/gist_id}","followers_url":"https://api.github.com/users/roskakori/followers","following_url":"https://api.github.com/users/roskakori/following","organizations_url":"https://api.github.com/users/roskakori/orgs","url":"https://api.github.com/users/roskakori","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","starred_url":"https://api.github.com/users/roskakori/starred{/owner}{/repo}","login":"roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/roskakori/repos","subscriptions_url":"https://api.github.com/users/roskakori/subscriptions","id":328726},"id":5518272},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3617711","body":"This was reported by user in #24. I close this one because the other one has more information.","updated_at":"2012-05-07T10:45:58Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5547576","created_at":"2012-05-07T10:45:58Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5547576},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4622816","body":"Thank you for your feedback.\n\nI have indeed not yet implemented this feature because I have no real use of it: each API call is more than half a second long, so it's hard to reach the rate limit.\n\nAnyway, it is easy to extract the rate limiting headers, so I will add an attribute to the Github class to give access to their last value.\n\nExpect it in version 1.0. I will set an expected date on the milestone during the week-end.\n","updated_at":"2012-05-18T05:27:40Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5780183","created_at":"2012-05-18T05:27:40Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5780183},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4622816","body":"Ah good point about it being hard to reach. Thanks for implementing it. No hurry, though, it's not that important. :-)","updated_at":"2012-05-18T08:34:04Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5781803","created_at":"2012-05-18T08:34:04Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5781803},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4622816","body":"Implemented in ca97469. Will be in version 1.0.","updated_at":"2012-05-21T11:17:12Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5820199","created_at":"2012-05-21T11:17:12Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5820199},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4622816","body":"Thanks. :-)","updated_at":"2012-05-21T12:09:57Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5820912","created_at":"2012-05-21T12:09:57Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5820912},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3624575","body":"It means that there will be three ways to create an instance of the Github class:\n github = Github()\n github = Github( login, password )\n github = Github( oauth_token )\n","updated_at":"2012-05-25T06:31:42Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5924198","created_at":"2012-05-25T06:31:42Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5924198},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4780155","body":"You're definitively my best user ! I hope you will not get tired of discovering bugs and limitations in my library.\n\nThis issue is related to https://github.com/jacquev6/PyGithub/blob/master/github/Requester.py#L28 and the `pageCount < 10`: I've had to limit to 10 pages for some obscure reason I don't remember.\n\nIn version 1.0, `get_issues` (and other `get_collection`s) will not return a Python `list` but a `github.PaginatedList` which will be iterable and not limited to 10 pages, (but you won't be able to call `len` on it).","updated_at":"2012-05-28T13:52:22Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5965724","created_at":"2012-05-28T13:52:22Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5965724},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3527245","body":"For example, `Repository.edit` has a first parameter, `name`, which is mandatory, and should not. We could deduce it from the `name` attribute.","updated_at":"2012-05-28T13:58:35Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5965812","created_at":"2012-05-28T13:58:35Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5965812},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4780155","body":"I see. Is there a possibility to increase the number of items per page to work around this for now? This is in the API (with `&per_page=100` according to API docs), but I'm unsure how to do this in PyGithub. Default is 25, max 100.","updated_at":"2012-05-28T14:04:42Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5965891","created_at":"2012-05-28T14:04:25Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5965891},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4780155","body":"If you can't or don't want to modify PyGithub locally, I'm afraid you're stuck to 10 pages of 25 items, sorry.\n\nIf you can patch PyGithub, just increase/remove the limit on `pageCount` in `Requester.py`.\n\nBe assured I will publish version 1.0 on next Monday, with all the things I promised :)","updated_at":"2012-05-28T14:42:47Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5966555","created_at":"2012-05-28T14:42:47Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5966555},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4780155","body":"I see. I can either patch it locally, or just wait for next week. It will take a while until I get all the other work done, waiting for 1.0 probably won't delay me at all.","updated_at":"2012-05-28T14:47:02Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5966633","created_at":"2012-05-28T14:47:02Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5966633},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4793162","body":"Add a test `Issue33.testClosedIssues` when `Repository.get_issues` uses its 'state' parameter for issue #33","updated_at":"2012-05-29T11:36:02Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5981084","created_at":"2012-05-29T11:36:02Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981084},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4793290","body":"Duplicate of #18...","updated_at":"2012-05-29T11:45:46Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5981232","created_at":"2012-05-29T11:45:46Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981232},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4639931","body":"Will be OK in version 1.0: no more strange meta-description of the API, and the (generated, but it does not mater) code is easily readable by the IDE's auto-completion tool.","updated_at":"2012-05-29T11:56:06Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5981409","created_at":"2012-05-29T11:56:06Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981409},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3716033","body":"This will be covered by #36","updated_at":"2012-05-29T11:58:04Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5981451","created_at":"2012-05-29T11:58:04Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981451},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4793162","body":"@Lyloa I have to mention someone to test `Repository.get_issues` with argument `mentioned`","updated_at":"2012-05-29T18:38:53Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5991965","created_at":"2012-05-29T18:38:53Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5991965},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4356743","body":"Should be much improved by 7248e66. Will be in version 1.0","updated_at":"2012-05-30T19:58:35Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6019700","created_at":"2012-05-30T19:58:35Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6019700},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3619973","body":"Done! You can `easy_install --upgrade PyGithub`.","updated_at":"2012-06-03T19:56:17Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6088432","created_at":"2012-06-03T19:56:17Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6088432},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5036241","body":"PyGithub is definitely licensed under the GNU **Lesser** General Public License.\n\nAccording to http://www.gnu.org/licenses/gpl-howto.html, including both COPYING and COPYING.LESSER is the good way to use the LGPL. Anyway, this is misleading, so I will add a section about licensing in the readme today or tomorrow.\n\nThank you for your feedback, I hope PyGithub will be useful for you.","updated_at":"2012-06-13T10:52:24Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6293572","created_at":"2012-06-13T06:03:24Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6293572},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5036241","body":"Sorry I wasn't up to date on v3 licensing best practices. Thank you very much!\n","updated_at":"2012-06-13T16:17:27Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6305625","created_at":"2012-06-13T16:17:27Z","user":{"type":"User","events_url":"https://api.github.com/users/jeblair/events{/privacy}","received_events_url":"https://api.github.com/users/jeblair/received_events","gists_url":"https://api.github.com/users/jeblair/gists{/gist_id}","followers_url":"https://api.github.com/users/jeblair/followers","following_url":"https://api.github.com/users/jeblair/following","organizations_url":"https://api.github.com/users/jeblair/orgs","url":"https://api.github.com/users/jeblair","gravatar_id":"12dc328a104d4c4694b3df308bcd4e6d","starred_url":"https://api.github.com/users/jeblair/starred{/owner}{/repo}","login":"jeblair","avatar_url":"https://secure.gravatar.com/avatar/12dc328a104d4c4694b3df308bcd4e6d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jeblair/repos","subscriptions_url":"https://api.github.com/users/jeblair/subscriptions","id":899068},"id":6305625},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5092592","body":"Hello, when the user has not set his name, `user.name` is `None`, so you can't concatenate it with a string. The exception is not raised by PyGithub but by your code. Try `print user.login, \"->\", user.name` to avoid string concatenation.","updated_at":"2012-06-15T16:56:50Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6357374","created_at":"2012-06-15T14:08:33Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6357374},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5092592","body":"Perfect! Thanks, that worked. I _knew_ `+` for string concatenation was evil...did not listen.","updated_at":"2012-06-15T14:12:00Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6357422","created_at":"2012-06-15T14:10:33Z","user":{"type":"User","events_url":"https://api.github.com/users/aneroid/events{/privacy}","received_events_url":"https://api.github.com/users/aneroid/received_events","gists_url":"https://api.github.com/users/aneroid/gists{/gist_id}","followers_url":"https://api.github.com/users/aneroid/followers","following_url":"https://api.github.com/users/aneroid/following","organizations_url":"https://api.github.com/users/aneroid/orgs","url":"https://api.github.com/users/aneroid","gravatar_id":"5557aad9ff70c36cfac418f511bdea98","starred_url":"https://api.github.com/users/aneroid/starred{/owner}{/repo}","login":"aneroid","avatar_url":"https://secure.gravatar.com/avatar/5557aad9ff70c36cfac418f511bdea98?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/aneroid/repos","subscriptions_url":"https://api.github.com/users/aneroid/subscriptions","id":1468519},"id":6357422},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5152384","body":"Thank you for your contribution, I will merge it and publish version 1.1 tonight.","updated_at":"2012-06-20T08:15:10Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6447481","created_at":"2012-06-20T08:15:10Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6447481}] +[('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('x-ratelimit-limit', '5000'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '42659'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 22:43:37 GMT'), ('connection', 'keep-alive'), ('etag', '"e9ac24ceac76d4d31cf648484a47b665"'), ('link', '; rel="next", ; rel="last"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:53:42 GMT'), ('x-github-media-type', 'github.beta; format=json'), ('content-type', 'application/json; charset=utf-8')] +[{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4141750","body":"Thank you for reporting this. I'll publish a fix as soon as possible (tonight or tomorrow)","updated_at":"2012-04-17T05:50:25Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5168757","created_at":"2012-04-17T05:50:25Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5168757},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4141750","body":"Fixed in version 0.6. Please `easy_install --upgrade pygithub`","updated_at":"2012-04-17T17:59:18Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5181640","created_at":"2012-04-17T17:59:18Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5181640},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4141750","body":"yes fixed thanks","updated_at":"2012-04-17T18:58:05Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5183010","created_at":"2012-04-17T18:58:05Z","user":{"type":"User","events_url":"https://api.github.com/users/tallforasmurf/events{/privacy}","received_events_url":"https://api.github.com/users/tallforasmurf/received_events","gists_url":"https://api.github.com/users/tallforasmurf/gists{/gist_id}","followers_url":"https://api.github.com/users/tallforasmurf/followers","following_url":"https://api.github.com/users/tallforasmurf/following","organizations_url":"https://api.github.com/users/tallforasmurf/orgs","url":"https://api.github.com/users/tallforasmurf","gravatar_id":"bff435ae5fc2e73d7c7c8351231e8040","starred_url":"https://api.github.com/users/tallforasmurf/starred{/owner}{/repo}","login":"tallforasmurf","avatar_url":"https://secure.gravatar.com/avatar/bff435ae5fc2e73d7c7c8351231e8040?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/tallforasmurf/repos","subscriptions_url":"https://api.github.com/users/tallforasmurf/subscriptions","id":1137018},"id":5183010},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4159230","body":"`UnknownGithubObject` is the exception I throw when you request an object that doesn't exist. Here, there is no download with `id` `1` or `\"foobar\"` in your repo.\r\n\r\nThe `TypeError` you get when calling `repo.get_download()`is because `get_download` requires an argument as stated in the [reference of classes](https://github.com/PyGithub/PyGithub/blob/master/ReferenceOfClasses.md) (See \"Downloads\" in \"class Repository\").\r\n\r\nSo, what argument should you pass to `get_downloads`? Well, the documentation says `id`, so you can first call `get_downloads` which returns a list of `Download`s, and look what is `Download.id`.\r\n\r\nThe fact is that I have no repository to test this with downloads, but here is an example with issues (`g` is a `Github` instance):\r\n\r\n >>> g.get_user().get_repo( \"PyGithub\" ).get_issues()[0].number\r\n 23\r\n >>> g.get_user().get_repo( \"PyGithub\" ).get_issue( 23 )\r\n \r\n\r\n(I took the `number` attribute of the first `Issue`, because the reference says that `get_issue` takes a `number`.)\r\n\r\nI hope it helps.","updated_at":"2012-04-17T21:10:15Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5186061","created_at":"2012-04-17T21:10:15Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5186061},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4159230","body":"I hope this report will be useful, however, I am not going to be using this package after all. I discovered (what should have been obvious) that I can get everything I need from github just using urllib and reading the page.\r\n\r\n import urllib2\r\n try:\r\n u = urllib2.urlopen( 'https://github.com//', timeout=5 )\r\n except:\r\n #cannot contact github - try later\r\n #exit\r\n s = u.read()\r\n u.close()\r\n\r\nIt's all there, file names, SHA, last commit date, and if I want to read file data, no need to decode a blob, it's at ```https://raw.github.com///master/```\r\n","updated_at":"2012-04-19T16:40:02Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5226090","created_at":"2012-04-19T16:40:02Z","user":{"type":"User","events_url":"https://api.github.com/users/tallforasmurf/events{/privacy}","received_events_url":"https://api.github.com/users/tallforasmurf/received_events","gists_url":"https://api.github.com/users/tallforasmurf/gists{/gist_id}","followers_url":"https://api.github.com/users/tallforasmurf/followers","following_url":"https://api.github.com/users/tallforasmurf/following","organizations_url":"https://api.github.com/users/tallforasmurf/orgs","url":"https://api.github.com/users/tallforasmurf","gravatar_id":"bff435ae5fc2e73d7c7c8351231e8040","starred_url":"https://api.github.com/users/tallforasmurf/starred{/owner}{/repo}","login":"tallforasmurf","avatar_url":"https://secure.gravatar.com/avatar/bff435ae5fc2e73d7c7c8351231e8040?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/tallforasmurf/repos","subscriptions_url":"https://api.github.com/users/tallforasmurf/subscriptions","id":1137018},"id":5226090},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4356743","body":"Thank you for the suggestion. It's somehow related to https://github.com/PyGithub/PyGithub/issues/6, even if I have not described it in details.\r\n\r\nI'm currently doing a very deep rewrite, which will lead to much more readable stack traces in case of exceptions, and I will include more details about the error. I may also be able to detect type errors *before* sending the request to github.\r\n\r\nBy the way, I'm very glad to hear that you have solved a real-life use case using PyGithub :-)","updated_at":"2012-05-01T22:03:59Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5449237","created_at":"2012-05-01T22:03:59Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5449237},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4356743","body":"Good to hear you are already working on this in #6, so I suppose this can be tagged as duplicate and be closed.\r\n\r\nBTW, I cleaned up my script to convert Trac tickets to Github issues and uploaded it to PyPI: http://pypi.python.org/pypi/tratihubis/. It seems that at least some people find it useful, so hopefully it helps to popularize PyGithub a little.","updated_at":"2012-05-04T19:23:57Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5518272","created_at":"2012-05-04T19:23:57Z","user":{"type":"User","events_url":"https://api.github.com/users/roskakori/events{/privacy}","received_events_url":"https://api.github.com/users/roskakori/received_events","gists_url":"https://api.github.com/users/roskakori/gists{/gist_id}","followers_url":"https://api.github.com/users/roskakori/followers","following_url":"https://api.github.com/users/roskakori/following","organizations_url":"https://api.github.com/users/roskakori/orgs","url":"https://api.github.com/users/roskakori","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","starred_url":"https://api.github.com/users/roskakori/starred{/owner}{/repo}","login":"roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/roskakori/repos","subscriptions_url":"https://api.github.com/users/roskakori/subscriptions","id":328726},"id":5518272},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3617711","body":"This was reported by user in #24. I close this one because the other one has more information.","updated_at":"2012-05-07T10:45:58Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5547576","created_at":"2012-05-07T10:45:58Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5547576},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4622816","body":"Thank you for your feedback.\n\nI have indeed not yet implemented this feature because I have no real use of it: each API call is more than half a second long, so it's hard to reach the rate limit.\n\nAnyway, it is easy to extract the rate limiting headers, so I will add an attribute to the Github class to give access to their last value.\n\nExpect it in version 1.0. I will set an expected date on the milestone during the week-end.\n","updated_at":"2012-05-18T05:27:40Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5780183","created_at":"2012-05-18T05:27:40Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5780183},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4622816","body":"Ah good point about it being hard to reach. Thanks for implementing it. No hurry, though, it's not that important. :-)","updated_at":"2012-05-18T08:34:04Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5781803","created_at":"2012-05-18T08:34:04Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5781803},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4622816","body":"Implemented in ca97469. Will be in version 1.0.","updated_at":"2012-05-21T11:17:12Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5820199","created_at":"2012-05-21T11:17:12Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5820199},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4622816","body":"Thanks. :-)","updated_at":"2012-05-21T12:09:57Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5820912","created_at":"2012-05-21T12:09:57Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5820912},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3624575","body":"It means that there will be three ways to create an instance of the Github class:\n github = Github()\n github = Github( login, password )\n github = Github( oauth_token )\n","updated_at":"2012-05-25T06:31:42Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5924198","created_at":"2012-05-25T06:31:42Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5924198},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4780155","body":"You're definitively my best user ! I hope you will not get tired of discovering bugs and limitations in my library.\n\nThis issue is related to https://github.com/PyGithub/PyGithub/blob/master/github/Requester.py#L28 and the `pageCount < 10`: I've had to limit to 10 pages for some obscure reason I don't remember.\n\nIn version 1.0, `get_issues` (and other `get_collection`s) will not return a Python `list` but a `github.PaginatedList` which will be iterable and not limited to 10 pages, (but you won't be able to call `len` on it).","updated_at":"2012-05-28T13:52:22Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5965724","created_at":"2012-05-28T13:52:22Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5965724},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3527245","body":"For example, `Repository.edit` has a first parameter, `name`, which is mandatory, and should not. We could deduce it from the `name` attribute.","updated_at":"2012-05-28T13:58:35Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5965812","created_at":"2012-05-28T13:58:35Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5965812},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4780155","body":"I see. Is there a possibility to increase the number of items per page to work around this for now? This is in the API (with `&per_page=100` according to API docs), but I'm unsure how to do this in PyGithub. Default is 25, max 100.","updated_at":"2012-05-28T14:04:42Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5965891","created_at":"2012-05-28T14:04:25Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5965891},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4780155","body":"If you can't or don't want to modify PyGithub locally, I'm afraid you're stuck to 10 pages of 25 items, sorry.\n\nIf you can patch PyGithub, just increase/remove the limit on `pageCount` in `Requester.py`.\n\nBe assured I will publish version 1.0 on next Monday, with all the things I promised :)","updated_at":"2012-05-28T14:42:47Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5966555","created_at":"2012-05-28T14:42:47Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5966555},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4780155","body":"I see. I can either patch it locally, or just wait for next week. It will take a while until I get all the other work done, waiting for 1.0 probably won't delay me at all.","updated_at":"2012-05-28T14:47:02Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5966633","created_at":"2012-05-28T14:47:02Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5966633},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4793162","body":"Add a test `Issue33.testClosedIssues` when `Repository.get_issues` uses its 'state' parameter for issue #33","updated_at":"2012-05-29T11:36:02Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5981084","created_at":"2012-05-29T11:36:02Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981084},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4793290","body":"Duplicate of #18...","updated_at":"2012-05-29T11:45:46Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5981232","created_at":"2012-05-29T11:45:46Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981232},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4639931","body":"Will be OK in version 1.0: no more strange meta-description of the API, and the (generated, but it does not mater) code is easily readable by the IDE's auto-completion tool.","updated_at":"2012-05-29T11:56:06Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5981409","created_at":"2012-05-29T11:56:06Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981409},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3716033","body":"This will be covered by #36","updated_at":"2012-05-29T11:58:04Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5981451","created_at":"2012-05-29T11:58:04Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981451},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4793162","body":"@Lyloa I have to mention someone to test `Repository.get_issues` with argument `mentioned`","updated_at":"2012-05-29T18:38:53Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5991965","created_at":"2012-05-29T18:38:53Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5991965},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4356743","body":"Should be much improved by 7248e66. Will be in version 1.0","updated_at":"2012-05-30T19:58:35Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6019700","created_at":"2012-05-30T19:58:35Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6019700},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3619973","body":"Done! You can `easy_install --upgrade PyGithub`.","updated_at":"2012-06-03T19:56:17Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6088432","created_at":"2012-06-03T19:56:17Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6088432},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5036241","body":"PyGithub is definitely licensed under the GNU **Lesser** General Public License.\n\nAccording to http://www.gnu.org/licenses/gpl-howto.html, including both COPYING and COPYING.LESSER is the good way to use the LGPL. Anyway, this is misleading, so I will add a section about licensing in the readme today or tomorrow.\n\nThank you for your feedback, I hope PyGithub will be useful for you.","updated_at":"2012-06-13T10:52:24Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6293572","created_at":"2012-06-13T06:03:24Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6293572},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5036241","body":"Sorry I wasn't up to date on v3 licensing best practices. Thank you very much!\n","updated_at":"2012-06-13T16:17:27Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6305625","created_at":"2012-06-13T16:17:27Z","user":{"type":"User","events_url":"https://api.github.com/users/jeblair/events{/privacy}","received_events_url":"https://api.github.com/users/jeblair/received_events","gists_url":"https://api.github.com/users/jeblair/gists{/gist_id}","followers_url":"https://api.github.com/users/jeblair/followers","following_url":"https://api.github.com/users/jeblair/following","organizations_url":"https://api.github.com/users/jeblair/orgs","url":"https://api.github.com/users/jeblair","gravatar_id":"12dc328a104d4c4694b3df308bcd4e6d","starred_url":"https://api.github.com/users/jeblair/starred{/owner}{/repo}","login":"jeblair","avatar_url":"https://secure.gravatar.com/avatar/12dc328a104d4c4694b3df308bcd4e6d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jeblair/repos","subscriptions_url":"https://api.github.com/users/jeblair/subscriptions","id":899068},"id":6305625},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5092592","body":"Hello, when the user has not set his name, `user.name` is `None`, so you can't concatenate it with a string. The exception is not raised by PyGithub but by your code. Try `print user.login, \"->\", user.name` to avoid string concatenation.","updated_at":"2012-06-15T16:56:50Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6357374","created_at":"2012-06-15T14:08:33Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6357374},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5092592","body":"Perfect! Thanks, that worked. I _knew_ `+` for string concatenation was evil...did not listen.","updated_at":"2012-06-15T14:12:00Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6357422","created_at":"2012-06-15T14:10:33Z","user":{"type":"User","events_url":"https://api.github.com/users/aneroid/events{/privacy}","received_events_url":"https://api.github.com/users/aneroid/received_events","gists_url":"https://api.github.com/users/aneroid/gists{/gist_id}","followers_url":"https://api.github.com/users/aneroid/followers","following_url":"https://api.github.com/users/aneroid/following","organizations_url":"https://api.github.com/users/aneroid/orgs","url":"https://api.github.com/users/aneroid","gravatar_id":"5557aad9ff70c36cfac418f511bdea98","starred_url":"https://api.github.com/users/aneroid/starred{/owner}{/repo}","login":"aneroid","avatar_url":"https://secure.gravatar.com/avatar/5557aad9ff70c36cfac418f511bdea98?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/aneroid/repos","subscriptions_url":"https://api.github.com/users/aneroid/subscriptions","id":1468519},"id":6357422},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5152384","body":"Thank you for your contribution, I will merge it and publish version 1.1 tonight.","updated_at":"2012-06-20T08:15:10Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6447481","created_at":"2012-06-20T08:15:10Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6447481}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/comments?page=2 +/repos/PyGithub/PyGithub/issues/comments?page=2 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4968'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '46165'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 18:46:45 GMT'), ('connection', 'keep-alive'), ('etag', '"446137bf216c4edc30567fbc3e944b5a"'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:53:53 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5152384","body":"I've just pushed the version 1.1 of the package. You can `easy_install --upgrade PyGithub` if you want.","updated_at":"2012-06-20T21:06:08Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6467193","created_at":"2012-06-20T21:06:08Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6467193},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5177381","body":"Hello Alex, thank you for your feedback.\n\nI've just pushed the version 1.1 of the package. I've used `package_data` as explained in the [documentation of distutils](http://docs.python.org/distutils/setupscript.html#installing-package-data), but I'm still not very confident about my understanding of distutils... \n\nCould you please upgrade the package and tell if it's better?","updated_at":"2012-06-20T21:11:31Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6467312","created_at":"2012-06-20T21:11:31Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6467312},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5177381","body":"Thanks for looking at this so quickly! Here's the result of running `python setup.py install` with your new changes:\n\n```\n\nrunning install_lib\ncopying build/lib/COPYING -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\ncopying build/lib/COPYING.LESSER -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\ncreating /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/Design.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/ReferenceOfApis.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/ReferenceOfClasses.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/github/Requester.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/github\ncopying build/lib/ReadMe.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\n\n```\n\nI wish I could help, but I'm afraid I don't know how setuptools works.","updated_at":"2012-06-20T21:33:50Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6467642","created_at":"2012-06-20T21:22:44Z","user":{"type":"User","gists_url":"https://api.github.com/users/malexw/gists{/gist_id}","events_url":"https://api.github.com/users/malexw/events{/privacy}","followers_url":"https://api.github.com/users/malexw/followers","avatar_url":"https://secure.gravatar.com/avatar/13a30f9924fa2bd918cbb8d06dd8b55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/malexw/following","organizations_url":"https://api.github.com/users/malexw/orgs","url":"https://api.github.com/users/malexw","repos_url":"https://api.github.com/users/malexw/repos","starred_url":"https://api.github.com/users/malexw/starred{/owner}{/repo}","gravatar_id":"13a30f9924fa2bd918cbb8d06dd8b55a","login":"malexw","received_events_url":"https://api.github.com/users/malexw/received_events","subscriptions_url":"https://api.github.com/users/malexw/subscriptions","id":577322},"id":6467642},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5191621","body":"Those new apis where documented on June 5th, in https://github.com/github/developer.github.com/commit/3cff4bb9a1f1baf3101c984072cd4b4f0165618c. This explains that they are not covered by PyGithub 1.0 that was released on June 3rd.\n\nIt should not be too difficult to support them. I'll try to do it next week.","updated_at":"2012-06-21T12:42:19Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6481200","created_at":"2012-06-21T12:42:19Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6481200},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5191621","body":"Thank you","updated_at":"2012-06-21T12:52:06Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6481392","created_at":"2012-06-21T12:52:06Z","user":{"type":"User","gists_url":"https://api.github.com/users/kukuts/gists{/gist_id}","events_url":"https://api.github.com/users/kukuts/events{/privacy}","followers_url":"https://api.github.com/users/kukuts/followers","avatar_url":"https://secure.gravatar.com/avatar/9be6ba907be1740213b69422fdf52b57?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/kukuts/following","organizations_url":"https://api.github.com/users/kukuts/orgs","url":"https://api.github.com/users/kukuts","repos_url":"https://api.github.com/users/kukuts/repos","starred_url":"https://api.github.com/users/kukuts/starred{/owner}{/repo}","gravatar_id":"9be6ba907be1740213b69422fdf52b57","login":"kukuts","received_events_url":"https://api.github.com/users/kukuts/received_events","subscriptions_url":"https://api.github.com/users/kukuts/subscriptions","id":1831238},"id":6481392},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5256315","body":"I was running into issues with labels with spaces. The _identity attribute is just the URL encoded name.\n\nIt works great for building a URL endpoint, but not so great when the label's name is going to part of the POST body since it causes GitHub to return a 422 error complaining that the label doesn't exist.","updated_at":"2012-06-25T18:47:30Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6556134","created_at":"2012-06-25T18:47:30Z","user":{"type":"User","gists_url":"https://api.github.com/users/philipkimmey/gists{/gist_id}","events_url":"https://api.github.com/users/philipkimmey/events{/privacy}","followers_url":"https://api.github.com/users/philipkimmey/followers","avatar_url":"https://secure.gravatar.com/avatar/decc9323f241b6dd24ec35ef7cabaf75?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/philipkimmey/following","organizations_url":"https://api.github.com/users/philipkimmey/orgs","url":"https://api.github.com/users/philipkimmey","repos_url":"https://api.github.com/users/philipkimmey/repos","starred_url":"https://api.github.com/users/philipkimmey/starred{/owner}{/repo}","gravatar_id":"decc9323f241b6dd24ec35ef7cabaf75","login":"philipkimmey","received_events_url":"https://api.github.com/users/philipkimmey/received_events","subscriptions_url":"https://api.github.com/users/philipkimmey/subscriptions","id":211079},"id":6556134},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5256315","body":"You're perfectly right, thank you! I'll merge your contribution and publish a new version next week-end.","updated_at":"2012-06-25T19:33:48Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6557261","created_at":"2012-06-25T19:30:24Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6557261},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5259624","body":"Welcome back! Indeed, PyGithub has evolved (and stabilized).\n\nMethods that used to return a list of objects now return a `PaginatedList`. `PaginatedList` instances are only iterable (They do not support concatenation as lists do, and you cannot call `len` on them).\n\nThe rationale behind that? It is related to issue #33 and requests returning a large number of objects. In the previous version, creating a list of all the requested objects required a lot of [pagination requests](http://developer.github.com/v3/#pagination), and was quite long. It was a waste of time if the user was interested only in the first elements of that list. Enters `PaginatedList`, which does the pagination requests only when really needed. And it is no more limited to 10 pages.\n\nSo, to achieve what your are trying to do, you have to iterate the `PaginatedList` explicitly, either in a loop, or in the constructor of another collection.\n\nSimple iteration:\n\n for issue in itertools.chain(\n repo.get_issues( state = 'closed' ),\n repo.get_issues( state = 'open' )\n ):\n do stuff\n\nReal list from PaginatedList (and then you can have its length):\n\n issues = list( repo.get_issues( state = 'closed' ) ) + list( repo.get_issues( state = 'open' ) )\n nb_issues = len( issues )\n","updated_at":"2012-06-26T06:34:33Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6568164","created_at":"2012-06-26T06:34:33Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6568164},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5259624","body":"I'll try to document this behavior soon.","updated_at":"2012-06-26T06:35:48Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6568181","created_at":"2012-06-26T06:35:48Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6568181},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5259624","body":"Thanks for this, very helpful. I didn't know I could cast to list so easily (could've tried, though >.<)","updated_at":"2012-06-26T07:02:14Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6568553","created_at":"2012-06-26T07:02:14Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","repos_url":"https://api.github.com/users/bilderbuchi/repos","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":6568553},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5256315","body":"I've fixed Repository.create_issue and .get_issues as well.","updated_at":"2012-06-28T20:10:39Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6640187","created_at":"2012-06-28T20:10:39Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6640187},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5256315","body":"I've just merged your commit in branch `develop`. It will go in `master` when I publish version 1.2. You can expect it on Saturday or Sunday. Thank you again for the bug report and the associated patch.","updated_at":"2012-06-28T20:10:44Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6640189","created_at":"2012-06-28T20:10:44Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6640189},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5191621","body":"Problem: issues returned by the [`/legacy/issues/search` API](http://developer.github.com/v3/search/#search-issues) do not match those returned by [other v3 APIs](http://developer.github.com/v3/issues/#response):\n* labels are returned only by name, not not name, color and url\n* date-time format is different\n* maybe something else\n\nOf course, similar differences exist for users and repositories.\n\nIntegrating this legacy API will be more difficult than I thought.","updated_at":"2012-06-28T21:02:23Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6641223","created_at":"2012-06-28T20:49:13Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6641223},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5191621","body":"This is implemented in version 1.2, you can update from pypi.","updated_at":"2012-06-29T18:47:28Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6673380","created_at":"2012-06-29T18:47:28Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6673380},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"Interestingly, if I convert this manually in the meantime, using the method you use in the PyGithub code (`tdate=datetime.datetime.strptime(t.commit.commit.committer.date, \"%Y-%m-%dT%H:%M:%SZ\")`), I get an error cause the format does not match. I get a string of the form `2010-02-11T01:17:27-08:00` - time zone information has been added, but I don't know how to parse it, the `:` in `-08:00` prevents me from using `%z` (which expects UTC offset in the form +HHMM or -HHMM). I will discard it for now, but maybe you got insight why this happens?","updated_at":"2012-07-02T14:58:45Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6710355","created_at":"2012-07-02T14:58:45Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","repos_url":"https://api.github.com/users/bilderbuchi/repos","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":6710355},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"Hello Christoph!\n\nIndeed this attribute should be a `datetime.datetime`. And as you noticed, it is not formated like other dates returned by Github... I remember I discovered that when I was doing the conversion from string of all the `*_at` and `*_on` attributes, and I did not take time to dig deeper.\n\nI will create a more generic date parsing function that handles all formats returned by Github, and I'll use it for all `datetime` attributes.\n\nBut before that, I'll have to understand timezone handling in Python, so do not expect this too soon (maybe mid-July).","updated_at":"2012-07-03T07:15:53Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6727553","created_at":"2012-07-03T07:15:53Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6727553},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"yeah no problem, I'm not reliant on so precise information, take your time. btw, maybe that's a bug in the github API? why would this one time be returned in a different way than all the others? I can't see a reason for this.\n\nagreed, time(zones) in python are crazy at times.","updated_at":"2012-07-03T07:24:21Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6727659","created_at":"2012-07-03T07:24:21Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","repos_url":"https://api.github.com/users/bilderbuchi/repos","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":6727659},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"I don't think it's a bug in Github:\n* `GitAuthor.date` is related to an action done somewhere (on the committer's computer), so it carries the timezone of this computer\n* other datetimes are related to actions done on Github's servers, so it's returned with a \"Z\" timezone meaning \"UTC\", the timezone of these servers.","updated_at":"2012-07-03T07:36:30Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6727848","created_at":"2012-07-03T07:36:30Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6727848},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"And by the way, I'm not sure it's a problem for you but I prefer to make it clear: if `tag` is a `Tag`, then `tag.commit.commit.committer.date` is the date of the tagged commit, not the date of the tag. If you really need the date of the tag, you need a `GitTag` and use `git_tag.tagger.date`.","updated_at":"2012-07-03T07:50:18Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6728069","created_at":"2012-07-03T07:50:18Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6728069},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"ah, makes sense. If you want to avoid the timezone confusion, mayb what is suggested [here](http://stackoverflow.com/a/117615/599884) makes most sense: \n\"Keep your internal datetime objects naive and in UTC and convert to your timezone for formatting only. The reason why you probably want naive objects (objects without timezone information) is that many libraries and database adapters have no idea about timezones.\"\nSo maybe it makes sense to just convert the GitAuthor times to UTC when getting them (i.e. apply the offset to the given time), to be consistent with the rest.\n\nThanks about the clarification re: GitTag/Tag. I prefer the date of the tagged commit, though, the tags mark release commits.\n","updated_at":"2012-07-03T07:59:36Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6728241","created_at":"2012-07-03T07:59:36Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","repos_url":"https://api.github.com/users/bilderbuchi/repos","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":6728241},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"If I convert the `GitAuthor.date` to UTC, I loose the information about where the committer lives... It may or may not be a problem depending on my client's use case.\n\nI'll find a way to make it clear and not loose information, maybe I will convert `date` to UTC (keep it naive), and add another attribute `timezone` to `GitAuthor`.","updated_at":"2012-07-07T18:18:46Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6728370","created_at":"2012-07-03T08:08:08Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6728370},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"I still have to convert the datetime to UTC. But there is something silly about timezones returned by Github: my commits are timezoned \"-07:00\" while I live in France (UTC +1 or +2). I have to investigate that.","updated_at":"2012-07-10T19:42:43Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6886561","created_at":"2012-07-10T19:42:43Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6886561},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"Well, well, well... I now revise my judgement: **absolutely all** commits I've retrieved from Github are in timezone -07:00, so this must indeed be a flaw in the API, returning date formatted in the local timezone of the GIthub servers only for this attribute. @bilderbuchi, you were right in https://github.com/jacquev6/PyGithub/issues/54#issuecomment-6727659 :-)\n\nThere is no point keeping this GitAuthor.timezone attribute. I will just convert everything to UTC.","updated_at":"2012-07-13T19:17:15Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6972414","created_at":"2012-07-13T19:05:53Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6972414},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"ok. maybe also write to github about this probable bug in the API, to see what's the deal?","updated_at":"2012-07-15T19:57:26Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6994436","created_at":"2012-07-15T19:57:26Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","repos_url":"https://api.github.com/users/bilderbuchi/repos","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":6994436},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"@bilderbuchi, to be honest, I don't think I will take time to contact Github about that.","updated_at":"2012-07-18T09:12:53Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7060818","created_at":"2012-07-18T09:12:53Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7060818},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"Sure, I understand. :-)","updated_at":"2012-07-18T09:21:16Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7060993","created_at":"2012-07-18T09:21:16Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","repos_url":"https://api.github.com/users/bilderbuchi/repos","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":7060993},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5783131","body":"Thank you for this useful contribution! You even respected my special spacing convention!\n\nI will publish the version 1.4 of PyGithub next week-end.","updated_at":"2012-07-24T16:07:06Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7211543","created_at":"2012-07-24T16:07:06Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7211543},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5783131","body":"Hum, I'm having trouble with my computer and not much time to fix it. I'll publish PyGithub 1.4 as soon as possible.","updated_at":"2012-07-31T18:47:09Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7407798","created_at":"2012-07-31T18:47:09Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7407798},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5806612","body":"Published, at last...","updated_at":"2012-08-04T06:11:43Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7499550","created_at":"2012-08-04T06:11:43Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7499550},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6353712","body":"Hello!\n\nI confirm that the following code exhibits the same issue:\n\n import github\n\n g = github.Github()\n r = g.get_user( \"jacquev6\" ).get_repo( \"PyGithub\" )\n p = r.get_pull( 57 )\n print p.title, \"has\", p.comments, \"comments\"\n print [ c.body[ :15 ] for c in p.get_comments() ]\n\nIt prints:\n\n Allows connection to GitHub Enterprise installs on local URLs has 2 comments\n []\n\nThis last line calls API https://api.github.com/repos/jacquev6/PyGithub/pulls/57/comments, as documented in http://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request, but the API returns an empty list. I've just managed to get the comments by calling https://api.github.com/repos/jacquev6/PyGithub/issues/57/comments instead. The issue must be on Github's side.\n\nAs a **temporary** work-around, you can use the following code to do as if the pull request is an issue, and call the other API:\n\n print [ c.body[ :15 ] for c in r.get_issue( p.number ).get_comments() ]\n\nRight now, I have not enough time to take care of this problem, but if it's still here at the beginning of September, I will contact Github and/or patch PyGithub.\n\nEnjoy,","updated_at":"2012-08-21T22:15:01Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7918385","created_at":"2012-08-21T22:15:01Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7918385}] +[('status', '200 OK'), ('x-ratelimit-remaining', '4968'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '46165'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 18:46:45 GMT'), ('connection', 'keep-alive'), ('etag', '"446137bf216c4edc30567fbc3e944b5a"'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:53:53 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5152384","body":"I've just pushed the version 1.1 of the package. You can `easy_install --upgrade PyGithub` if you want.","updated_at":"2012-06-20T21:06:08Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6467193","created_at":"2012-06-20T21:06:08Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6467193},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5177381","body":"Hello Alex, thank you for your feedback.\n\nI've just pushed the version 1.1 of the package. I've used `package_data` as explained in the [documentation of distutils](http://docs.python.org/distutils/setupscript.html#installing-package-data), but I'm still not very confident about my understanding of distutils... \n\nCould you please upgrade the package and tell if it's better?","updated_at":"2012-06-20T21:11:31Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6467312","created_at":"2012-06-20T21:11:31Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6467312},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5177381","body":"Thanks for looking at this so quickly! Here's the result of running `python setup.py install` with your new changes:\n\n```\n\nrunning install_lib\ncopying build/lib/COPYING -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\ncopying build/lib/COPYING.LESSER -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\ncreating /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/Design.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/ReferenceOfApis.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/ReferenceOfClasses.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/github/Requester.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/github\ncopying build/lib/ReadMe.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\n\n```\n\nI wish I could help, but I'm afraid I don't know how setuptools works.","updated_at":"2012-06-20T21:33:50Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6467642","created_at":"2012-06-20T21:22:44Z","user":{"type":"User","gists_url":"https://api.github.com/users/malexw/gists{/gist_id}","events_url":"https://api.github.com/users/malexw/events{/privacy}","followers_url":"https://api.github.com/users/malexw/followers","avatar_url":"https://secure.gravatar.com/avatar/13a30f9924fa2bd918cbb8d06dd8b55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/malexw/following","organizations_url":"https://api.github.com/users/malexw/orgs","url":"https://api.github.com/users/malexw","repos_url":"https://api.github.com/users/malexw/repos","starred_url":"https://api.github.com/users/malexw/starred{/owner}{/repo}","gravatar_id":"13a30f9924fa2bd918cbb8d06dd8b55a","login":"malexw","received_events_url":"https://api.github.com/users/malexw/received_events","subscriptions_url":"https://api.github.com/users/malexw/subscriptions","id":577322},"id":6467642},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5191621","body":"Those new apis where documented on June 5th, in https://github.com/github/developer.github.com/commit/3cff4bb9a1f1baf3101c984072cd4b4f0165618c. This explains that they are not covered by PyGithub 1.0 that was released on June 3rd.\n\nIt should not be too difficult to support them. I'll try to do it next week.","updated_at":"2012-06-21T12:42:19Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6481200","created_at":"2012-06-21T12:42:19Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6481200},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5191621","body":"Thank you","updated_at":"2012-06-21T12:52:06Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6481392","created_at":"2012-06-21T12:52:06Z","user":{"type":"User","gists_url":"https://api.github.com/users/kukuts/gists{/gist_id}","events_url":"https://api.github.com/users/kukuts/events{/privacy}","followers_url":"https://api.github.com/users/kukuts/followers","avatar_url":"https://secure.gravatar.com/avatar/9be6ba907be1740213b69422fdf52b57?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/kukuts/following","organizations_url":"https://api.github.com/users/kukuts/orgs","url":"https://api.github.com/users/kukuts","repos_url":"https://api.github.com/users/kukuts/repos","starred_url":"https://api.github.com/users/kukuts/starred{/owner}{/repo}","gravatar_id":"9be6ba907be1740213b69422fdf52b57","login":"kukuts","received_events_url":"https://api.github.com/users/kukuts/received_events","subscriptions_url":"https://api.github.com/users/kukuts/subscriptions","id":1831238},"id":6481392},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5256315","body":"I was running into issues with labels with spaces. The _identity attribute is just the URL encoded name.\n\nIt works great for building a URL endpoint, but not so great when the label's name is going to part of the POST body since it causes GitHub to return a 422 error complaining that the label doesn't exist.","updated_at":"2012-06-25T18:47:30Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6556134","created_at":"2012-06-25T18:47:30Z","user":{"type":"User","gists_url":"https://api.github.com/users/philipkimmey/gists{/gist_id}","events_url":"https://api.github.com/users/philipkimmey/events{/privacy}","followers_url":"https://api.github.com/users/philipkimmey/followers","avatar_url":"https://secure.gravatar.com/avatar/decc9323f241b6dd24ec35ef7cabaf75?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/philipkimmey/following","organizations_url":"https://api.github.com/users/philipkimmey/orgs","url":"https://api.github.com/users/philipkimmey","repos_url":"https://api.github.com/users/philipkimmey/repos","starred_url":"https://api.github.com/users/philipkimmey/starred{/owner}{/repo}","gravatar_id":"decc9323f241b6dd24ec35ef7cabaf75","login":"philipkimmey","received_events_url":"https://api.github.com/users/philipkimmey/received_events","subscriptions_url":"https://api.github.com/users/philipkimmey/subscriptions","id":211079},"id":6556134},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5256315","body":"You're perfectly right, thank you! I'll merge your contribution and publish a new version next week-end.","updated_at":"2012-06-25T19:33:48Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6557261","created_at":"2012-06-25T19:30:24Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6557261},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5259624","body":"Welcome back! Indeed, PyGithub has evolved (and stabilized).\n\nMethods that used to return a list of objects now return a `PaginatedList`. `PaginatedList` instances are only iterable (They do not support concatenation as lists do, and you cannot call `len` on them).\n\nThe rationale behind that? It is related to issue #33 and requests returning a large number of objects. In the previous version, creating a list of all the requested objects required a lot of [pagination requests](http://developer.github.com/v3/#pagination), and was quite long. It was a waste of time if the user was interested only in the first elements of that list. Enters `PaginatedList`, which does the pagination requests only when really needed. And it is no more limited to 10 pages.\n\nSo, to achieve what your are trying to do, you have to iterate the `PaginatedList` explicitly, either in a loop, or in the constructor of another collection.\n\nSimple iteration:\n\n for issue in itertools.chain(\n repo.get_issues( state = 'closed' ),\n repo.get_issues( state = 'open' )\n ):\n do stuff\n\nReal list from PaginatedList (and then you can have its length):\n\n issues = list( repo.get_issues( state = 'closed' ) ) + list( repo.get_issues( state = 'open' ) )\n nb_issues = len( issues )\n","updated_at":"2012-06-26T06:34:33Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6568164","created_at":"2012-06-26T06:34:33Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6568164},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5259624","body":"I'll try to document this behavior soon.","updated_at":"2012-06-26T06:35:48Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6568181","created_at":"2012-06-26T06:35:48Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6568181},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5259624","body":"Thanks for this, very helpful. I didn't know I could cast to list so easily (could've tried, though >.<)","updated_at":"2012-06-26T07:02:14Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6568553","created_at":"2012-06-26T07:02:14Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","repos_url":"https://api.github.com/users/bilderbuchi/repos","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":6568553},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5256315","body":"I've fixed Repository.create_issue and .get_issues as well.","updated_at":"2012-06-28T20:10:39Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6640187","created_at":"2012-06-28T20:10:39Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6640187},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5256315","body":"I've just merged your commit in branch `develop`. It will go in `master` when I publish version 1.2. You can expect it on Saturday or Sunday. Thank you again for the bug report and the associated patch.","updated_at":"2012-06-28T20:10:44Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6640189","created_at":"2012-06-28T20:10:44Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6640189},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5191621","body":"Problem: issues returned by the [`/legacy/issues/search` API](http://developer.github.com/v3/search/#search-issues) do not match those returned by [other v3 APIs](http://developer.github.com/v3/issues/#response):\n* labels are returned only by name, not not name, color and url\n* date-time format is different\n* maybe something else\n\nOf course, similar differences exist for users and repositories.\n\nIntegrating this legacy API will be more difficult than I thought.","updated_at":"2012-06-28T21:02:23Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6641223","created_at":"2012-06-28T20:49:13Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6641223},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5191621","body":"This is implemented in version 1.2, you can update from pypi.","updated_at":"2012-06-29T18:47:28Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6673380","created_at":"2012-06-29T18:47:28Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6673380},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"Interestingly, if I convert this manually in the meantime, using the method you use in the PyGithub code (`tdate=datetime.datetime.strptime(t.commit.commit.committer.date, \"%Y-%m-%dT%H:%M:%SZ\")`), I get an error cause the format does not match. I get a string of the form `2010-02-11T01:17:27-08:00` - time zone information has been added, but I don't know how to parse it, the `:` in `-08:00` prevents me from using `%z` (which expects UTC offset in the form +HHMM or -HHMM). I will discard it for now, but maybe you got insight why this happens?","updated_at":"2012-07-02T14:58:45Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6710355","created_at":"2012-07-02T14:58:45Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","repos_url":"https://api.github.com/users/bilderbuchi/repos","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":6710355},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"Hello Christoph!\n\nIndeed this attribute should be a `datetime.datetime`. And as you noticed, it is not formated like other dates returned by Github... I remember I discovered that when I was doing the conversion from string of all the `*_at` and `*_on` attributes, and I did not take time to dig deeper.\n\nI will create a more generic date parsing function that handles all formats returned by Github, and I'll use it for all `datetime` attributes.\n\nBut before that, I'll have to understand timezone handling in Python, so do not expect this too soon (maybe mid-July).","updated_at":"2012-07-03T07:15:53Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6727553","created_at":"2012-07-03T07:15:53Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6727553},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"yeah no problem, I'm not reliant on so precise information, take your time. btw, maybe that's a bug in the github API? why would this one time be returned in a different way than all the others? I can't see a reason for this.\n\nagreed, time(zones) in python are crazy at times.","updated_at":"2012-07-03T07:24:21Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6727659","created_at":"2012-07-03T07:24:21Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","repos_url":"https://api.github.com/users/bilderbuchi/repos","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":6727659},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"I don't think it's a bug in Github:\n* `GitAuthor.date` is related to an action done somewhere (on the committer's computer), so it carries the timezone of this computer\n* other datetimes are related to actions done on Github's servers, so it's returned with a \"Z\" timezone meaning \"UTC\", the timezone of these servers.","updated_at":"2012-07-03T07:36:30Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6727848","created_at":"2012-07-03T07:36:30Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6727848},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"And by the way, I'm not sure it's a problem for you but I prefer to make it clear: if `tag` is a `Tag`, then `tag.commit.commit.committer.date` is the date of the tagged commit, not the date of the tag. If you really need the date of the tag, you need a `GitTag` and use `git_tag.tagger.date`.","updated_at":"2012-07-03T07:50:18Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6728069","created_at":"2012-07-03T07:50:18Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6728069},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"ah, makes sense. If you want to avoid the timezone confusion, mayb what is suggested [here](http://stackoverflow.com/a/117615/599884) makes most sense: \n\"Keep your internal datetime objects naive and in UTC and convert to your timezone for formatting only. The reason why you probably want naive objects (objects without timezone information) is that many libraries and database adapters have no idea about timezones.\"\nSo maybe it makes sense to just convert the GitAuthor times to UTC when getting them (i.e. apply the offset to the given time), to be consistent with the rest.\n\nThanks about the clarification re: GitTag/Tag. I prefer the date of the tagged commit, though, the tags mark release commits.\n","updated_at":"2012-07-03T07:59:36Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6728241","created_at":"2012-07-03T07:59:36Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","repos_url":"https://api.github.com/users/bilderbuchi/repos","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":6728241},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"If I convert the `GitAuthor.date` to UTC, I loose the information about where the committer lives... It may or may not be a problem depending on my client's use case.\n\nI'll find a way to make it clear and not loose information, maybe I will convert `date` to UTC (keep it naive), and add another attribute `timezone` to `GitAuthor`.","updated_at":"2012-07-07T18:18:46Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6728370","created_at":"2012-07-03T08:08:08Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6728370},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"I still have to convert the datetime to UTC. But there is something silly about timezones returned by Github: my commits are timezoned \"-07:00\" while I live in France (UTC +1 or +2). I have to investigate that.","updated_at":"2012-07-10T19:42:43Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6886561","created_at":"2012-07-10T19:42:43Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6886561},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"Well, well, well... I now revise my judgement: **absolutely all** commits I've retrieved from Github are in timezone -07:00, so this must indeed be a flaw in the API, returning date formatted in the local timezone of the GIthub servers only for this attribute. @bilderbuchi, you were right in https://github.com/PyGithub/PyGithub/issues/54#issuecomment-6727659 :-)\n\nThere is no point keeping this GitAuthor.timezone attribute. I will just convert everything to UTC.","updated_at":"2012-07-13T19:17:15Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6972414","created_at":"2012-07-13T19:05:53Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6972414},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"ok. maybe also write to github about this probable bug in the API, to see what's the deal?","updated_at":"2012-07-15T19:57:26Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6994436","created_at":"2012-07-15T19:57:26Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","repos_url":"https://api.github.com/users/bilderbuchi/repos","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":6994436},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"@bilderbuchi, to be honest, I don't think I will take time to contact Github about that.","updated_at":"2012-07-18T09:12:53Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7060818","created_at":"2012-07-18T09:12:53Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7060818},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"Sure, I understand. :-)","updated_at":"2012-07-18T09:21:16Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7060993","created_at":"2012-07-18T09:21:16Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","repos_url":"https://api.github.com/users/bilderbuchi/repos","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":7060993},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5783131","body":"Thank you for this useful contribution! You even respected my special spacing convention!\n\nI will publish the version 1.4 of PyGithub next week-end.","updated_at":"2012-07-24T16:07:06Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7211543","created_at":"2012-07-24T16:07:06Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7211543},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5783131","body":"Hum, I'm having trouble with my computer and not much time to fix it. I'll publish PyGithub 1.4 as soon as possible.","updated_at":"2012-07-31T18:47:09Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7407798","created_at":"2012-07-31T18:47:09Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7407798},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5806612","body":"Published, at last...","updated_at":"2012-08-04T06:11:43Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7499550","created_at":"2012-08-04T06:11:43Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7499550},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6353712","body":"Hello!\n\nI confirm that the following code exhibits the same issue:\n\n import github\n\n g = github.Github()\n r = g.get_user( \"jacquev6\" ).get_repo( \"PyGithub\" )\n p = r.get_pull( 57 )\n print p.title, \"has\", p.comments, \"comments\"\n print [ c.body[ :15 ] for c in p.get_comments() ]\n\nIt prints:\n\n Allows connection to GitHub Enterprise installs on local URLs has 2 comments\n []\n\nThis last line calls API https://api.github.com/repos/PyGithub/PyGithub/pulls/57/comments, as documented in http://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request, but the API returns an empty list. I've just managed to get the comments by calling https://api.github.com/repos/PyGithub/PyGithub/issues/57/comments instead. The issue must be on Github's side.\n\nAs a **temporary** work-around, you can use the following code to do as if the pull request is an issue, and call the other API:\n\n print [ c.body[ :15 ] for c in r.get_issue( p.number ).get_comments() ]\n\nRight now, I have not enough time to take care of this problem, but if it's still here at the beginning of September, I will contact Github and/or patch PyGithub.\n\nEnjoy,","updated_at":"2012-08-21T22:15:01Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7918385","created_at":"2012-08-21T22:15:01Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","repos_url":"https://api.github.com/users/jacquev6/repos","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7918385}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/comments?sort=created&direction=asc +/repos/PyGithub/PyGithub/issues/comments?sort=created&direction=asc {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('content-length', '42659'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4967'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 22:43:37 GMT'), ('connection', 'keep-alive'), ('etag', '"e9ac24ceac76d4d31cf648484a47b665"'), ('link', '; rel="next", ; rel="last"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:54:04 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4141750","body":"Thank you for reporting this. I'll publish a fix as soon as possible (tonight or tomorrow)","updated_at":"2012-04-17T05:50:25Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5168757","created_at":"2012-04-17T05:50:25Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5168757},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4141750","body":"Fixed in version 0.6. Please `easy_install --upgrade pygithub`","updated_at":"2012-04-17T17:59:18Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5181640","created_at":"2012-04-17T17:59:18Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5181640},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4141750","body":"yes fixed thanks","updated_at":"2012-04-17T18:58:05Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5183010","created_at":"2012-04-17T18:58:05Z","user":{"type":"User","received_events_url":"https://api.github.com/users/tallforasmurf/received_events","avatar_url":"https://secure.gravatar.com/avatar/bff435ae5fc2e73d7c7c8351231e8040?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/tallforasmurf/gists{/gist_id}","followers_url":"https://api.github.com/users/tallforasmurf/followers","following_url":"https://api.github.com/users/tallforasmurf/following","organizations_url":"https://api.github.com/users/tallforasmurf/orgs","starred_url":"https://api.github.com/users/tallforasmurf/starred{/owner}{/repo}","url":"https://api.github.com/users/tallforasmurf","gravatar_id":"bff435ae5fc2e73d7c7c8351231e8040","repos_url":"https://api.github.com/users/tallforasmurf/repos","login":"tallforasmurf","events_url":"https://api.github.com/users/tallforasmurf/events{/privacy}","subscriptions_url":"https://api.github.com/users/tallforasmurf/subscriptions","id":1137018},"id":5183010},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4159230","body":"`UnknownGithubObject` is the exception I throw when you request an object that doesn't exist. Here, there is no download with `id` `1` or `\"foobar\"` in your repo.\r\n\r\nThe `TypeError` you get when calling `repo.get_download()`is because `get_download` requires an argument as stated in the [reference of classes](https://github.com/jacquev6/PyGithub/blob/master/ReferenceOfClasses.md) (See \"Downloads\" in \"class Repository\").\r\n\r\nSo, what argument should you pass to `get_downloads`? Well, the documentation says `id`, so you can first call `get_downloads` which returns a list of `Download`s, and look what is `Download.id`.\r\n\r\nThe fact is that I have no repository to test this with downloads, but here is an example with issues (`g` is a `Github` instance):\r\n\r\n >>> g.get_user().get_repo( \"PyGithub\" ).get_issues()[0].number\r\n 23\r\n >>> g.get_user().get_repo( \"PyGithub\" ).get_issue( 23 )\r\n \r\n\r\n(I took the `number` attribute of the first `Issue`, because the reference says that `get_issue` takes a `number`.)\r\n\r\nI hope it helps.","updated_at":"2012-04-17T21:10:15Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5186061","created_at":"2012-04-17T21:10:15Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5186061},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4159230","body":"I hope this report will be useful, however, I am not going to be using this package after all. I discovered (what should have been obvious) that I can get everything I need from github just using urllib and reading the page.\r\n\r\n import urllib2\r\n try:\r\n u = urllib2.urlopen( 'https://github.com//', timeout=5 )\r\n except:\r\n #cannot contact github - try later\r\n #exit\r\n s = u.read()\r\n u.close()\r\n\r\nIt's all there, file names, SHA, last commit date, and if I want to read file data, no need to decode a blob, it's at ```https://raw.github.com///master/```\r\n","updated_at":"2012-04-19T16:40:02Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5226090","created_at":"2012-04-19T16:40:02Z","user":{"type":"User","received_events_url":"https://api.github.com/users/tallforasmurf/received_events","avatar_url":"https://secure.gravatar.com/avatar/bff435ae5fc2e73d7c7c8351231e8040?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/tallforasmurf/gists{/gist_id}","followers_url":"https://api.github.com/users/tallforasmurf/followers","following_url":"https://api.github.com/users/tallforasmurf/following","organizations_url":"https://api.github.com/users/tallforasmurf/orgs","starred_url":"https://api.github.com/users/tallforasmurf/starred{/owner}{/repo}","url":"https://api.github.com/users/tallforasmurf","gravatar_id":"bff435ae5fc2e73d7c7c8351231e8040","repos_url":"https://api.github.com/users/tallforasmurf/repos","login":"tallforasmurf","events_url":"https://api.github.com/users/tallforasmurf/events{/privacy}","subscriptions_url":"https://api.github.com/users/tallforasmurf/subscriptions","id":1137018},"id":5226090},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4356743","body":"Thank you for the suggestion. It's somehow related to https://github.com/jacquev6/PyGithub/issues/6, even if I have not described it in details.\r\n\r\nI'm currently doing a very deep rewrite, which will lead to much more readable stack traces in case of exceptions, and I will include more details about the error. I may also be able to detect type errors *before* sending the request to github.\r\n\r\nBy the way, I'm very glad to hear that you have solved a real-life use case using PyGithub :-)","updated_at":"2012-05-01T22:03:59Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5449237","created_at":"2012-05-01T22:03:59Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5449237},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4356743","body":"Good to hear you are already working on this in #6, so I suppose this can be tagged as duplicate and be closed.\r\n\r\nBTW, I cleaned up my script to convert Trac tickets to Github issues and uploaded it to PyPI: http://pypi.python.org/pypi/tratihubis/. It seems that at least some people find it useful, so hopefully it helps to popularize PyGithub a little.","updated_at":"2012-05-04T19:23:57Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5518272","created_at":"2012-05-04T19:23:57Z","user":{"type":"User","received_events_url":"https://api.github.com/users/roskakori/received_events","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/roskakori/gists{/gist_id}","followers_url":"https://api.github.com/users/roskakori/followers","following_url":"https://api.github.com/users/roskakori/following","organizations_url":"https://api.github.com/users/roskakori/orgs","starred_url":"https://api.github.com/users/roskakori/starred{/owner}{/repo}","url":"https://api.github.com/users/roskakori","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","repos_url":"https://api.github.com/users/roskakori/repos","login":"roskakori","events_url":"https://api.github.com/users/roskakori/events{/privacy}","subscriptions_url":"https://api.github.com/users/roskakori/subscriptions","id":328726},"id":5518272},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3617711","body":"This was reported by user in #24. I close this one because the other one has more information.","updated_at":"2012-05-07T10:45:58Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5547576","created_at":"2012-05-07T10:45:58Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5547576},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4622816","body":"Thank you for your feedback.\n\nI have indeed not yet implemented this feature because I have no real use of it: each API call is more than half a second long, so it's hard to reach the rate limit.\n\nAnyway, it is easy to extract the rate limiting headers, so I will add an attribute to the Github class to give access to their last value.\n\nExpect it in version 1.0. I will set an expected date on the milestone during the week-end.\n","updated_at":"2012-05-18T05:27:40Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5780183","created_at":"2012-05-18T05:27:40Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5780183},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4622816","body":"Ah good point about it being hard to reach. Thanks for implementing it. No hurry, though, it's not that important. :-)","updated_at":"2012-05-18T08:34:04Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5781803","created_at":"2012-05-18T08:34:04Z","user":{"type":"User","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","repos_url":"https://api.github.com/users/bilderbuchi/repos","login":"bilderbuchi","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5781803},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4622816","body":"Implemented in ca97469. Will be in version 1.0.","updated_at":"2012-05-21T11:17:12Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5820199","created_at":"2012-05-21T11:17:12Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5820199},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4622816","body":"Thanks. :-)","updated_at":"2012-05-21T12:09:57Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5820912","created_at":"2012-05-21T12:09:57Z","user":{"type":"User","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","repos_url":"https://api.github.com/users/bilderbuchi/repos","login":"bilderbuchi","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5820912},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3624575","body":"It means that there will be three ways to create an instance of the Github class:\n github = Github()\n github = Github( login, password )\n github = Github( oauth_token )\n","updated_at":"2012-05-25T06:31:42Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5924198","created_at":"2012-05-25T06:31:42Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5924198},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4780155","body":"You're definitively my best user ! I hope you will not get tired of discovering bugs and limitations in my library.\n\nThis issue is related to https://github.com/jacquev6/PyGithub/blob/master/github/Requester.py#L28 and the `pageCount < 10`: I've had to limit to 10 pages for some obscure reason I don't remember.\n\nIn version 1.0, `get_issues` (and other `get_collection`s) will not return a Python `list` but a `github.PaginatedList` which will be iterable and not limited to 10 pages, (but you won't be able to call `len` on it).","updated_at":"2012-05-28T13:52:22Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5965724","created_at":"2012-05-28T13:52:22Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5965724},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3527245","body":"For example, `Repository.edit` has a first parameter, `name`, which is mandatory, and should not. We could deduce it from the `name` attribute.","updated_at":"2012-05-28T13:58:35Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5965812","created_at":"2012-05-28T13:58:35Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5965812},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4780155","body":"I see. Is there a possibility to increase the number of items per page to work around this for now? This is in the API (with `&per_page=100` according to API docs), but I'm unsure how to do this in PyGithub. Default is 25, max 100.","updated_at":"2012-05-28T14:04:42Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5965891","created_at":"2012-05-28T14:04:25Z","user":{"type":"User","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","repos_url":"https://api.github.com/users/bilderbuchi/repos","login":"bilderbuchi","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5965891},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4780155","body":"If you can't or don't want to modify PyGithub locally, I'm afraid you're stuck to 10 pages of 25 items, sorry.\n\nIf you can patch PyGithub, just increase/remove the limit on `pageCount` in `Requester.py`.\n\nBe assured I will publish version 1.0 on next Monday, with all the things I promised :)","updated_at":"2012-05-28T14:42:47Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5966555","created_at":"2012-05-28T14:42:47Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5966555},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4780155","body":"I see. I can either patch it locally, or just wait for next week. It will take a while until I get all the other work done, waiting for 1.0 probably won't delay me at all.","updated_at":"2012-05-28T14:47:02Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5966633","created_at":"2012-05-28T14:47:02Z","user":{"type":"User","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","repos_url":"https://api.github.com/users/bilderbuchi/repos","login":"bilderbuchi","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5966633},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4793162","body":"Add a test `Issue33.testClosedIssues` when `Repository.get_issues` uses its 'state' parameter for issue #33","updated_at":"2012-05-29T11:36:02Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5981084","created_at":"2012-05-29T11:36:02Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981084},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4793290","body":"Duplicate of #18...","updated_at":"2012-05-29T11:45:46Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5981232","created_at":"2012-05-29T11:45:46Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981232},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4639931","body":"Will be OK in version 1.0: no more strange meta-description of the API, and the (generated, but it does not mater) code is easily readable by the IDE's auto-completion tool.","updated_at":"2012-05-29T11:56:06Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5981409","created_at":"2012-05-29T11:56:06Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981409},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3716033","body":"This will be covered by #36","updated_at":"2012-05-29T11:58:04Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5981451","created_at":"2012-05-29T11:58:04Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981451},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4793162","body":"@Lyloa I have to mention someone to test `Repository.get_issues` with argument `mentioned`","updated_at":"2012-05-29T18:38:53Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5991965","created_at":"2012-05-29T18:38:53Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5991965},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4356743","body":"Should be much improved by 7248e66. Will be in version 1.0","updated_at":"2012-05-30T19:58:35Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6019700","created_at":"2012-05-30T19:58:35Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6019700},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3619973","body":"Done! You can `easy_install --upgrade PyGithub`.","updated_at":"2012-06-03T19:56:17Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6088432","created_at":"2012-06-03T19:56:17Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6088432},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5036241","body":"PyGithub is definitely licensed under the GNU **Lesser** General Public License.\n\nAccording to http://www.gnu.org/licenses/gpl-howto.html, including both COPYING and COPYING.LESSER is the good way to use the LGPL. Anyway, this is misleading, so I will add a section about licensing in the readme today or tomorrow.\n\nThank you for your feedback, I hope PyGithub will be useful for you.","updated_at":"2012-06-13T10:52:24Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6293572","created_at":"2012-06-13T06:03:24Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6293572},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5036241","body":"Sorry I wasn't up to date on v3 licensing best practices. Thank you very much!\n","updated_at":"2012-06-13T16:17:27Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6305625","created_at":"2012-06-13T16:17:27Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jeblair/received_events","avatar_url":"https://secure.gravatar.com/avatar/12dc328a104d4c4694b3df308bcd4e6d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jeblair/gists{/gist_id}","followers_url":"https://api.github.com/users/jeblair/followers","following_url":"https://api.github.com/users/jeblair/following","organizations_url":"https://api.github.com/users/jeblair/orgs","starred_url":"https://api.github.com/users/jeblair/starred{/owner}{/repo}","url":"https://api.github.com/users/jeblair","gravatar_id":"12dc328a104d4c4694b3df308bcd4e6d","repos_url":"https://api.github.com/users/jeblair/repos","login":"jeblair","events_url":"https://api.github.com/users/jeblair/events{/privacy}","subscriptions_url":"https://api.github.com/users/jeblair/subscriptions","id":899068},"id":6305625},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5092592","body":"Hello, when the user has not set his name, `user.name` is `None`, so you can't concatenate it with a string. The exception is not raised by PyGithub but by your code. Try `print user.login, \"->\", user.name` to avoid string concatenation.","updated_at":"2012-06-15T16:56:50Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6357374","created_at":"2012-06-15T14:08:33Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6357374},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5092592","body":"Perfect! Thanks, that worked. I _knew_ `+` for string concatenation was evil...did not listen.","updated_at":"2012-06-15T14:12:00Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6357422","created_at":"2012-06-15T14:10:33Z","user":{"type":"User","received_events_url":"https://api.github.com/users/aneroid/received_events","avatar_url":"https://secure.gravatar.com/avatar/5557aad9ff70c36cfac418f511bdea98?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/aneroid/gists{/gist_id}","followers_url":"https://api.github.com/users/aneroid/followers","following_url":"https://api.github.com/users/aneroid/following","organizations_url":"https://api.github.com/users/aneroid/orgs","starred_url":"https://api.github.com/users/aneroid/starred{/owner}{/repo}","url":"https://api.github.com/users/aneroid","gravatar_id":"5557aad9ff70c36cfac418f511bdea98","repos_url":"https://api.github.com/users/aneroid/repos","login":"aneroid","events_url":"https://api.github.com/users/aneroid/events{/privacy}","subscriptions_url":"https://api.github.com/users/aneroid/subscriptions","id":1468519},"id":6357422},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5152384","body":"Thank you for your contribution, I will merge it and publish version 1.1 tonight.","updated_at":"2012-06-20T08:15:10Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6447481","created_at":"2012-06-20T08:15:10Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6447481}] +[('status', '200 OK'), ('content-length', '42659'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4967'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 22:43:37 GMT'), ('connection', 'keep-alive'), ('etag', '"e9ac24ceac76d4d31cf648484a47b665"'), ('link', '; rel="next", ; rel="last"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:54:04 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4141750","body":"Thank you for reporting this. I'll publish a fix as soon as possible (tonight or tomorrow)","updated_at":"2012-04-17T05:50:25Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5168757","created_at":"2012-04-17T05:50:25Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5168757},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4141750","body":"Fixed in version 0.6. Please `easy_install --upgrade pygithub`","updated_at":"2012-04-17T17:59:18Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5181640","created_at":"2012-04-17T17:59:18Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5181640},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4141750","body":"yes fixed thanks","updated_at":"2012-04-17T18:58:05Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5183010","created_at":"2012-04-17T18:58:05Z","user":{"type":"User","received_events_url":"https://api.github.com/users/tallforasmurf/received_events","avatar_url":"https://secure.gravatar.com/avatar/bff435ae5fc2e73d7c7c8351231e8040?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/tallforasmurf/gists{/gist_id}","followers_url":"https://api.github.com/users/tallforasmurf/followers","following_url":"https://api.github.com/users/tallforasmurf/following","organizations_url":"https://api.github.com/users/tallforasmurf/orgs","starred_url":"https://api.github.com/users/tallforasmurf/starred{/owner}{/repo}","url":"https://api.github.com/users/tallforasmurf","gravatar_id":"bff435ae5fc2e73d7c7c8351231e8040","repos_url":"https://api.github.com/users/tallforasmurf/repos","login":"tallforasmurf","events_url":"https://api.github.com/users/tallforasmurf/events{/privacy}","subscriptions_url":"https://api.github.com/users/tallforasmurf/subscriptions","id":1137018},"id":5183010},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4159230","body":"`UnknownGithubObject` is the exception I throw when you request an object that doesn't exist. Here, there is no download with `id` `1` or `\"foobar\"` in your repo.\r\n\r\nThe `TypeError` you get when calling `repo.get_download()`is because `get_download` requires an argument as stated in the [reference of classes](https://github.com/PyGithub/PyGithub/blob/master/ReferenceOfClasses.md) (See \"Downloads\" in \"class Repository\").\r\n\r\nSo, what argument should you pass to `get_downloads`? Well, the documentation says `id`, so you can first call `get_downloads` which returns a list of `Download`s, and look what is `Download.id`.\r\n\r\nThe fact is that I have no repository to test this with downloads, but here is an example with issues (`g` is a `Github` instance):\r\n\r\n >>> g.get_user().get_repo( \"PyGithub\" ).get_issues()[0].number\r\n 23\r\n >>> g.get_user().get_repo( \"PyGithub\" ).get_issue( 23 )\r\n \r\n\r\n(I took the `number` attribute of the first `Issue`, because the reference says that `get_issue` takes a `number`.)\r\n\r\nI hope it helps.","updated_at":"2012-04-17T21:10:15Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5186061","created_at":"2012-04-17T21:10:15Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5186061},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4159230","body":"I hope this report will be useful, however, I am not going to be using this package after all. I discovered (what should have been obvious) that I can get everything I need from github just using urllib and reading the page.\r\n\r\n import urllib2\r\n try:\r\n u = urllib2.urlopen( 'https://github.com//', timeout=5 )\r\n except:\r\n #cannot contact github - try later\r\n #exit\r\n s = u.read()\r\n u.close()\r\n\r\nIt's all there, file names, SHA, last commit date, and if I want to read file data, no need to decode a blob, it's at ```https://raw.github.com///master/```\r\n","updated_at":"2012-04-19T16:40:02Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5226090","created_at":"2012-04-19T16:40:02Z","user":{"type":"User","received_events_url":"https://api.github.com/users/tallforasmurf/received_events","avatar_url":"https://secure.gravatar.com/avatar/bff435ae5fc2e73d7c7c8351231e8040?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/tallforasmurf/gists{/gist_id}","followers_url":"https://api.github.com/users/tallforasmurf/followers","following_url":"https://api.github.com/users/tallforasmurf/following","organizations_url":"https://api.github.com/users/tallforasmurf/orgs","starred_url":"https://api.github.com/users/tallforasmurf/starred{/owner}{/repo}","url":"https://api.github.com/users/tallforasmurf","gravatar_id":"bff435ae5fc2e73d7c7c8351231e8040","repos_url":"https://api.github.com/users/tallforasmurf/repos","login":"tallforasmurf","events_url":"https://api.github.com/users/tallforasmurf/events{/privacy}","subscriptions_url":"https://api.github.com/users/tallforasmurf/subscriptions","id":1137018},"id":5226090},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4356743","body":"Thank you for the suggestion. It's somehow related to https://github.com/PyGithub/PyGithub/issues/6, even if I have not described it in details.\r\n\r\nI'm currently doing a very deep rewrite, which will lead to much more readable stack traces in case of exceptions, and I will include more details about the error. I may also be able to detect type errors *before* sending the request to github.\r\n\r\nBy the way, I'm very glad to hear that you have solved a real-life use case using PyGithub :-)","updated_at":"2012-05-01T22:03:59Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5449237","created_at":"2012-05-01T22:03:59Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5449237},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4356743","body":"Good to hear you are already working on this in #6, so I suppose this can be tagged as duplicate and be closed.\r\n\r\nBTW, I cleaned up my script to convert Trac tickets to Github issues and uploaded it to PyPI: http://pypi.python.org/pypi/tratihubis/. It seems that at least some people find it useful, so hopefully it helps to popularize PyGithub a little.","updated_at":"2012-05-04T19:23:57Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5518272","created_at":"2012-05-04T19:23:57Z","user":{"type":"User","received_events_url":"https://api.github.com/users/roskakori/received_events","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/roskakori/gists{/gist_id}","followers_url":"https://api.github.com/users/roskakori/followers","following_url":"https://api.github.com/users/roskakori/following","organizations_url":"https://api.github.com/users/roskakori/orgs","starred_url":"https://api.github.com/users/roskakori/starred{/owner}{/repo}","url":"https://api.github.com/users/roskakori","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","repos_url":"https://api.github.com/users/roskakori/repos","login":"roskakori","events_url":"https://api.github.com/users/roskakori/events{/privacy}","subscriptions_url":"https://api.github.com/users/roskakori/subscriptions","id":328726},"id":5518272},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3617711","body":"This was reported by user in #24. I close this one because the other one has more information.","updated_at":"2012-05-07T10:45:58Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5547576","created_at":"2012-05-07T10:45:58Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5547576},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4622816","body":"Thank you for your feedback.\n\nI have indeed not yet implemented this feature because I have no real use of it: each API call is more than half a second long, so it's hard to reach the rate limit.\n\nAnyway, it is easy to extract the rate limiting headers, so I will add an attribute to the Github class to give access to their last value.\n\nExpect it in version 1.0. I will set an expected date on the milestone during the week-end.\n","updated_at":"2012-05-18T05:27:40Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5780183","created_at":"2012-05-18T05:27:40Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5780183},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4622816","body":"Ah good point about it being hard to reach. Thanks for implementing it. No hurry, though, it's not that important. :-)","updated_at":"2012-05-18T08:34:04Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5781803","created_at":"2012-05-18T08:34:04Z","user":{"type":"User","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","repos_url":"https://api.github.com/users/bilderbuchi/repos","login":"bilderbuchi","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5781803},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4622816","body":"Implemented in ca97469. Will be in version 1.0.","updated_at":"2012-05-21T11:17:12Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5820199","created_at":"2012-05-21T11:17:12Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5820199},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4622816","body":"Thanks. :-)","updated_at":"2012-05-21T12:09:57Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5820912","created_at":"2012-05-21T12:09:57Z","user":{"type":"User","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","repos_url":"https://api.github.com/users/bilderbuchi/repos","login":"bilderbuchi","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5820912},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3624575","body":"It means that there will be three ways to create an instance of the Github class:\n github = Github()\n github = Github( login, password )\n github = Github( oauth_token )\n","updated_at":"2012-05-25T06:31:42Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5924198","created_at":"2012-05-25T06:31:42Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5924198},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4780155","body":"You're definitively my best user ! I hope you will not get tired of discovering bugs and limitations in my library.\n\nThis issue is related to https://github.com/PyGithub/PyGithub/blob/master/github/Requester.py#L28 and the `pageCount < 10`: I've had to limit to 10 pages for some obscure reason I don't remember.\n\nIn version 1.0, `get_issues` (and other `get_collection`s) will not return a Python `list` but a `github.PaginatedList` which will be iterable and not limited to 10 pages, (but you won't be able to call `len` on it).","updated_at":"2012-05-28T13:52:22Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5965724","created_at":"2012-05-28T13:52:22Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5965724},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3527245","body":"For example, `Repository.edit` has a first parameter, `name`, which is mandatory, and should not. We could deduce it from the `name` attribute.","updated_at":"2012-05-28T13:58:35Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5965812","created_at":"2012-05-28T13:58:35Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5965812},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4780155","body":"I see. Is there a possibility to increase the number of items per page to work around this for now? This is in the API (with `&per_page=100` according to API docs), but I'm unsure how to do this in PyGithub. Default is 25, max 100.","updated_at":"2012-05-28T14:04:42Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5965891","created_at":"2012-05-28T14:04:25Z","user":{"type":"User","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","repos_url":"https://api.github.com/users/bilderbuchi/repos","login":"bilderbuchi","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5965891},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4780155","body":"If you can't or don't want to modify PyGithub locally, I'm afraid you're stuck to 10 pages of 25 items, sorry.\n\nIf you can patch PyGithub, just increase/remove the limit on `pageCount` in `Requester.py`.\n\nBe assured I will publish version 1.0 on next Monday, with all the things I promised :)","updated_at":"2012-05-28T14:42:47Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5966555","created_at":"2012-05-28T14:42:47Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5966555},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4780155","body":"I see. I can either patch it locally, or just wait for next week. It will take a while until I get all the other work done, waiting for 1.0 probably won't delay me at all.","updated_at":"2012-05-28T14:47:02Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5966633","created_at":"2012-05-28T14:47:02Z","user":{"type":"User","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","repos_url":"https://api.github.com/users/bilderbuchi/repos","login":"bilderbuchi","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":5966633},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4793162","body":"Add a test `Issue33.testClosedIssues` when `Repository.get_issues` uses its 'state' parameter for issue #33","updated_at":"2012-05-29T11:36:02Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5981084","created_at":"2012-05-29T11:36:02Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981084},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4793290","body":"Duplicate of #18...","updated_at":"2012-05-29T11:45:46Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5981232","created_at":"2012-05-29T11:45:46Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981232},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4639931","body":"Will be OK in version 1.0: no more strange meta-description of the API, and the (generated, but it does not mater) code is easily readable by the IDE's auto-completion tool.","updated_at":"2012-05-29T11:56:06Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5981409","created_at":"2012-05-29T11:56:06Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981409},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3716033","body":"This will be covered by #36","updated_at":"2012-05-29T11:58:04Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5981451","created_at":"2012-05-29T11:58:04Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5981451},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4793162","body":"@Lyloa I have to mention someone to test `Repository.get_issues` with argument `mentioned`","updated_at":"2012-05-29T18:38:53Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5991965","created_at":"2012-05-29T18:38:53Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":5991965},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4356743","body":"Should be much improved by 7248e66. Will be in version 1.0","updated_at":"2012-05-30T19:58:35Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6019700","created_at":"2012-05-30T19:58:35Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6019700},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3619973","body":"Done! You can `easy_install --upgrade PyGithub`.","updated_at":"2012-06-03T19:56:17Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6088432","created_at":"2012-06-03T19:56:17Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6088432},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5036241","body":"PyGithub is definitely licensed under the GNU **Lesser** General Public License.\n\nAccording to http://www.gnu.org/licenses/gpl-howto.html, including both COPYING and COPYING.LESSER is the good way to use the LGPL. Anyway, this is misleading, so I will add a section about licensing in the readme today or tomorrow.\n\nThank you for your feedback, I hope PyGithub will be useful for you.","updated_at":"2012-06-13T10:52:24Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6293572","created_at":"2012-06-13T06:03:24Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6293572},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5036241","body":"Sorry I wasn't up to date on v3 licensing best practices. Thank you very much!\n","updated_at":"2012-06-13T16:17:27Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6305625","created_at":"2012-06-13T16:17:27Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jeblair/received_events","avatar_url":"https://secure.gravatar.com/avatar/12dc328a104d4c4694b3df308bcd4e6d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jeblair/gists{/gist_id}","followers_url":"https://api.github.com/users/jeblair/followers","following_url":"https://api.github.com/users/jeblair/following","organizations_url":"https://api.github.com/users/jeblair/orgs","starred_url":"https://api.github.com/users/jeblair/starred{/owner}{/repo}","url":"https://api.github.com/users/jeblair","gravatar_id":"12dc328a104d4c4694b3df308bcd4e6d","repos_url":"https://api.github.com/users/jeblair/repos","login":"jeblair","events_url":"https://api.github.com/users/jeblair/events{/privacy}","subscriptions_url":"https://api.github.com/users/jeblair/subscriptions","id":899068},"id":6305625},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5092592","body":"Hello, when the user has not set his name, `user.name` is `None`, so you can't concatenate it with a string. The exception is not raised by PyGithub but by your code. Try `print user.login, \"->\", user.name` to avoid string concatenation.","updated_at":"2012-06-15T16:56:50Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6357374","created_at":"2012-06-15T14:08:33Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6357374},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5092592","body":"Perfect! Thanks, that worked. I _knew_ `+` for string concatenation was evil...did not listen.","updated_at":"2012-06-15T14:12:00Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6357422","created_at":"2012-06-15T14:10:33Z","user":{"type":"User","received_events_url":"https://api.github.com/users/aneroid/received_events","avatar_url":"https://secure.gravatar.com/avatar/5557aad9ff70c36cfac418f511bdea98?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/aneroid/gists{/gist_id}","followers_url":"https://api.github.com/users/aneroid/followers","following_url":"https://api.github.com/users/aneroid/following","organizations_url":"https://api.github.com/users/aneroid/orgs","starred_url":"https://api.github.com/users/aneroid/starred{/owner}{/repo}","url":"https://api.github.com/users/aneroid","gravatar_id":"5557aad9ff70c36cfac418f511bdea98","repos_url":"https://api.github.com/users/aneroid/repos","login":"aneroid","events_url":"https://api.github.com/users/aneroid/events{/privacy}","subscriptions_url":"https://api.github.com/users/aneroid/subscriptions","id":1468519},"id":6357422},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5152384","body":"Thank you for your contribution, I will merge it and publish version 1.1 tonight.","updated_at":"2012-06-20T08:15:10Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6447481","created_at":"2012-06-20T08:15:10Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6447481}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/comments?direction=asc&page=2&sort=created +/repos/PyGithub/PyGithub/issues/comments?direction=asc&page=2&sort=created {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('content-length', '46165'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4966'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 18:46:45 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"446137bf216c4edc30567fbc3e944b5a"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:54:15 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"updated_at":"2012-06-20T21:06:08Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5152384","created_at":"2012-06-20T21:06:08Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6467193","body":"I've just pushed the version 1.1 of the package. You can `easy_install --upgrade PyGithub` if you want.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6467193},{"updated_at":"2012-06-20T21:11:31Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5177381","created_at":"2012-06-20T21:11:31Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6467312","body":"Hello Alex, thank you for your feedback.\n\nI've just pushed the version 1.1 of the package. I've used `package_data` as explained in the [documentation of distutils](http://docs.python.org/distutils/setupscript.html#installing-package-data), but I'm still not very confident about my understanding of distutils... \n\nCould you please upgrade the package and tell if it's better?","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6467312},{"updated_at":"2012-06-20T21:33:50Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5177381","created_at":"2012-06-20T21:22:44Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6467642","body":"Thanks for looking at this so quickly! Here's the result of running `python setup.py install` with your new changes:\n\n```\n\nrunning install_lib\ncopying build/lib/COPYING -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\ncopying build/lib/COPYING.LESSER -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\ncreating /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/Design.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/ReferenceOfApis.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/ReferenceOfClasses.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/github/Requester.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/github\ncopying build/lib/ReadMe.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\n\n```\n\nI wish I could help, but I'm afraid I don't know how setuptools works.","user":{"type":"User","repos_url":"https://api.github.com/users/malexw/repos","subscriptions_url":"https://api.github.com/users/malexw/subscriptions","events_url":"https://api.github.com/users/malexw/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/13a30f9924fa2bd918cbb8d06dd8b55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"malexw","received_events_url":"https://api.github.com/users/malexw/received_events","gists_url":"https://api.github.com/users/malexw/gists{/gist_id}","url":"https://api.github.com/users/malexw","followers_url":"https://api.github.com/users/malexw/followers","following_url":"https://api.github.com/users/malexw/following","organizations_url":"https://api.github.com/users/malexw/orgs","starred_url":"https://api.github.com/users/malexw/starred{/owner}{/repo}","gravatar_id":"13a30f9924fa2bd918cbb8d06dd8b55a","id":577322},"id":6467642},{"updated_at":"2012-06-21T12:42:19Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5191621","created_at":"2012-06-21T12:42:19Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6481200","body":"Those new apis where documented on June 5th, in https://github.com/github/developer.github.com/commit/3cff4bb9a1f1baf3101c984072cd4b4f0165618c. This explains that they are not covered by PyGithub 1.0 that was released on June 3rd.\n\nIt should not be too difficult to support them. I'll try to do it next week.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6481200},{"updated_at":"2012-06-21T12:52:06Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5191621","created_at":"2012-06-21T12:52:06Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6481392","body":"Thank you","user":{"type":"User","repos_url":"https://api.github.com/users/kukuts/repos","subscriptions_url":"https://api.github.com/users/kukuts/subscriptions","events_url":"https://api.github.com/users/kukuts/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/9be6ba907be1740213b69422fdf52b57?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"kukuts","received_events_url":"https://api.github.com/users/kukuts/received_events","gists_url":"https://api.github.com/users/kukuts/gists{/gist_id}","url":"https://api.github.com/users/kukuts","followers_url":"https://api.github.com/users/kukuts/followers","following_url":"https://api.github.com/users/kukuts/following","organizations_url":"https://api.github.com/users/kukuts/orgs","starred_url":"https://api.github.com/users/kukuts/starred{/owner}{/repo}","gravatar_id":"9be6ba907be1740213b69422fdf52b57","id":1831238},"id":6481392},{"updated_at":"2012-06-25T18:47:30Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5256315","created_at":"2012-06-25T18:47:30Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6556134","body":"I was running into issues with labels with spaces. The _identity attribute is just the URL encoded name.\n\nIt works great for building a URL endpoint, but not so great when the label's name is going to part of the POST body since it causes GitHub to return a 422 error complaining that the label doesn't exist.","user":{"type":"User","repos_url":"https://api.github.com/users/philipkimmey/repos","subscriptions_url":"https://api.github.com/users/philipkimmey/subscriptions","events_url":"https://api.github.com/users/philipkimmey/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/decc9323f241b6dd24ec35ef7cabaf75?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"philipkimmey","received_events_url":"https://api.github.com/users/philipkimmey/received_events","gists_url":"https://api.github.com/users/philipkimmey/gists{/gist_id}","url":"https://api.github.com/users/philipkimmey","followers_url":"https://api.github.com/users/philipkimmey/followers","following_url":"https://api.github.com/users/philipkimmey/following","organizations_url":"https://api.github.com/users/philipkimmey/orgs","starred_url":"https://api.github.com/users/philipkimmey/starred{/owner}{/repo}","gravatar_id":"decc9323f241b6dd24ec35ef7cabaf75","id":211079},"id":6556134},{"updated_at":"2012-06-25T19:33:48Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5256315","created_at":"2012-06-25T19:30:24Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6557261","body":"You're perfectly right, thank you! I'll merge your contribution and publish a new version next week-end.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6557261},{"updated_at":"2012-06-26T06:34:33Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5259624","created_at":"2012-06-26T06:34:33Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6568164","body":"Welcome back! Indeed, PyGithub has evolved (and stabilized).\n\nMethods that used to return a list of objects now return a `PaginatedList`. `PaginatedList` instances are only iterable (They do not support concatenation as lists do, and you cannot call `len` on them).\n\nThe rationale behind that? It is related to issue #33 and requests returning a large number of objects. In the previous version, creating a list of all the requested objects required a lot of [pagination requests](http://developer.github.com/v3/#pagination), and was quite long. It was a waste of time if the user was interested only in the first elements of that list. Enters `PaginatedList`, which does the pagination requests only when really needed. And it is no more limited to 10 pages.\n\nSo, to achieve what your are trying to do, you have to iterate the `PaginatedList` explicitly, either in a loop, or in the constructor of another collection.\n\nSimple iteration:\n\n for issue in itertools.chain(\n repo.get_issues( state = 'closed' ),\n repo.get_issues( state = 'open' )\n ):\n do stuff\n\nReal list from PaginatedList (and then you can have its length):\n\n issues = list( repo.get_issues( state = 'closed' ) ) + list( repo.get_issues( state = 'open' ) )\n nb_issues = len( issues )\n","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6568164},{"updated_at":"2012-06-26T06:35:48Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5259624","created_at":"2012-06-26T06:35:48Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6568181","body":"I'll try to document this behavior soon.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6568181},{"updated_at":"2012-06-26T07:02:14Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5259624","created_at":"2012-06-26T07:02:14Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6568553","body":"Thanks for this, very helpful. I didn't know I could cast to list so easily (could've tried, though >.<)","user":{"type":"User","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","url":"https://api.github.com/users/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","id":327442},"id":6568553},{"updated_at":"2012-06-28T20:10:39Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5256315","created_at":"2012-06-28T20:10:39Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6640187","body":"I've fixed Repository.create_issue and .get_issues as well.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6640187},{"updated_at":"2012-06-28T20:10:44Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5256315","created_at":"2012-06-28T20:10:44Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6640189","body":"I've just merged your commit in branch `develop`. It will go in `master` when I publish version 1.2. You can expect it on Saturday or Sunday. Thank you again for the bug report and the associated patch.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6640189},{"updated_at":"2012-06-28T21:02:23Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5191621","created_at":"2012-06-28T20:49:13Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6641223","body":"Problem: issues returned by the [`/legacy/issues/search` API](http://developer.github.com/v3/search/#search-issues) do not match those returned by [other v3 APIs](http://developer.github.com/v3/issues/#response):\n* labels are returned only by name, not not name, color and url\n* date-time format is different\n* maybe something else\n\nOf course, similar differences exist for users and repositories.\n\nIntegrating this legacy API will be more difficult than I thought.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6641223},{"updated_at":"2012-06-29T18:47:28Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5191621","created_at":"2012-06-29T18:47:28Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6673380","body":"This is implemented in version 1.2, you can update from pypi.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6673380},{"updated_at":"2012-07-02T14:58:45Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","created_at":"2012-07-02T14:58:45Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6710355","body":"Interestingly, if I convert this manually in the meantime, using the method you use in the PyGithub code (`tdate=datetime.datetime.strptime(t.commit.commit.committer.date, \"%Y-%m-%dT%H:%M:%SZ\")`), I get an error cause the format does not match. I get a string of the form `2010-02-11T01:17:27-08:00` - time zone information has been added, but I don't know how to parse it, the `:` in `-08:00` prevents me from using `%z` (which expects UTC offset in the form +HHMM or -HHMM). I will discard it for now, but maybe you got insight why this happens?","user":{"type":"User","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","url":"https://api.github.com/users/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","id":327442},"id":6710355},{"updated_at":"2012-07-03T07:15:53Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","created_at":"2012-07-03T07:15:53Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6727553","body":"Hello Christoph!\n\nIndeed this attribute should be a `datetime.datetime`. And as you noticed, it is not formated like other dates returned by Github... I remember I discovered that when I was doing the conversion from string of all the `*_at` and `*_on` attributes, and I did not take time to dig deeper.\n\nI will create a more generic date parsing function that handles all formats returned by Github, and I'll use it for all `datetime` attributes.\n\nBut before that, I'll have to understand timezone handling in Python, so do not expect this too soon (maybe mid-July).","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6727553},{"updated_at":"2012-07-03T07:24:21Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","created_at":"2012-07-03T07:24:21Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6727659","body":"yeah no problem, I'm not reliant on so precise information, take your time. btw, maybe that's a bug in the github API? why would this one time be returned in a different way than all the others? I can't see a reason for this.\n\nagreed, time(zones) in python are crazy at times.","user":{"type":"User","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","url":"https://api.github.com/users/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","id":327442},"id":6727659},{"updated_at":"2012-07-03T07:36:30Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","created_at":"2012-07-03T07:36:30Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6727848","body":"I don't think it's a bug in Github:\n* `GitAuthor.date` is related to an action done somewhere (on the committer's computer), so it carries the timezone of this computer\n* other datetimes are related to actions done on Github's servers, so it's returned with a \"Z\" timezone meaning \"UTC\", the timezone of these servers.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6727848},{"updated_at":"2012-07-03T07:50:18Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","created_at":"2012-07-03T07:50:18Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6728069","body":"And by the way, I'm not sure it's a problem for you but I prefer to make it clear: if `tag` is a `Tag`, then `tag.commit.commit.committer.date` is the date of the tagged commit, not the date of the tag. If you really need the date of the tag, you need a `GitTag` and use `git_tag.tagger.date`.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6728069},{"updated_at":"2012-07-03T07:59:36Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","created_at":"2012-07-03T07:59:36Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6728241","body":"ah, makes sense. If you want to avoid the timezone confusion, mayb what is suggested [here](http://stackoverflow.com/a/117615/599884) makes most sense: \n\"Keep your internal datetime objects naive and in UTC and convert to your timezone for formatting only. The reason why you probably want naive objects (objects without timezone information) is that many libraries and database adapters have no idea about timezones.\"\nSo maybe it makes sense to just convert the GitAuthor times to UTC when getting them (i.e. apply the offset to the given time), to be consistent with the rest.\n\nThanks about the clarification re: GitTag/Tag. I prefer the date of the tagged commit, though, the tags mark release commits.\n","user":{"type":"User","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","url":"https://api.github.com/users/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","id":327442},"id":6728241},{"updated_at":"2012-07-07T18:18:46Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","created_at":"2012-07-03T08:08:08Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6728370","body":"If I convert the `GitAuthor.date` to UTC, I loose the information about where the committer lives... It may or may not be a problem depending on my client's use case.\n\nI'll find a way to make it clear and not loose information, maybe I will convert `date` to UTC (keep it naive), and add another attribute `timezone` to `GitAuthor`.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6728370},{"updated_at":"2012-07-10T19:42:43Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","created_at":"2012-07-10T19:42:43Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6886561","body":"I still have to convert the datetime to UTC. But there is something silly about timezones returned by Github: my commits are timezoned \"-07:00\" while I live in France (UTC +1 or +2). I have to investigate that.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6886561},{"updated_at":"2012-07-13T19:17:15Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","created_at":"2012-07-13T19:05:53Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6972414","body":"Well, well, well... I now revise my judgement: **absolutely all** commits I've retrieved from Github are in timezone -07:00, so this must indeed be a flaw in the API, returning date formatted in the local timezone of the GIthub servers only for this attribute. @bilderbuchi, you were right in https://github.com/jacquev6/PyGithub/issues/54#issuecomment-6727659 :-)\n\nThere is no point keeping this GitAuthor.timezone attribute. I will just convert everything to UTC.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6972414},{"updated_at":"2012-07-15T19:57:26Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","created_at":"2012-07-15T19:57:26Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6994436","body":"ok. maybe also write to github about this probable bug in the API, to see what's the deal?","user":{"type":"User","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","url":"https://api.github.com/users/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","id":327442},"id":6994436},{"updated_at":"2012-07-18T09:12:53Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","created_at":"2012-07-18T09:12:53Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7060818","body":"@bilderbuchi, to be honest, I don't think I will take time to contact Github about that.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":7060818},{"updated_at":"2012-07-18T09:21:16Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","created_at":"2012-07-18T09:21:16Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7060993","body":"Sure, I understand. :-)","user":{"type":"User","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","url":"https://api.github.com/users/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","id":327442},"id":7060993},{"updated_at":"2012-07-24T16:07:06Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5783131","created_at":"2012-07-24T16:07:06Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7211543","body":"Thank you for this useful contribution! You even respected my special spacing convention!\n\nI will publish the version 1.4 of PyGithub next week-end.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":7211543},{"updated_at":"2012-07-31T18:47:09Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5783131","created_at":"2012-07-31T18:47:09Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7407798","body":"Hum, I'm having trouble with my computer and not much time to fix it. I'll publish PyGithub 1.4 as soon as possible.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":7407798},{"updated_at":"2012-08-04T06:11:43Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5806612","created_at":"2012-08-04T06:11:43Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7499550","body":"Published, at last...","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":7499550},{"updated_at":"2012-08-21T22:15:01Z","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6353712","created_at":"2012-08-21T22:15:01Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7918385","body":"Hello!\n\nI confirm that the following code exhibits the same issue:\n\n import github\n\n g = github.Github()\n r = g.get_user( \"jacquev6\" ).get_repo( \"PyGithub\" )\n p = r.get_pull( 57 )\n print p.title, \"has\", p.comments, \"comments\"\n print [ c.body[ :15 ] for c in p.get_comments() ]\n\nIt prints:\n\n Allows connection to GitHub Enterprise installs on local URLs has 2 comments\n []\n\nThis last line calls API https://api.github.com/repos/jacquev6/PyGithub/pulls/57/comments, as documented in http://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request, but the API returns an empty list. I've just managed to get the comments by calling https://api.github.com/repos/jacquev6/PyGithub/issues/57/comments instead. The issue must be on Github's side.\n\nAs a **temporary** work-around, you can use the following code to do as if the pull request is an issue, and call the other API:\n\n print [ c.body[ :15 ] for c in r.get_issue( p.number ).get_comments() ]\n\nRight now, I have not enough time to take care of this problem, but if it's still here at the beginning of September, I will contact Github and/or patch PyGithub.\n\nEnjoy,","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":7918385}] +[('status', '200 OK'), ('content-length', '46165'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4966'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 18:46:45 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"446137bf216c4edc30567fbc3e944b5a"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:54:15 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"updated_at":"2012-06-20T21:06:08Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5152384","created_at":"2012-06-20T21:06:08Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6467193","body":"I've just pushed the version 1.1 of the package. You can `easy_install --upgrade PyGithub` if you want.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6467193},{"updated_at":"2012-06-20T21:11:31Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5177381","created_at":"2012-06-20T21:11:31Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6467312","body":"Hello Alex, thank you for your feedback.\n\nI've just pushed the version 1.1 of the package. I've used `package_data` as explained in the [documentation of distutils](http://docs.python.org/distutils/setupscript.html#installing-package-data), but I'm still not very confident about my understanding of distutils... \n\nCould you please upgrade the package and tell if it's better?","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6467312},{"updated_at":"2012-06-20T21:33:50Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5177381","created_at":"2012-06-20T21:22:44Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6467642","body":"Thanks for looking at this so quickly! Here's the result of running `python setup.py install` with your new changes:\n\n```\n\nrunning install_lib\ncopying build/lib/COPYING -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\ncopying build/lib/COPYING.LESSER -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\ncreating /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/Design.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/ReferenceOfApis.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/ReferenceOfClasses.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/github/Requester.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/github\ncopying build/lib/ReadMe.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\n\n```\n\nI wish I could help, but I'm afraid I don't know how setuptools works.","user":{"type":"User","repos_url":"https://api.github.com/users/malexw/repos","subscriptions_url":"https://api.github.com/users/malexw/subscriptions","events_url":"https://api.github.com/users/malexw/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/13a30f9924fa2bd918cbb8d06dd8b55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"malexw","received_events_url":"https://api.github.com/users/malexw/received_events","gists_url":"https://api.github.com/users/malexw/gists{/gist_id}","url":"https://api.github.com/users/malexw","followers_url":"https://api.github.com/users/malexw/followers","following_url":"https://api.github.com/users/malexw/following","organizations_url":"https://api.github.com/users/malexw/orgs","starred_url":"https://api.github.com/users/malexw/starred{/owner}{/repo}","gravatar_id":"13a30f9924fa2bd918cbb8d06dd8b55a","id":577322},"id":6467642},{"updated_at":"2012-06-21T12:42:19Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5191621","created_at":"2012-06-21T12:42:19Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6481200","body":"Those new apis where documented on June 5th, in https://github.com/github/developer.github.com/commit/3cff4bb9a1f1baf3101c984072cd4b4f0165618c. This explains that they are not covered by PyGithub 1.0 that was released on June 3rd.\n\nIt should not be too difficult to support them. I'll try to do it next week.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6481200},{"updated_at":"2012-06-21T12:52:06Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5191621","created_at":"2012-06-21T12:52:06Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6481392","body":"Thank you","user":{"type":"User","repos_url":"https://api.github.com/users/kukuts/repos","subscriptions_url":"https://api.github.com/users/kukuts/subscriptions","events_url":"https://api.github.com/users/kukuts/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/9be6ba907be1740213b69422fdf52b57?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"kukuts","received_events_url":"https://api.github.com/users/kukuts/received_events","gists_url":"https://api.github.com/users/kukuts/gists{/gist_id}","url":"https://api.github.com/users/kukuts","followers_url":"https://api.github.com/users/kukuts/followers","following_url":"https://api.github.com/users/kukuts/following","organizations_url":"https://api.github.com/users/kukuts/orgs","starred_url":"https://api.github.com/users/kukuts/starred{/owner}{/repo}","gravatar_id":"9be6ba907be1740213b69422fdf52b57","id":1831238},"id":6481392},{"updated_at":"2012-06-25T18:47:30Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5256315","created_at":"2012-06-25T18:47:30Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6556134","body":"I was running into issues with labels with spaces. The _identity attribute is just the URL encoded name.\n\nIt works great for building a URL endpoint, but not so great when the label's name is going to part of the POST body since it causes GitHub to return a 422 error complaining that the label doesn't exist.","user":{"type":"User","repos_url":"https://api.github.com/users/philipkimmey/repos","subscriptions_url":"https://api.github.com/users/philipkimmey/subscriptions","events_url":"https://api.github.com/users/philipkimmey/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/decc9323f241b6dd24ec35ef7cabaf75?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"philipkimmey","received_events_url":"https://api.github.com/users/philipkimmey/received_events","gists_url":"https://api.github.com/users/philipkimmey/gists{/gist_id}","url":"https://api.github.com/users/philipkimmey","followers_url":"https://api.github.com/users/philipkimmey/followers","following_url":"https://api.github.com/users/philipkimmey/following","organizations_url":"https://api.github.com/users/philipkimmey/orgs","starred_url":"https://api.github.com/users/philipkimmey/starred{/owner}{/repo}","gravatar_id":"decc9323f241b6dd24ec35ef7cabaf75","id":211079},"id":6556134},{"updated_at":"2012-06-25T19:33:48Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5256315","created_at":"2012-06-25T19:30:24Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6557261","body":"You're perfectly right, thank you! I'll merge your contribution and publish a new version next week-end.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6557261},{"updated_at":"2012-06-26T06:34:33Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5259624","created_at":"2012-06-26T06:34:33Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6568164","body":"Welcome back! Indeed, PyGithub has evolved (and stabilized).\n\nMethods that used to return a list of objects now return a `PaginatedList`. `PaginatedList` instances are only iterable (They do not support concatenation as lists do, and you cannot call `len` on them).\n\nThe rationale behind that? It is related to issue #33 and requests returning a large number of objects. In the previous version, creating a list of all the requested objects required a lot of [pagination requests](http://developer.github.com/v3/#pagination), and was quite long. It was a waste of time if the user was interested only in the first elements of that list. Enters `PaginatedList`, which does the pagination requests only when really needed. And it is no more limited to 10 pages.\n\nSo, to achieve what your are trying to do, you have to iterate the `PaginatedList` explicitly, either in a loop, or in the constructor of another collection.\n\nSimple iteration:\n\n for issue in itertools.chain(\n repo.get_issues( state = 'closed' ),\n repo.get_issues( state = 'open' )\n ):\n do stuff\n\nReal list from PaginatedList (and then you can have its length):\n\n issues = list( repo.get_issues( state = 'closed' ) ) + list( repo.get_issues( state = 'open' ) )\n nb_issues = len( issues )\n","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6568164},{"updated_at":"2012-06-26T06:35:48Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5259624","created_at":"2012-06-26T06:35:48Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6568181","body":"I'll try to document this behavior soon.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6568181},{"updated_at":"2012-06-26T07:02:14Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5259624","created_at":"2012-06-26T07:02:14Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6568553","body":"Thanks for this, very helpful. I didn't know I could cast to list so easily (could've tried, though >.<)","user":{"type":"User","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","url":"https://api.github.com/users/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","id":327442},"id":6568553},{"updated_at":"2012-06-28T20:10:39Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5256315","created_at":"2012-06-28T20:10:39Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6640187","body":"I've fixed Repository.create_issue and .get_issues as well.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6640187},{"updated_at":"2012-06-28T20:10:44Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5256315","created_at":"2012-06-28T20:10:44Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6640189","body":"I've just merged your commit in branch `develop`. It will go in `master` when I publish version 1.2. You can expect it on Saturday or Sunday. Thank you again for the bug report and the associated patch.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6640189},{"updated_at":"2012-06-28T21:02:23Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5191621","created_at":"2012-06-28T20:49:13Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6641223","body":"Problem: issues returned by the [`/legacy/issues/search` API](http://developer.github.com/v3/search/#search-issues) do not match those returned by [other v3 APIs](http://developer.github.com/v3/issues/#response):\n* labels are returned only by name, not not name, color and url\n* date-time format is different\n* maybe something else\n\nOf course, similar differences exist for users and repositories.\n\nIntegrating this legacy API will be more difficult than I thought.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6641223},{"updated_at":"2012-06-29T18:47:28Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5191621","created_at":"2012-06-29T18:47:28Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6673380","body":"This is implemented in version 1.2, you can update from pypi.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6673380},{"updated_at":"2012-07-02T14:58:45Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","created_at":"2012-07-02T14:58:45Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6710355","body":"Interestingly, if I convert this manually in the meantime, using the method you use in the PyGithub code (`tdate=datetime.datetime.strptime(t.commit.commit.committer.date, \"%Y-%m-%dT%H:%M:%SZ\")`), I get an error cause the format does not match. I get a string of the form `2010-02-11T01:17:27-08:00` - time zone information has been added, but I don't know how to parse it, the `:` in `-08:00` prevents me from using `%z` (which expects UTC offset in the form +HHMM or -HHMM). I will discard it for now, but maybe you got insight why this happens?","user":{"type":"User","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","url":"https://api.github.com/users/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","id":327442},"id":6710355},{"updated_at":"2012-07-03T07:15:53Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","created_at":"2012-07-03T07:15:53Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6727553","body":"Hello Christoph!\n\nIndeed this attribute should be a `datetime.datetime`. And as you noticed, it is not formated like other dates returned by Github... I remember I discovered that when I was doing the conversion from string of all the `*_at` and `*_on` attributes, and I did not take time to dig deeper.\n\nI will create a more generic date parsing function that handles all formats returned by Github, and I'll use it for all `datetime` attributes.\n\nBut before that, I'll have to understand timezone handling in Python, so do not expect this too soon (maybe mid-July).","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6727553},{"updated_at":"2012-07-03T07:24:21Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","created_at":"2012-07-03T07:24:21Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6727659","body":"yeah no problem, I'm not reliant on so precise information, take your time. btw, maybe that's a bug in the github API? why would this one time be returned in a different way than all the others? I can't see a reason for this.\n\nagreed, time(zones) in python are crazy at times.","user":{"type":"User","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","url":"https://api.github.com/users/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","id":327442},"id":6727659},{"updated_at":"2012-07-03T07:36:30Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","created_at":"2012-07-03T07:36:30Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6727848","body":"I don't think it's a bug in Github:\n* `GitAuthor.date` is related to an action done somewhere (on the committer's computer), so it carries the timezone of this computer\n* other datetimes are related to actions done on Github's servers, so it's returned with a \"Z\" timezone meaning \"UTC\", the timezone of these servers.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6727848},{"updated_at":"2012-07-03T07:50:18Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","created_at":"2012-07-03T07:50:18Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6728069","body":"And by the way, I'm not sure it's a problem for you but I prefer to make it clear: if `tag` is a `Tag`, then `tag.commit.commit.committer.date` is the date of the tagged commit, not the date of the tag. If you really need the date of the tag, you need a `GitTag` and use `git_tag.tagger.date`.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6728069},{"updated_at":"2012-07-03T07:59:36Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","created_at":"2012-07-03T07:59:36Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6728241","body":"ah, makes sense. If you want to avoid the timezone confusion, mayb what is suggested [here](http://stackoverflow.com/a/117615/599884) makes most sense: \n\"Keep your internal datetime objects naive and in UTC and convert to your timezone for formatting only. The reason why you probably want naive objects (objects without timezone information) is that many libraries and database adapters have no idea about timezones.\"\nSo maybe it makes sense to just convert the GitAuthor times to UTC when getting them (i.e. apply the offset to the given time), to be consistent with the rest.\n\nThanks about the clarification re: GitTag/Tag. I prefer the date of the tagged commit, though, the tags mark release commits.\n","user":{"type":"User","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","url":"https://api.github.com/users/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","id":327442},"id":6728241},{"updated_at":"2012-07-07T18:18:46Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","created_at":"2012-07-03T08:08:08Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6728370","body":"If I convert the `GitAuthor.date` to UTC, I loose the information about where the committer lives... It may or may not be a problem depending on my client's use case.\n\nI'll find a way to make it clear and not loose information, maybe I will convert `date` to UTC (keep it naive), and add another attribute `timezone` to `GitAuthor`.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6728370},{"updated_at":"2012-07-10T19:42:43Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","created_at":"2012-07-10T19:42:43Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6886561","body":"I still have to convert the datetime to UTC. But there is something silly about timezones returned by Github: my commits are timezoned \"-07:00\" while I live in France (UTC +1 or +2). I have to investigate that.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6886561},{"updated_at":"2012-07-13T19:17:15Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","created_at":"2012-07-13T19:05:53Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6972414","body":"Well, well, well... I now revise my judgement: **absolutely all** commits I've retrieved from Github are in timezone -07:00, so this must indeed be a flaw in the API, returning date formatted in the local timezone of the GIthub servers only for this attribute. @bilderbuchi, you were right in https://github.com/PyGithub/PyGithub/issues/54#issuecomment-6727659 :-)\n\nThere is no point keeping this GitAuthor.timezone attribute. I will just convert everything to UTC.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":6972414},{"updated_at":"2012-07-15T19:57:26Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","created_at":"2012-07-15T19:57:26Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6994436","body":"ok. maybe also write to github about this probable bug in the API, to see what's the deal?","user":{"type":"User","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","url":"https://api.github.com/users/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","id":327442},"id":6994436},{"updated_at":"2012-07-18T09:12:53Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","created_at":"2012-07-18T09:12:53Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7060818","body":"@bilderbuchi, to be honest, I don't think I will take time to contact Github about that.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":7060818},{"updated_at":"2012-07-18T09:21:16Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","created_at":"2012-07-18T09:21:16Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7060993","body":"Sure, I understand. :-)","user":{"type":"User","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","url":"https://api.github.com/users/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","id":327442},"id":7060993},{"updated_at":"2012-07-24T16:07:06Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5783131","created_at":"2012-07-24T16:07:06Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7211543","body":"Thank you for this useful contribution! You even respected my special spacing convention!\n\nI will publish the version 1.4 of PyGithub next week-end.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":7211543},{"updated_at":"2012-07-31T18:47:09Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5783131","created_at":"2012-07-31T18:47:09Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7407798","body":"Hum, I'm having trouble with my computer and not much time to fix it. I'll publish PyGithub 1.4 as soon as possible.","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":7407798},{"updated_at":"2012-08-04T06:11:43Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5806612","created_at":"2012-08-04T06:11:43Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7499550","body":"Published, at last...","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":7499550},{"updated_at":"2012-08-21T22:15:01Z","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6353712","created_at":"2012-08-21T22:15:01Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7918385","body":"Hello!\n\nI confirm that the following code exhibits the same issue:\n\n import github\n\n g = github.Github()\n r = g.get_user( \"jacquev6\" ).get_repo( \"PyGithub\" )\n p = r.get_pull( 57 )\n print p.title, \"has\", p.comments, \"comments\"\n print [ c.body[ :15 ] for c in p.get_comments() ]\n\nIt prints:\n\n Allows connection to GitHub Enterprise installs on local URLs has 2 comments\n []\n\nThis last line calls API https://api.github.com/repos/PyGithub/PyGithub/pulls/57/comments, as documented in http://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request, but the API returns an empty list. I've just managed to get the comments by calling https://api.github.com/repos/PyGithub/PyGithub/issues/57/comments instead. The issue must be on Github's side.\n\nAs a **temporary** work-around, you can use the following code to do as if the pull request is an issue, and call the other API:\n\n print [ c.body[ :15 ] for c in r.get_issue( p.number ).get_comments() ]\n\nRight now, I have not enough time to take care of this problem, but if it's still here at the beginning of September, I will contact Github and/or patch PyGithub.\n\nEnjoy,","user":{"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","url":"https://api.github.com/users/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":7918385}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/comments?since=2012-05-28T23%3A00%3A00Z +/repos/PyGithub/PyGithub/issues/comments?since=2012-05-28T23%3A00%3A00Z {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('content-length', '43751'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4965'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 22:43:37 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last"'), ('etag', '"e9ac24ceac76d4d31cf648484a47b665"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:54:26 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4793162","body":"Add a test `Issue33.testClosedIssues` when `Repository.get_issues` uses its 'state' parameter for issue #33","updated_at":"2012-05-29T11:36:02Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5981084","created_at":"2012-05-29T11:36:02Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":5981084},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4793290","body":"Duplicate of #18...","updated_at":"2012-05-29T11:45:46Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5981232","created_at":"2012-05-29T11:45:46Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":5981232},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4639931","body":"Will be OK in version 1.0: no more strange meta-description of the API, and the (generated, but it does not mater) code is easily readable by the IDE's auto-completion tool.","updated_at":"2012-05-29T11:56:06Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5981409","created_at":"2012-05-29T11:56:06Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":5981409},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3716033","body":"This will be covered by #36","updated_at":"2012-05-29T11:58:04Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5981451","created_at":"2012-05-29T11:58:04Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":5981451},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4793162","body":"@Lyloa I have to mention someone to test `Repository.get_issues` with argument `mentioned`","updated_at":"2012-05-29T18:38:53Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5991965","created_at":"2012-05-29T18:38:53Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":5991965},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4356743","body":"Should be much improved by 7248e66. Will be in version 1.0","updated_at":"2012-05-30T19:58:35Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6019700","created_at":"2012-05-30T19:58:35Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6019700},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3619973","body":"Done! You can `easy_install --upgrade PyGithub`.","updated_at":"2012-06-03T19:56:17Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6088432","created_at":"2012-06-03T19:56:17Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6088432},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5036241","body":"PyGithub is definitely licensed under the GNU **Lesser** General Public License.\n\nAccording to http://www.gnu.org/licenses/gpl-howto.html, including both COPYING and COPYING.LESSER is the good way to use the LGPL. Anyway, this is misleading, so I will add a section about licensing in the readme today or tomorrow.\n\nThank you for your feedback, I hope PyGithub will be useful for you.","updated_at":"2012-06-13T10:52:24Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6293572","created_at":"2012-06-13T06:03:24Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6293572},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5036241","body":"Sorry I wasn't up to date on v3 licensing best practices. Thank you very much!\n","updated_at":"2012-06-13T16:17:27Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6305625","created_at":"2012-06-13T16:17:27Z","user":{"type":"User","gists_url":"https://api.github.com/users/jeblair/gists{/gist_id}","followers_url":"https://api.github.com/users/jeblair/followers","avatar_url":"https://secure.gravatar.com/avatar/12dc328a104d4c4694b3df308bcd4e6d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jeblair/following","organizations_url":"https://api.github.com/users/jeblair/orgs","url":"https://api.github.com/users/jeblair","gravatar_id":"12dc328a104d4c4694b3df308bcd4e6d","events_url":"https://api.github.com/users/jeblair/events{/privacy}","repos_url":"https://api.github.com/users/jeblair/repos","login":"jeblair","received_events_url":"https://api.github.com/users/jeblair/received_events","subscriptions_url":"https://api.github.com/users/jeblair/subscriptions","id":899068,"starred_url":"https://api.github.com/users/jeblair/starred{/owner}{/repo}"},"id":6305625},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5092592","body":"Hello, when the user has not set his name, `user.name` is `None`, so you can't concatenate it with a string. The exception is not raised by PyGithub but by your code. Try `print user.login, \"->\", user.name` to avoid string concatenation.","updated_at":"2012-06-15T16:56:50Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6357374","created_at":"2012-06-15T14:08:33Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6357374},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5092592","body":"Perfect! Thanks, that worked. I _knew_ `+` for string concatenation was evil...did not listen.","updated_at":"2012-06-15T14:12:00Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6357422","created_at":"2012-06-15T14:10:33Z","user":{"type":"User","gists_url":"https://api.github.com/users/aneroid/gists{/gist_id}","followers_url":"https://api.github.com/users/aneroid/followers","avatar_url":"https://secure.gravatar.com/avatar/5557aad9ff70c36cfac418f511bdea98?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/aneroid/following","organizations_url":"https://api.github.com/users/aneroid/orgs","url":"https://api.github.com/users/aneroid","gravatar_id":"5557aad9ff70c36cfac418f511bdea98","events_url":"https://api.github.com/users/aneroid/events{/privacy}","repos_url":"https://api.github.com/users/aneroid/repos","login":"aneroid","received_events_url":"https://api.github.com/users/aneroid/received_events","subscriptions_url":"https://api.github.com/users/aneroid/subscriptions","id":1468519,"starred_url":"https://api.github.com/users/aneroid/starred{/owner}{/repo}"},"id":6357422},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5152384","body":"Thank you for your contribution, I will merge it and publish version 1.1 tonight.","updated_at":"2012-06-20T08:15:10Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6447481","created_at":"2012-06-20T08:15:10Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6447481},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5152384","body":"I've just pushed the version 1.1 of the package. You can `easy_install --upgrade PyGithub` if you want.","updated_at":"2012-06-20T21:06:08Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6467193","created_at":"2012-06-20T21:06:08Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6467193},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5177381","body":"Hello Alex, thank you for your feedback.\n\nI've just pushed the version 1.1 of the package. I've used `package_data` as explained in the [documentation of distutils](http://docs.python.org/distutils/setupscript.html#installing-package-data), but I'm still not very confident about my understanding of distutils... \n\nCould you please upgrade the package and tell if it's better?","updated_at":"2012-06-20T21:11:31Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6467312","created_at":"2012-06-20T21:11:31Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6467312},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5177381","body":"Thanks for looking at this so quickly! Here's the result of running `python setup.py install` with your new changes:\n\n```\n\nrunning install_lib\ncopying build/lib/COPYING -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\ncopying build/lib/COPYING.LESSER -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\ncreating /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/Design.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/ReferenceOfApis.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/ReferenceOfClasses.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/github/Requester.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/github\ncopying build/lib/ReadMe.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\n\n```\n\nI wish I could help, but I'm afraid I don't know how setuptools works.","updated_at":"2012-06-20T21:33:50Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6467642","created_at":"2012-06-20T21:22:44Z","user":{"type":"User","gists_url":"https://api.github.com/users/malexw/gists{/gist_id}","followers_url":"https://api.github.com/users/malexw/followers","avatar_url":"https://secure.gravatar.com/avatar/13a30f9924fa2bd918cbb8d06dd8b55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/malexw/following","organizations_url":"https://api.github.com/users/malexw/orgs","url":"https://api.github.com/users/malexw","gravatar_id":"13a30f9924fa2bd918cbb8d06dd8b55a","events_url":"https://api.github.com/users/malexw/events{/privacy}","repos_url":"https://api.github.com/users/malexw/repos","login":"malexw","received_events_url":"https://api.github.com/users/malexw/received_events","subscriptions_url":"https://api.github.com/users/malexw/subscriptions","id":577322,"starred_url":"https://api.github.com/users/malexw/starred{/owner}{/repo}"},"id":6467642},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5191621","body":"Those new apis where documented on June 5th, in https://github.com/github/developer.github.com/commit/3cff4bb9a1f1baf3101c984072cd4b4f0165618c. This explains that they are not covered by PyGithub 1.0 that was released on June 3rd.\n\nIt should not be too difficult to support them. I'll try to do it next week.","updated_at":"2012-06-21T12:42:19Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6481200","created_at":"2012-06-21T12:42:19Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6481200},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5191621","body":"Thank you","updated_at":"2012-06-21T12:52:06Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6481392","created_at":"2012-06-21T12:52:06Z","user":{"type":"User","gists_url":"https://api.github.com/users/kukuts/gists{/gist_id}","followers_url":"https://api.github.com/users/kukuts/followers","avatar_url":"https://secure.gravatar.com/avatar/9be6ba907be1740213b69422fdf52b57?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/kukuts/following","organizations_url":"https://api.github.com/users/kukuts/orgs","url":"https://api.github.com/users/kukuts","gravatar_id":"9be6ba907be1740213b69422fdf52b57","events_url":"https://api.github.com/users/kukuts/events{/privacy}","repos_url":"https://api.github.com/users/kukuts/repos","login":"kukuts","received_events_url":"https://api.github.com/users/kukuts/received_events","subscriptions_url":"https://api.github.com/users/kukuts/subscriptions","id":1831238,"starred_url":"https://api.github.com/users/kukuts/starred{/owner}{/repo}"},"id":6481392},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5256315","body":"I was running into issues with labels with spaces. The _identity attribute is just the URL encoded name.\n\nIt works great for building a URL endpoint, but not so great when the label's name is going to part of the POST body since it causes GitHub to return a 422 error complaining that the label doesn't exist.","updated_at":"2012-06-25T18:47:30Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6556134","created_at":"2012-06-25T18:47:30Z","user":{"type":"User","gists_url":"https://api.github.com/users/philipkimmey/gists{/gist_id}","followers_url":"https://api.github.com/users/philipkimmey/followers","avatar_url":"https://secure.gravatar.com/avatar/decc9323f241b6dd24ec35ef7cabaf75?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/philipkimmey/following","organizations_url":"https://api.github.com/users/philipkimmey/orgs","url":"https://api.github.com/users/philipkimmey","gravatar_id":"decc9323f241b6dd24ec35ef7cabaf75","events_url":"https://api.github.com/users/philipkimmey/events{/privacy}","repos_url":"https://api.github.com/users/philipkimmey/repos","login":"philipkimmey","received_events_url":"https://api.github.com/users/philipkimmey/received_events","subscriptions_url":"https://api.github.com/users/philipkimmey/subscriptions","id":211079,"starred_url":"https://api.github.com/users/philipkimmey/starred{/owner}{/repo}"},"id":6556134},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5256315","body":"You're perfectly right, thank you! I'll merge your contribution and publish a new version next week-end.","updated_at":"2012-06-25T19:33:48Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6557261","created_at":"2012-06-25T19:30:24Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6557261},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5259624","body":"Welcome back! Indeed, PyGithub has evolved (and stabilized).\n\nMethods that used to return a list of objects now return a `PaginatedList`. `PaginatedList` instances are only iterable (They do not support concatenation as lists do, and you cannot call `len` on them).\n\nThe rationale behind that? It is related to issue #33 and requests returning a large number of objects. In the previous version, creating a list of all the requested objects required a lot of [pagination requests](http://developer.github.com/v3/#pagination), and was quite long. It was a waste of time if the user was interested only in the first elements of that list. Enters `PaginatedList`, which does the pagination requests only when really needed. And it is no more limited to 10 pages.\n\nSo, to achieve what your are trying to do, you have to iterate the `PaginatedList` explicitly, either in a loop, or in the constructor of another collection.\n\nSimple iteration:\n\n for issue in itertools.chain(\n repo.get_issues( state = 'closed' ),\n repo.get_issues( state = 'open' )\n ):\n do stuff\n\nReal list from PaginatedList (and then you can have its length):\n\n issues = list( repo.get_issues( state = 'closed' ) ) + list( repo.get_issues( state = 'open' ) )\n nb_issues = len( issues )\n","updated_at":"2012-06-26T06:34:33Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6568164","created_at":"2012-06-26T06:34:33Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6568164},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5259624","body":"I'll try to document this behavior soon.","updated_at":"2012-06-26T06:35:48Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6568181","created_at":"2012-06-26T06:35:48Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6568181},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5259624","body":"Thanks for this, very helpful. I didn't know I could cast to list so easily (could've tried, though >.<)","updated_at":"2012-06-26T07:02:14Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6568553","created_at":"2012-06-26T07:02:14Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","repos_url":"https://api.github.com/users/bilderbuchi/repos","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442,"starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}"},"id":6568553},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5256315","body":"I've fixed Repository.create_issue and .get_issues as well.","updated_at":"2012-06-28T20:10:39Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6640187","created_at":"2012-06-28T20:10:39Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6640187},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5256315","body":"I've just merged your commit in branch `develop`. It will go in `master` when I publish version 1.2. You can expect it on Saturday or Sunday. Thank you again for the bug report and the associated patch.","updated_at":"2012-06-28T20:10:44Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6640189","created_at":"2012-06-28T20:10:44Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6640189},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5191621","body":"Problem: issues returned by the [`/legacy/issues/search` API](http://developer.github.com/v3/search/#search-issues) do not match those returned by [other v3 APIs](http://developer.github.com/v3/issues/#response):\n* labels are returned only by name, not not name, color and url\n* date-time format is different\n* maybe something else\n\nOf course, similar differences exist for users and repositories.\n\nIntegrating this legacy API will be more difficult than I thought.","updated_at":"2012-06-28T21:02:23Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6641223","created_at":"2012-06-28T20:49:13Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6641223},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5191621","body":"This is implemented in version 1.2, you can update from pypi.","updated_at":"2012-06-29T18:47:28Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6673380","created_at":"2012-06-29T18:47:28Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6673380},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"Interestingly, if I convert this manually in the meantime, using the method you use in the PyGithub code (`tdate=datetime.datetime.strptime(t.commit.commit.committer.date, \"%Y-%m-%dT%H:%M:%SZ\")`), I get an error cause the format does not match. I get a string of the form `2010-02-11T01:17:27-08:00` - time zone information has been added, but I don't know how to parse it, the `:` in `-08:00` prevents me from using `%z` (which expects UTC offset in the form +HHMM or -HHMM). I will discard it for now, but maybe you got insight why this happens?","updated_at":"2012-07-02T14:58:45Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6710355","created_at":"2012-07-02T14:58:45Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","repos_url":"https://api.github.com/users/bilderbuchi/repos","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442,"starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}"},"id":6710355},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"Hello Christoph!\n\nIndeed this attribute should be a `datetime.datetime`. And as you noticed, it is not formated like other dates returned by Github... I remember I discovered that when I was doing the conversion from string of all the `*_at` and `*_on` attributes, and I did not take time to dig deeper.\n\nI will create a more generic date parsing function that handles all formats returned by Github, and I'll use it for all `datetime` attributes.\n\nBut before that, I'll have to understand timezone handling in Python, so do not expect this too soon (maybe mid-July).","updated_at":"2012-07-03T07:15:53Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6727553","created_at":"2012-07-03T07:15:53Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6727553},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"yeah no problem, I'm not reliant on so precise information, take your time. btw, maybe that's a bug in the github API? why would this one time be returned in a different way than all the others? I can't see a reason for this.\n\nagreed, time(zones) in python are crazy at times.","updated_at":"2012-07-03T07:24:21Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6727659","created_at":"2012-07-03T07:24:21Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","repos_url":"https://api.github.com/users/bilderbuchi/repos","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442,"starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}"},"id":6727659},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"I don't think it's a bug in Github:\n* `GitAuthor.date` is related to an action done somewhere (on the committer's computer), so it carries the timezone of this computer\n* other datetimes are related to actions done on Github's servers, so it's returned with a \"Z\" timezone meaning \"UTC\", the timezone of these servers.","updated_at":"2012-07-03T07:36:30Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6727848","created_at":"2012-07-03T07:36:30Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6727848}] +[('status', '200 OK'), ('content-length', '43751'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4965'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 22:43:37 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last"'), ('etag', '"e9ac24ceac76d4d31cf648484a47b665"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:54:26 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4793162","body":"Add a test `Issue33.testClosedIssues` when `Repository.get_issues` uses its 'state' parameter for issue #33","updated_at":"2012-05-29T11:36:02Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5981084","created_at":"2012-05-29T11:36:02Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":5981084},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4793290","body":"Duplicate of #18...","updated_at":"2012-05-29T11:45:46Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5981232","created_at":"2012-05-29T11:45:46Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":5981232},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4639931","body":"Will be OK in version 1.0: no more strange meta-description of the API, and the (generated, but it does not mater) code is easily readable by the IDE's auto-completion tool.","updated_at":"2012-05-29T11:56:06Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5981409","created_at":"2012-05-29T11:56:06Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":5981409},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3716033","body":"This will be covered by #36","updated_at":"2012-05-29T11:58:04Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5981451","created_at":"2012-05-29T11:58:04Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":5981451},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4793162","body":"@Lyloa I have to mention someone to test `Repository.get_issues` with argument `mentioned`","updated_at":"2012-05-29T18:38:53Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5991965","created_at":"2012-05-29T18:38:53Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":5991965},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4356743","body":"Should be much improved by 7248e66. Will be in version 1.0","updated_at":"2012-05-30T19:58:35Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6019700","created_at":"2012-05-30T19:58:35Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6019700},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3619973","body":"Done! You can `easy_install --upgrade PyGithub`.","updated_at":"2012-06-03T19:56:17Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6088432","created_at":"2012-06-03T19:56:17Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6088432},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5036241","body":"PyGithub is definitely licensed under the GNU **Lesser** General Public License.\n\nAccording to http://www.gnu.org/licenses/gpl-howto.html, including both COPYING and COPYING.LESSER is the good way to use the LGPL. Anyway, this is misleading, so I will add a section about licensing in the readme today or tomorrow.\n\nThank you for your feedback, I hope PyGithub will be useful for you.","updated_at":"2012-06-13T10:52:24Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6293572","created_at":"2012-06-13T06:03:24Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6293572},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5036241","body":"Sorry I wasn't up to date on v3 licensing best practices. Thank you very much!\n","updated_at":"2012-06-13T16:17:27Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6305625","created_at":"2012-06-13T16:17:27Z","user":{"type":"User","gists_url":"https://api.github.com/users/jeblair/gists{/gist_id}","followers_url":"https://api.github.com/users/jeblair/followers","avatar_url":"https://secure.gravatar.com/avatar/12dc328a104d4c4694b3df308bcd4e6d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jeblair/following","organizations_url":"https://api.github.com/users/jeblair/orgs","url":"https://api.github.com/users/jeblair","gravatar_id":"12dc328a104d4c4694b3df308bcd4e6d","events_url":"https://api.github.com/users/jeblair/events{/privacy}","repos_url":"https://api.github.com/users/jeblair/repos","login":"jeblair","received_events_url":"https://api.github.com/users/jeblair/received_events","subscriptions_url":"https://api.github.com/users/jeblair/subscriptions","id":899068,"starred_url":"https://api.github.com/users/jeblair/starred{/owner}{/repo}"},"id":6305625},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5092592","body":"Hello, when the user has not set his name, `user.name` is `None`, so you can't concatenate it with a string. The exception is not raised by PyGithub but by your code. Try `print user.login, \"->\", user.name` to avoid string concatenation.","updated_at":"2012-06-15T16:56:50Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6357374","created_at":"2012-06-15T14:08:33Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6357374},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5092592","body":"Perfect! Thanks, that worked. I _knew_ `+` for string concatenation was evil...did not listen.","updated_at":"2012-06-15T14:12:00Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6357422","created_at":"2012-06-15T14:10:33Z","user":{"type":"User","gists_url":"https://api.github.com/users/aneroid/gists{/gist_id}","followers_url":"https://api.github.com/users/aneroid/followers","avatar_url":"https://secure.gravatar.com/avatar/5557aad9ff70c36cfac418f511bdea98?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/aneroid/following","organizations_url":"https://api.github.com/users/aneroid/orgs","url":"https://api.github.com/users/aneroid","gravatar_id":"5557aad9ff70c36cfac418f511bdea98","events_url":"https://api.github.com/users/aneroid/events{/privacy}","repos_url":"https://api.github.com/users/aneroid/repos","login":"aneroid","received_events_url":"https://api.github.com/users/aneroid/received_events","subscriptions_url":"https://api.github.com/users/aneroid/subscriptions","id":1468519,"starred_url":"https://api.github.com/users/aneroid/starred{/owner}{/repo}"},"id":6357422},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5152384","body":"Thank you for your contribution, I will merge it and publish version 1.1 tonight.","updated_at":"2012-06-20T08:15:10Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6447481","created_at":"2012-06-20T08:15:10Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6447481},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5152384","body":"I've just pushed the version 1.1 of the package. You can `easy_install --upgrade PyGithub` if you want.","updated_at":"2012-06-20T21:06:08Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6467193","created_at":"2012-06-20T21:06:08Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6467193},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5177381","body":"Hello Alex, thank you for your feedback.\n\nI've just pushed the version 1.1 of the package. I've used `package_data` as explained in the [documentation of distutils](http://docs.python.org/distutils/setupscript.html#installing-package-data), but I'm still not very confident about my understanding of distutils... \n\nCould you please upgrade the package and tell if it's better?","updated_at":"2012-06-20T21:11:31Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6467312","created_at":"2012-06-20T21:11:31Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6467312},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5177381","body":"Thanks for looking at this so quickly! Here's the result of running `python setup.py install` with your new changes:\n\n```\n\nrunning install_lib\ncopying build/lib/COPYING -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\ncopying build/lib/COPYING.LESSER -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\ncreating /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/Design.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/ReferenceOfApis.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/doc/ReferenceOfClasses.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/doc\ncopying build/lib/github/Requester.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/github\ncopying build/lib/ReadMe.md -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages\n\n```\n\nI wish I could help, but I'm afraid I don't know how setuptools works.","updated_at":"2012-06-20T21:33:50Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6467642","created_at":"2012-06-20T21:22:44Z","user":{"type":"User","gists_url":"https://api.github.com/users/malexw/gists{/gist_id}","followers_url":"https://api.github.com/users/malexw/followers","avatar_url":"https://secure.gravatar.com/avatar/13a30f9924fa2bd918cbb8d06dd8b55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/malexw/following","organizations_url":"https://api.github.com/users/malexw/orgs","url":"https://api.github.com/users/malexw","gravatar_id":"13a30f9924fa2bd918cbb8d06dd8b55a","events_url":"https://api.github.com/users/malexw/events{/privacy}","repos_url":"https://api.github.com/users/malexw/repos","login":"malexw","received_events_url":"https://api.github.com/users/malexw/received_events","subscriptions_url":"https://api.github.com/users/malexw/subscriptions","id":577322,"starred_url":"https://api.github.com/users/malexw/starred{/owner}{/repo}"},"id":6467642},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5191621","body":"Those new apis where documented on June 5th, in https://github.com/github/developer.github.com/commit/3cff4bb9a1f1baf3101c984072cd4b4f0165618c. This explains that they are not covered by PyGithub 1.0 that was released on June 3rd.\n\nIt should not be too difficult to support them. I'll try to do it next week.","updated_at":"2012-06-21T12:42:19Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6481200","created_at":"2012-06-21T12:42:19Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6481200},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5191621","body":"Thank you","updated_at":"2012-06-21T12:52:06Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6481392","created_at":"2012-06-21T12:52:06Z","user":{"type":"User","gists_url":"https://api.github.com/users/kukuts/gists{/gist_id}","followers_url":"https://api.github.com/users/kukuts/followers","avatar_url":"https://secure.gravatar.com/avatar/9be6ba907be1740213b69422fdf52b57?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/kukuts/following","organizations_url":"https://api.github.com/users/kukuts/orgs","url":"https://api.github.com/users/kukuts","gravatar_id":"9be6ba907be1740213b69422fdf52b57","events_url":"https://api.github.com/users/kukuts/events{/privacy}","repos_url":"https://api.github.com/users/kukuts/repos","login":"kukuts","received_events_url":"https://api.github.com/users/kukuts/received_events","subscriptions_url":"https://api.github.com/users/kukuts/subscriptions","id":1831238,"starred_url":"https://api.github.com/users/kukuts/starred{/owner}{/repo}"},"id":6481392},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5256315","body":"I was running into issues with labels with spaces. The _identity attribute is just the URL encoded name.\n\nIt works great for building a URL endpoint, but not so great when the label's name is going to part of the POST body since it causes GitHub to return a 422 error complaining that the label doesn't exist.","updated_at":"2012-06-25T18:47:30Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6556134","created_at":"2012-06-25T18:47:30Z","user":{"type":"User","gists_url":"https://api.github.com/users/philipkimmey/gists{/gist_id}","followers_url":"https://api.github.com/users/philipkimmey/followers","avatar_url":"https://secure.gravatar.com/avatar/decc9323f241b6dd24ec35ef7cabaf75?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/philipkimmey/following","organizations_url":"https://api.github.com/users/philipkimmey/orgs","url":"https://api.github.com/users/philipkimmey","gravatar_id":"decc9323f241b6dd24ec35ef7cabaf75","events_url":"https://api.github.com/users/philipkimmey/events{/privacy}","repos_url":"https://api.github.com/users/philipkimmey/repos","login":"philipkimmey","received_events_url":"https://api.github.com/users/philipkimmey/received_events","subscriptions_url":"https://api.github.com/users/philipkimmey/subscriptions","id":211079,"starred_url":"https://api.github.com/users/philipkimmey/starred{/owner}{/repo}"},"id":6556134},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5256315","body":"You're perfectly right, thank you! I'll merge your contribution and publish a new version next week-end.","updated_at":"2012-06-25T19:33:48Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6557261","created_at":"2012-06-25T19:30:24Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6557261},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5259624","body":"Welcome back! Indeed, PyGithub has evolved (and stabilized).\n\nMethods that used to return a list of objects now return a `PaginatedList`. `PaginatedList` instances are only iterable (They do not support concatenation as lists do, and you cannot call `len` on them).\n\nThe rationale behind that? It is related to issue #33 and requests returning a large number of objects. In the previous version, creating a list of all the requested objects required a lot of [pagination requests](http://developer.github.com/v3/#pagination), and was quite long. It was a waste of time if the user was interested only in the first elements of that list. Enters `PaginatedList`, which does the pagination requests only when really needed. And it is no more limited to 10 pages.\n\nSo, to achieve what your are trying to do, you have to iterate the `PaginatedList` explicitly, either in a loop, or in the constructor of another collection.\n\nSimple iteration:\n\n for issue in itertools.chain(\n repo.get_issues( state = 'closed' ),\n repo.get_issues( state = 'open' )\n ):\n do stuff\n\nReal list from PaginatedList (and then you can have its length):\n\n issues = list( repo.get_issues( state = 'closed' ) ) + list( repo.get_issues( state = 'open' ) )\n nb_issues = len( issues )\n","updated_at":"2012-06-26T06:34:33Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6568164","created_at":"2012-06-26T06:34:33Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6568164},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5259624","body":"I'll try to document this behavior soon.","updated_at":"2012-06-26T06:35:48Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6568181","created_at":"2012-06-26T06:35:48Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6568181},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5259624","body":"Thanks for this, very helpful. I didn't know I could cast to list so easily (could've tried, though >.<)","updated_at":"2012-06-26T07:02:14Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6568553","created_at":"2012-06-26T07:02:14Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","repos_url":"https://api.github.com/users/bilderbuchi/repos","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442,"starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}"},"id":6568553},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5256315","body":"I've fixed Repository.create_issue and .get_issues as well.","updated_at":"2012-06-28T20:10:39Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6640187","created_at":"2012-06-28T20:10:39Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6640187},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5256315","body":"I've just merged your commit in branch `develop`. It will go in `master` when I publish version 1.2. You can expect it on Saturday or Sunday. Thank you again for the bug report and the associated patch.","updated_at":"2012-06-28T20:10:44Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6640189","created_at":"2012-06-28T20:10:44Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6640189},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5191621","body":"Problem: issues returned by the [`/legacy/issues/search` API](http://developer.github.com/v3/search/#search-issues) do not match those returned by [other v3 APIs](http://developer.github.com/v3/issues/#response):\n* labels are returned only by name, not not name, color and url\n* date-time format is different\n* maybe something else\n\nOf course, similar differences exist for users and repositories.\n\nIntegrating this legacy API will be more difficult than I thought.","updated_at":"2012-06-28T21:02:23Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6641223","created_at":"2012-06-28T20:49:13Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6641223},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5191621","body":"This is implemented in version 1.2, you can update from pypi.","updated_at":"2012-06-29T18:47:28Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6673380","created_at":"2012-06-29T18:47:28Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6673380},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"Interestingly, if I convert this manually in the meantime, using the method you use in the PyGithub code (`tdate=datetime.datetime.strptime(t.commit.commit.committer.date, \"%Y-%m-%dT%H:%M:%SZ\")`), I get an error cause the format does not match. I get a string of the form `2010-02-11T01:17:27-08:00` - time zone information has been added, but I don't know how to parse it, the `:` in `-08:00` prevents me from using `%z` (which expects UTC offset in the form +HHMM or -HHMM). I will discard it for now, but maybe you got insight why this happens?","updated_at":"2012-07-02T14:58:45Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6710355","created_at":"2012-07-02T14:58:45Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","repos_url":"https://api.github.com/users/bilderbuchi/repos","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442,"starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}"},"id":6710355},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"Hello Christoph!\n\nIndeed this attribute should be a `datetime.datetime`. And as you noticed, it is not formated like other dates returned by Github... I remember I discovered that when I was doing the conversion from string of all the `*_at` and `*_on` attributes, and I did not take time to dig deeper.\n\nI will create a more generic date parsing function that handles all formats returned by Github, and I'll use it for all `datetime` attributes.\n\nBut before that, I'll have to understand timezone handling in Python, so do not expect this too soon (maybe mid-July).","updated_at":"2012-07-03T07:15:53Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6727553","created_at":"2012-07-03T07:15:53Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6727553},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"yeah no problem, I'm not reliant on so precise information, take your time. btw, maybe that's a bug in the github API? why would this one time be returned in a different way than all the others? I can't see a reason for this.\n\nagreed, time(zones) in python are crazy at times.","updated_at":"2012-07-03T07:24:21Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6727659","created_at":"2012-07-03T07:24:21Z","user":{"type":"User","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","repos_url":"https://api.github.com/users/bilderbuchi/repos","login":"bilderbuchi","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442,"starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}"},"id":6727659},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"I don't think it's a bug in Github:\n* `GitAuthor.date` is related to an action done somewhere (on the committer's computer), so it carries the timezone of this computer\n* other datetimes are related to actions done on Github's servers, so it's returned with a \"Z\" timezone meaning \"UTC\", the timezone of these servers.","updated_at":"2012-07-03T07:36:30Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6727848","created_at":"2012-07-03T07:36:30Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"id":6727848}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/comments?page=2&since=2012-05-28T23%3A00%3A00Z +/repos/PyGithub/PyGithub/issues/comments?page=2&since=2012-05-28T23%3A00%3A00Z {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4964'), ('x-ratelimit-limit', '5000'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '44148'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 18:46:45 GMT'), ('connection', 'keep-alive'), ('etag', '"446137bf216c4edc30567fbc3e944b5a"'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:54:38 GMT'), ('x-github-media-type', 'github.beta; format=json'), ('content-type', 'application/json; charset=utf-8')] -[{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"And by the way, I'm not sure it's a problem for you but I prefer to make it clear: if `tag` is a `Tag`, then `tag.commit.commit.committer.date` is the date of the tagged commit, not the date of the tag. If you really need the date of the tag, you need a `GitTag` and use `git_tag.tagger.date`.","updated_at":"2012-07-03T07:50:18Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6728069","created_at":"2012-07-03T07:50:18Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6728069},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"ah, makes sense. If you want to avoid the timezone confusion, mayb what is suggested [here](http://stackoverflow.com/a/117615/599884) makes most sense: \n\"Keep your internal datetime objects naive and in UTC and convert to your timezone for formatting only. The reason why you probably want naive objects (objects without timezone information) is that many libraries and database adapters have no idea about timezones.\"\nSo maybe it makes sense to just convert the GitAuthor times to UTC when getting them (i.e. apply the offset to the given time), to be consistent with the rest.\n\nThanks about the clarification re: GitTag/Tag. I prefer the date of the tagged commit, though, the tags mark release commits.\n","updated_at":"2012-07-03T07:59:36Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6728241","created_at":"2012-07-03T07:59:36Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":6728241},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"If I convert the `GitAuthor.date` to UTC, I loose the information about where the committer lives... It may or may not be a problem depending on my client's use case.\n\nI'll find a way to make it clear and not loose information, maybe I will convert `date` to UTC (keep it naive), and add another attribute `timezone` to `GitAuthor`.","updated_at":"2012-07-07T18:18:46Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6728370","created_at":"2012-07-03T08:08:08Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6728370},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"I still have to convert the datetime to UTC. But there is something silly about timezones returned by Github: my commits are timezoned \"-07:00\" while I live in France (UTC +1 or +2). I have to investigate that.","updated_at":"2012-07-10T19:42:43Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6886561","created_at":"2012-07-10T19:42:43Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6886561},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"Well, well, well... I now revise my judgement: **absolutely all** commits I've retrieved from Github are in timezone -07:00, so this must indeed be a flaw in the API, returning date formatted in the local timezone of the GIthub servers only for this attribute. @bilderbuchi, you were right in https://github.com/jacquev6/PyGithub/issues/54#issuecomment-6727659 :-)\n\nThere is no point keeping this GitAuthor.timezone attribute. I will just convert everything to UTC.","updated_at":"2012-07-13T19:17:15Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6972414","created_at":"2012-07-13T19:05:53Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6972414},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"ok. maybe also write to github about this probable bug in the API, to see what's the deal?","updated_at":"2012-07-15T19:57:26Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/6994436","created_at":"2012-07-15T19:57:26Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":6994436},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"@bilderbuchi, to be honest, I don't think I will take time to contact Github about that.","updated_at":"2012-07-18T09:12:53Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7060818","created_at":"2012-07-18T09:12:53Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7060818},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5387373","body":"Sure, I understand. :-)","updated_at":"2012-07-18T09:21:16Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7060993","created_at":"2012-07-18T09:21:16Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":7060993},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5783131","body":"Thank you for this useful contribution! You even respected my special spacing convention!\n\nI will publish the version 1.4 of PyGithub next week-end.","updated_at":"2012-07-24T16:07:06Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7211543","created_at":"2012-07-24T16:07:06Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7211543},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5783131","body":"Hum, I'm having trouble with my computer and not much time to fix it. I'll publish PyGithub 1.4 as soon as possible.","updated_at":"2012-07-31T18:47:09Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7407798","created_at":"2012-07-31T18:47:09Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7407798},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5806612","body":"Published, at last...","updated_at":"2012-08-04T06:11:43Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7499550","created_at":"2012-08-04T06:11:43Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7499550},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6353712","body":"Hello!\n\nI confirm that the following code exhibits the same issue:\n\n import github\n\n g = github.Github()\n r = g.get_user( \"jacquev6\" ).get_repo( \"PyGithub\" )\n p = r.get_pull( 57 )\n print p.title, \"has\", p.comments, \"comments\"\n print [ c.body[ :15 ] for c in p.get_comments() ]\n\nIt prints:\n\n Allows connection to GitHub Enterprise installs on local URLs has 2 comments\n []\n\nThis last line calls API https://api.github.com/repos/jacquev6/PyGithub/pulls/57/comments, as documented in http://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request, but the API returns an empty list. I've just managed to get the comments by calling https://api.github.com/repos/jacquev6/PyGithub/issues/57/comments instead. The issue must be on Github's side.\n\nAs a **temporary** work-around, you can use the following code to do as if the pull request is an issue, and call the other API:\n\n print [ c.body[ :15 ] for c in r.get_issue( p.number ).get_comments() ]\n\nRight now, I have not enough time to take care of this problem, but if it's still here at the beginning of September, I will contact Github and/or patch PyGithub.\n\nEnjoy,","updated_at":"2012-08-21T22:15:01Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7918385","created_at":"2012-08-21T22:15:01Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7918385},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6363719","body":"Deleting a repository is a new functionality that was not implemented in the API when I published the last version of PyGithub. It is now documented here: http://developer.github.com/v3/repos/#delete-a-repository\n\nI will implement it in PyGithub at the beginning of September.","updated_at":"2012-08-21T22:21:13Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7918542","created_at":"2012-08-21T22:21:13Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7918542},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6363719","body":"For the 'get_team' part of your issue, I can't find a way to get the id of a team from its name here: http://developer.github.com/v3/orgs/teams/ so there is no way to do it in PyGithub without iterating on 'get_teams()'","updated_at":"2012-08-21T22:27:24Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7918728","created_at":"2012-08-21T22:27:24Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7918728},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6363719","body":"Thanks for your fast reply and help. I look forward to having repo delete.","updated_at":"2012-08-22T01:44:09Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7922282","created_at":"2012-08-22T01:44:09Z","user":{"type":"User","events_url":"https://api.github.com/users/pmchen/events{/privacy}","received_events_url":"https://api.github.com/users/pmchen/received_events","gists_url":"https://api.github.com/users/pmchen/gists{/gist_id}","followers_url":"https://api.github.com/users/pmchen/followers","following_url":"https://api.github.com/users/pmchen/following","organizations_url":"https://api.github.com/users/pmchen/orgs","url":"https://api.github.com/users/pmchen","gravatar_id":"a0f9638840c6e593ecddc966e6d01241","starred_url":"https://api.github.com/users/pmchen/starred{/owner}{/repo}","login":"pmchen","avatar_url":"https://secure.gravatar.com/avatar/a0f9638840c6e593ecddc966e6d01241?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/pmchen/repos","subscriptions_url":"https://api.github.com/users/pmchen/subscriptions","id":671751},"id":7922282},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6353712","body":"To enhance the workaround a bit, you can do this to determine if an issue is a PR or not (because all PRs are issues, too):\n```\n if myIssue.pull_request.diff_url:\n PR=True\n else:\n PR=False\n```","updated_at":"2012-08-22T06:56:34Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7926126","created_at":"2012-08-22T06:56:34Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":7926126},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6353712","body":"Thank you! Will use this as a workaround.","updated_at":"2012-08-22T07:10:09Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7926317","created_at":"2012-08-22T07:10:09Z","user":{"type":"User","events_url":"https://api.github.com/users/nixoz2k7/events{/privacy}","received_events_url":"https://api.github.com/users/nixoz2k7/received_events","gists_url":"https://api.github.com/users/nixoz2k7/gists{/gist_id}","followers_url":"https://api.github.com/users/nixoz2k7/followers","following_url":"https://api.github.com/users/nixoz2k7/following","organizations_url":"https://api.github.com/users/nixoz2k7/orgs","url":"https://api.github.com/users/nixoz2k7","gravatar_id":"2a16046c75f59710161ea486d1f5881d","starred_url":"https://api.github.com/users/nixoz2k7/starred{/owner}{/repo}","login":"nixoz2k7","avatar_url":"https://secure.gravatar.com/avatar/2a16046c75f59710161ea486d1f5881d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/nixoz2k7/repos","subscriptions_url":"https://api.github.com/users/nixoz2k7/subscriptions","id":1027413},"id":7926317},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6363719","body":"On-going developments are here: https://github.com/jacquev6/PyGithub/tree/topic/DeleteRepository","updated_at":"2012-08-23T07:43:36Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/7962252","created_at":"2012-08-23T07:43:36Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7962252},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6454054","body":"I just realized that there is no option to set timeout for github api requests. There is no timeout at all in Requester.\nIn python2.6 was added option timeout for httplib.HTTPConnection and httplib.HTTPSConnection. It seems that it will drop support of python<2.6.\nAnother way to change the way that Requester works. You can use requests library from @kennethreitz. BTW it will simplify whole Requester API.","updated_at":"2012-08-25T19:44:03Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8026699","created_at":"2012-08-25T19:44:03Z","user":{"type":"User","events_url":"https://api.github.com/users/xobb1t/events{/privacy}","received_events_url":"https://api.github.com/users/xobb1t/received_events","gists_url":"https://api.github.com/users/xobb1t/gists{/gist_id}","followers_url":"https://api.github.com/users/xobb1t/followers","following_url":"https://api.github.com/users/xobb1t/following","organizations_url":"https://api.github.com/users/xobb1t/orgs","url":"https://api.github.com/users/xobb1t","gravatar_id":"ae8a2af3de601885a14bb71240e5d1a6","starred_url":"https://api.github.com/users/xobb1t/starred{/owner}{/repo}","login":"xobb1t","avatar_url":"https://secure.gravatar.com/avatar/ae8a2af3de601885a14bb71240e5d1a6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/xobb1t/repos","subscriptions_url":"https://api.github.com/users/xobb1t/subscriptions","id":344095},"id":8026699},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6583381","body":"Wow! Upverter is a very impressive project. I have been designing some PCBs myself and always felt bad about storing them and connecting them to source code of embedded software. I'm looking forward the PCB layout and manufacture feature, it will make Upverter very useful for amateur electronics!\n\nI'm very proud and very happy to be a small part of your project, thank you for letting me know.","updated_at":"2012-09-03T08:39:41Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8232572","created_at":"2012-09-03T08:39:41Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8232572},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6454054","body":"Thank you very much for your contribution, I will integrate it this week.\n\n","updated_at":"2012-09-03T08:45:50Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8232695","created_at":"2012-09-03T08:45:50Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8232695},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6353712","body":"I've just contacted Github for this issue.","updated_at":"2012-09-03T08:56:13Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8232940","created_at":"2012-09-03T08:56:13Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8232940},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6583381","body":"Awesome, great to hear some positive feedback! If you're interested in trying out the alpha version of our PCB layout tool, send me your Upverter account name (alex@upverter.com) and I can upgrade you. We're hoping to have the layout and manufacturing tools rolled out to everyone in the next few weeks.","updated_at":"2012-09-04T17:54:47Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8272447","created_at":"2012-09-04T17:54:47Z","user":{"type":"User","events_url":"https://api.github.com/users/malexw/events{/privacy}","received_events_url":"https://api.github.com/users/malexw/received_events","gists_url":"https://api.github.com/users/malexw/gists{/gist_id}","followers_url":"https://api.github.com/users/malexw/followers","following_url":"https://api.github.com/users/malexw/following","organizations_url":"https://api.github.com/users/malexw/orgs","url":"https://api.github.com/users/malexw","gravatar_id":"13a30f9924fa2bd918cbb8d06dd8b55a","starred_url":"https://api.github.com/users/malexw/starred{/owner}{/repo}","login":"malexw","avatar_url":"https://secure.gravatar.com/avatar/13a30f9924fa2bd918cbb8d06dd8b55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/malexw/repos","subscriptions_url":"https://api.github.com/users/malexw/subscriptions","id":577322},"id":8272447},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6583381","body":"PM sent.","updated_at":"2012-09-04T20:07:55Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8276835","created_at":"2012-09-04T20:07:55Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8276835},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6641076","body":"All the APIs described in http://developer.github.com/v3/repos/contents/ are newer than the last version of PyGithub (or at least, I was not aware of them when I published that version).\n\nI will implement them soon, you can expect them middle of next week.\n\nFor reference, if you don't find an API in https://github.com/jacquev6/PyGithub/blob/master/doc/ReferenceOfApis.md then I've not implemented it yet.","updated_at":"2012-09-04T20:11:58Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8276985","created_at":"2012-09-04T20:11:37Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8276985},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6641076","body":"Thanks! I'm looking forward to the next release.\n","updated_at":"2012-09-04T23:38:50Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8282881","created_at":"2012-09-04T23:38:50Z","user":{"type":"User","events_url":"https://api.github.com/users/berndca/events{/privacy}","received_events_url":"https://api.github.com/users/berndca/received_events","gists_url":"https://api.github.com/users/berndca/gists{/gist_id}","followers_url":"https://api.github.com/users/berndca/followers","following_url":"https://api.github.com/users/berndca/following","organizations_url":"https://api.github.com/users/berndca/orgs","url":"https://api.github.com/users/berndca","gravatar_id":"4a43f97dc0112d95d8d713e2fd2a983b","starred_url":"https://api.github.com/users/berndca/starred{/owner}{/repo}","login":"berndca","avatar_url":"https://secure.gravatar.com/avatar/4a43f97dc0112d95d8d713e2fd2a983b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/berndca/repos","subscriptions_url":"https://api.github.com/users/berndca/subscriptions","id":466654},"id":8282881},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6353712","body":"And here is the reply I received from Github:\n\n From: Wynn Netherland\n Subject: API v3, list comments on pull requests\n\n Hi, Vincent. I know it's confusing but we actually have three types of comments on GitHub, so there are\n three different spots in the API to grab them. Be sure you're looking in the right spot for the data you expect.\n\n Pull Request comments are the top-level comments found on the Pull Request page. These are retrieved via\n the Issues API [1] since PRs are essentially specialized Issues. Pull Request review comments are those made\n against the diff on the PR. You can grab these with the Review Comments API [2]. Finally, line comments made\n outside the context of a PR on a raw commit can be retrieved via the Commit Comments API [3].\n\n Armed with that info, let me know if you're not seeing the data you expect and the API call you're making, and I\n can dig a bit deeper.\n\n [1] http://developer.github.com/v3/issues/comments/\n [2] http://developer.github.com/v3/pulls/comments/\n [3] http://developer.github.com/v3/repos/comments/\n\n Cheers,\n\nSo, this is coherent with what we can see here: https://github.com/jacquev6/PyGithub/pull/57, as `PullRequest.get_comments` uses the Pull Requests API. @nixoz2k7 Is it coherent with your original issue as well?\n\nAnyway, this is misleading, so I will add two methods named `get_issue_comments` (using the Issues API) and `get_review_comments` (synonym for `get_comments`, using the Pull Requests API). Expect this for the middle of next week.","updated_at":"2012-09-05T06:36:26Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8288983","created_at":"2012-09-05T06:36:26Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8288983},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6653907","body":"Thank you, I was just going to open an issue for that. No need to hurry because of this, though, I won't need it too soon. :-)","updated_at":"2012-09-05T07:08:11Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8289525","created_at":"2012-09-05T07:08:11Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":8289525},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6653907","body":"I think I'll do it for the middle of next week","updated_at":"2012-09-05T14:21:16Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8300374","created_at":"2012-09-05T14:21:16Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8300374},{"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6611093","body":"Just published on [PyPi](http://pypi.python.org/pypi/PyGithub).","updated_at":"2012-09-05T17:56:28Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8307659","created_at":"2012-09-05T17:56:28Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8307659}] +[('status', '200 OK'), ('x-ratelimit-remaining', '4964'), ('x-ratelimit-limit', '5000'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '44148'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 18:46:45 GMT'), ('connection', 'keep-alive'), ('etag', '"446137bf216c4edc30567fbc3e944b5a"'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:54:38 GMT'), ('x-github-media-type', 'github.beta; format=json'), ('content-type', 'application/json; charset=utf-8')] +[{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"And by the way, I'm not sure it's a problem for you but I prefer to make it clear: if `tag` is a `Tag`, then `tag.commit.commit.committer.date` is the date of the tagged commit, not the date of the tag. If you really need the date of the tag, you need a `GitTag` and use `git_tag.tagger.date`.","updated_at":"2012-07-03T07:50:18Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6728069","created_at":"2012-07-03T07:50:18Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6728069},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"ah, makes sense. If you want to avoid the timezone confusion, mayb what is suggested [here](http://stackoverflow.com/a/117615/599884) makes most sense: \n\"Keep your internal datetime objects naive and in UTC and convert to your timezone for formatting only. The reason why you probably want naive objects (objects without timezone information) is that many libraries and database adapters have no idea about timezones.\"\nSo maybe it makes sense to just convert the GitAuthor times to UTC when getting them (i.e. apply the offset to the given time), to be consistent with the rest.\n\nThanks about the clarification re: GitTag/Tag. I prefer the date of the tagged commit, though, the tags mark release commits.\n","updated_at":"2012-07-03T07:59:36Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6728241","created_at":"2012-07-03T07:59:36Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":6728241},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"If I convert the `GitAuthor.date` to UTC, I loose the information about where the committer lives... It may or may not be a problem depending on my client's use case.\n\nI'll find a way to make it clear and not loose information, maybe I will convert `date` to UTC (keep it naive), and add another attribute `timezone` to `GitAuthor`.","updated_at":"2012-07-07T18:18:46Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6728370","created_at":"2012-07-03T08:08:08Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6728370},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"I still have to convert the datetime to UTC. But there is something silly about timezones returned by Github: my commits are timezoned \"-07:00\" while I live in France (UTC +1 or +2). I have to investigate that.","updated_at":"2012-07-10T19:42:43Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6886561","created_at":"2012-07-10T19:42:43Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6886561},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"Well, well, well... I now revise my judgement: **absolutely all** commits I've retrieved from Github are in timezone -07:00, so this must indeed be a flaw in the API, returning date formatted in the local timezone of the GIthub servers only for this attribute. @bilderbuchi, you were right in https://github.com/PyGithub/PyGithub/issues/54#issuecomment-6727659 :-)\n\nThere is no point keeping this GitAuthor.timezone attribute. I will just convert everything to UTC.","updated_at":"2012-07-13T19:17:15Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6972414","created_at":"2012-07-13T19:05:53Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":6972414},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"ok. maybe also write to github about this probable bug in the API, to see what's the deal?","updated_at":"2012-07-15T19:57:26Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/6994436","created_at":"2012-07-15T19:57:26Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":6994436},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"@bilderbuchi, to be honest, I don't think I will take time to contact Github about that.","updated_at":"2012-07-18T09:12:53Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7060818","created_at":"2012-07-18T09:12:53Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7060818},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5387373","body":"Sure, I understand. :-)","updated_at":"2012-07-18T09:21:16Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7060993","created_at":"2012-07-18T09:21:16Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":7060993},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5783131","body":"Thank you for this useful contribution! You even respected my special spacing convention!\n\nI will publish the version 1.4 of PyGithub next week-end.","updated_at":"2012-07-24T16:07:06Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7211543","created_at":"2012-07-24T16:07:06Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7211543},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5783131","body":"Hum, I'm having trouble with my computer and not much time to fix it. I'll publish PyGithub 1.4 as soon as possible.","updated_at":"2012-07-31T18:47:09Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7407798","created_at":"2012-07-31T18:47:09Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7407798},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5806612","body":"Published, at last...","updated_at":"2012-08-04T06:11:43Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7499550","created_at":"2012-08-04T06:11:43Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7499550},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6353712","body":"Hello!\n\nI confirm that the following code exhibits the same issue:\n\n import github\n\n g = github.Github()\n r = g.get_user( \"jacquev6\" ).get_repo( \"PyGithub\" )\n p = r.get_pull( 57 )\n print p.title, \"has\", p.comments, \"comments\"\n print [ c.body[ :15 ] for c in p.get_comments() ]\n\nIt prints:\n\n Allows connection to GitHub Enterprise installs on local URLs has 2 comments\n []\n\nThis last line calls API https://api.github.com/repos/PyGithub/PyGithub/pulls/57/comments, as documented in http://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request, but the API returns an empty list. I've just managed to get the comments by calling https://api.github.com/repos/PyGithub/PyGithub/issues/57/comments instead. The issue must be on Github's side.\n\nAs a **temporary** work-around, you can use the following code to do as if the pull request is an issue, and call the other API:\n\n print [ c.body[ :15 ] for c in r.get_issue( p.number ).get_comments() ]\n\nRight now, I have not enough time to take care of this problem, but if it's still here at the beginning of September, I will contact Github and/or patch PyGithub.\n\nEnjoy,","updated_at":"2012-08-21T22:15:01Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7918385","created_at":"2012-08-21T22:15:01Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7918385},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6363719","body":"Deleting a repository is a new functionality that was not implemented in the API when I published the last version of PyGithub. It is now documented here: http://developer.github.com/v3/repos/#delete-a-repository\n\nI will implement it in PyGithub at the beginning of September.","updated_at":"2012-08-21T22:21:13Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7918542","created_at":"2012-08-21T22:21:13Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7918542},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6363719","body":"For the 'get_team' part of your issue, I can't find a way to get the id of a team from its name here: http://developer.github.com/v3/orgs/teams/ so there is no way to do it in PyGithub without iterating on 'get_teams()'","updated_at":"2012-08-21T22:27:24Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7918728","created_at":"2012-08-21T22:27:24Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7918728},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6363719","body":"Thanks for your fast reply and help. I look forward to having repo delete.","updated_at":"2012-08-22T01:44:09Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7922282","created_at":"2012-08-22T01:44:09Z","user":{"type":"User","events_url":"https://api.github.com/users/pmchen/events{/privacy}","received_events_url":"https://api.github.com/users/pmchen/received_events","gists_url":"https://api.github.com/users/pmchen/gists{/gist_id}","followers_url":"https://api.github.com/users/pmchen/followers","following_url":"https://api.github.com/users/pmchen/following","organizations_url":"https://api.github.com/users/pmchen/orgs","url":"https://api.github.com/users/pmchen","gravatar_id":"a0f9638840c6e593ecddc966e6d01241","starred_url":"https://api.github.com/users/pmchen/starred{/owner}{/repo}","login":"pmchen","avatar_url":"https://secure.gravatar.com/avatar/a0f9638840c6e593ecddc966e6d01241?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/pmchen/repos","subscriptions_url":"https://api.github.com/users/pmchen/subscriptions","id":671751},"id":7922282},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6353712","body":"To enhance the workaround a bit, you can do this to determine if an issue is a PR or not (because all PRs are issues, too):\n```\n if myIssue.pull_request.diff_url:\n PR=True\n else:\n PR=False\n```","updated_at":"2012-08-22T06:56:34Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7926126","created_at":"2012-08-22T06:56:34Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":7926126},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6353712","body":"Thank you! Will use this as a workaround.","updated_at":"2012-08-22T07:10:09Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7926317","created_at":"2012-08-22T07:10:09Z","user":{"type":"User","events_url":"https://api.github.com/users/nixoz2k7/events{/privacy}","received_events_url":"https://api.github.com/users/nixoz2k7/received_events","gists_url":"https://api.github.com/users/nixoz2k7/gists{/gist_id}","followers_url":"https://api.github.com/users/nixoz2k7/followers","following_url":"https://api.github.com/users/nixoz2k7/following","organizations_url":"https://api.github.com/users/nixoz2k7/orgs","url":"https://api.github.com/users/nixoz2k7","gravatar_id":"2a16046c75f59710161ea486d1f5881d","starred_url":"https://api.github.com/users/nixoz2k7/starred{/owner}{/repo}","login":"nixoz2k7","avatar_url":"https://secure.gravatar.com/avatar/2a16046c75f59710161ea486d1f5881d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/nixoz2k7/repos","subscriptions_url":"https://api.github.com/users/nixoz2k7/subscriptions","id":1027413},"id":7926317},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6363719","body":"On-going developments are here: https://github.com/PyGithub/PyGithub/tree/topic/DeleteRepository","updated_at":"2012-08-23T07:43:36Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/7962252","created_at":"2012-08-23T07:43:36Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":7962252},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6454054","body":"I just realized that there is no option to set timeout for github api requests. There is no timeout at all in Requester.\nIn python2.6 was added option timeout for httplib.HTTPConnection and httplib.HTTPSConnection. It seems that it will drop support of python<2.6.\nAnother way to change the way that Requester works. You can use requests library from @kennethreitz. BTW it will simplify whole Requester API.","updated_at":"2012-08-25T19:44:03Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8026699","created_at":"2012-08-25T19:44:03Z","user":{"type":"User","events_url":"https://api.github.com/users/xobb1t/events{/privacy}","received_events_url":"https://api.github.com/users/xobb1t/received_events","gists_url":"https://api.github.com/users/xobb1t/gists{/gist_id}","followers_url":"https://api.github.com/users/xobb1t/followers","following_url":"https://api.github.com/users/xobb1t/following","organizations_url":"https://api.github.com/users/xobb1t/orgs","url":"https://api.github.com/users/xobb1t","gravatar_id":"ae8a2af3de601885a14bb71240e5d1a6","starred_url":"https://api.github.com/users/xobb1t/starred{/owner}{/repo}","login":"xobb1t","avatar_url":"https://secure.gravatar.com/avatar/ae8a2af3de601885a14bb71240e5d1a6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/xobb1t/repos","subscriptions_url":"https://api.github.com/users/xobb1t/subscriptions","id":344095},"id":8026699},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6583381","body":"Wow! Upverter is a very impressive project. I have been designing some PCBs myself and always felt bad about storing them and connecting them to source code of embedded software. I'm looking forward the PCB layout and manufacture feature, it will make Upverter very useful for amateur electronics!\n\nI'm very proud and very happy to be a small part of your project, thank you for letting me know.","updated_at":"2012-09-03T08:39:41Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8232572","created_at":"2012-09-03T08:39:41Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8232572},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6454054","body":"Thank you very much for your contribution, I will integrate it this week.\n\n","updated_at":"2012-09-03T08:45:50Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8232695","created_at":"2012-09-03T08:45:50Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8232695},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6353712","body":"I've just contacted Github for this issue.","updated_at":"2012-09-03T08:56:13Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8232940","created_at":"2012-09-03T08:56:13Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8232940},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6583381","body":"Awesome, great to hear some positive feedback! If you're interested in trying out the alpha version of our PCB layout tool, send me your Upverter account name (alex@upverter.com) and I can upgrade you. We're hoping to have the layout and manufacturing tools rolled out to everyone in the next few weeks.","updated_at":"2012-09-04T17:54:47Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8272447","created_at":"2012-09-04T17:54:47Z","user":{"type":"User","events_url":"https://api.github.com/users/malexw/events{/privacy}","received_events_url":"https://api.github.com/users/malexw/received_events","gists_url":"https://api.github.com/users/malexw/gists{/gist_id}","followers_url":"https://api.github.com/users/malexw/followers","following_url":"https://api.github.com/users/malexw/following","organizations_url":"https://api.github.com/users/malexw/orgs","url":"https://api.github.com/users/malexw","gravatar_id":"13a30f9924fa2bd918cbb8d06dd8b55a","starred_url":"https://api.github.com/users/malexw/starred{/owner}{/repo}","login":"malexw","avatar_url":"https://secure.gravatar.com/avatar/13a30f9924fa2bd918cbb8d06dd8b55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/malexw/repos","subscriptions_url":"https://api.github.com/users/malexw/subscriptions","id":577322},"id":8272447},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6583381","body":"PM sent.","updated_at":"2012-09-04T20:07:55Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8276835","created_at":"2012-09-04T20:07:55Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8276835},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6641076","body":"All the APIs described in http://developer.github.com/v3/repos/contents/ are newer than the last version of PyGithub (or at least, I was not aware of them when I published that version).\n\nI will implement them soon, you can expect them middle of next week.\n\nFor reference, if you don't find an API in https://github.com/PyGithub/PyGithub/blob/master/doc/ReferenceOfApis.md then I've not implemented it yet.","updated_at":"2012-09-04T20:11:58Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8276985","created_at":"2012-09-04T20:11:37Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8276985},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6641076","body":"Thanks! I'm looking forward to the next release.\n","updated_at":"2012-09-04T23:38:50Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8282881","created_at":"2012-09-04T23:38:50Z","user":{"type":"User","events_url":"https://api.github.com/users/berndca/events{/privacy}","received_events_url":"https://api.github.com/users/berndca/received_events","gists_url":"https://api.github.com/users/berndca/gists{/gist_id}","followers_url":"https://api.github.com/users/berndca/followers","following_url":"https://api.github.com/users/berndca/following","organizations_url":"https://api.github.com/users/berndca/orgs","url":"https://api.github.com/users/berndca","gravatar_id":"4a43f97dc0112d95d8d713e2fd2a983b","starred_url":"https://api.github.com/users/berndca/starred{/owner}{/repo}","login":"berndca","avatar_url":"https://secure.gravatar.com/avatar/4a43f97dc0112d95d8d713e2fd2a983b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/berndca/repos","subscriptions_url":"https://api.github.com/users/berndca/subscriptions","id":466654},"id":8282881},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6353712","body":"And here is the reply I received from Github:\n\n From: Wynn Netherland\n Subject: API v3, list comments on pull requests\n\n Hi, Vincent. I know it's confusing but we actually have three types of comments on GitHub, so there are\n three different spots in the API to grab them. Be sure you're looking in the right spot for the data you expect.\n\n Pull Request comments are the top-level comments found on the Pull Request page. These are retrieved via\n the Issues API [1] since PRs are essentially specialized Issues. Pull Request review comments are those made\n against the diff on the PR. You can grab these with the Review Comments API [2]. Finally, line comments made\n outside the context of a PR on a raw commit can be retrieved via the Commit Comments API [3].\n\n Armed with that info, let me know if you're not seeing the data you expect and the API call you're making, and I\n can dig a bit deeper.\n\n [1] http://developer.github.com/v3/issues/comments/\n [2] http://developer.github.com/v3/pulls/comments/\n [3] http://developer.github.com/v3/repos/comments/\n\n Cheers,\n\nSo, this is coherent with what we can see here: https://github.com/PyGithub/PyGithub/pull/57, as `PullRequest.get_comments` uses the Pull Requests API. @nixoz2k7 Is it coherent with your original issue as well?\n\nAnyway, this is misleading, so I will add two methods named `get_issue_comments` (using the Issues API) and `get_review_comments` (synonym for `get_comments`, using the Pull Requests API). Expect this for the middle of next week.","updated_at":"2012-09-05T06:36:26Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8288983","created_at":"2012-09-05T06:36:26Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8288983},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6653907","body":"Thank you, I was just going to open an issue for that. No need to hurry because of this, though, I won't need it too soon. :-)","updated_at":"2012-09-05T07:08:11Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8289525","created_at":"2012-09-05T07:08:11Z","user":{"type":"User","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/bilderbuchi/repos","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","id":327442},"id":8289525},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6653907","body":"I think I'll do it for the middle of next week","updated_at":"2012-09-05T14:21:16Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8300374","created_at":"2012-09-05T14:21:16Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8300374},{"issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6611093","body":"Just published on [PyPi](http://pypi.python.org/pypi/PyGithub).","updated_at":"2012-09-05T17:56:28Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8307659","created_at":"2012-09-05T17:56:28Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"id":8307659}] diff --git a/tests/ReplayData/Repository.testGetIssuesEvents.txt b/tests/ReplayData/Repository.testGetIssuesEvents.txt index 87e726e97e..7a0291d71f 100644 --- a/tests/ReplayData/Repository.testGetIssuesEvents.txt +++ b/tests/ReplayData/Repository.testGetIssuesEvents.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/events +/repos/PyGithub/PyGithub/issues/events {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4923'), ('content-length', '85910'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last"'), ('etag', '"7ad8520585258c37864643b4719cbecc"'), ('date', 'Sun, 27 May 2012 07:11:23 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16347480","issue":{"updated_at":"2012-05-27T05:40:15Z","body":"Body created by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/30","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":30,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Issue also created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-27T05:40:15Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4769659,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/30"},"commit_id":null,"created_at":"2012-05-27T05:40:15Z","event":"assigned","id":16347480,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16347479","issue":{"updated_at":"2012-05-27T05:40:15Z","body":"Body created by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/30","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":30,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Issue also created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-27T05:40:15Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4769659,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/30"},"commit_id":null,"created_at":"2012-05-27T05:40:15Z","event":"subscribed","id":16347479,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16333959","issue":{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","closed_issues":3,"open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546},"number":28,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4653757,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/28"},"commit_id":null,"created_at":"2012-05-26T14:59:34Z","event":"closed","id":16333959,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16333938","issue":{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","closed_issues":3,"open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546},"number":28,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4653757,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/28"},"commit_id":null,"created_at":"2012-05-26T14:58:27Z","event":"assigned","id":16333938,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16292760","issue":{"updated_at":"2012-05-25T17:32:32Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/29","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","number":5,"title":"Version 0.7","due_on":"2012-05-26T07:00:00Z","closed_issues":2,"open_issues":0,"created_at":"2012-05-25T11:47:06Z","state":"closed","description":"","id":124045},"number":29,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-25T17:32:32Z","title":"Publish version 0.7","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-05-25T11:47:59Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4752048,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/29"},"commit_id":null,"created_at":"2012-05-25T17:32:32Z","event":"closed","id":16292760,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16292758","issue":{"updated_at":"2012-05-25T17:32:31Z","body":"One would want to use the API without authentication, with login+password, and with OAuth token. Let's cover these use-cases.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/15","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","number":5,"title":"Version 0.7","due_on":"2012-05-26T07:00:00Z","closed_issues":2,"open_issues":0,"created_at":"2012-05-25T11:47:06Z","state":"closed","description":"","id":124045},"number":15,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-25T17:32:31Z","title":"Implement all authentication schemes","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"created_at":"2012-03-13T06:24:05Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3624575,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/15"},"commit_id":null,"created_at":"2012-05-25T17:32:31Z","event":"closed","id":16292758,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16266502","issue":{"updated_at":"2012-05-25T17:32:32Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/29","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","number":5,"title":"Version 0.7","due_on":"2012-05-26T07:00:00Z","closed_issues":2,"open_issues":0,"created_at":"2012-05-25T11:47:06Z","state":"closed","description":"","id":124045},"number":29,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-25T17:32:32Z","title":"Publish version 0.7","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-05-25T11:47:59Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4752048,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/29"},"commit_id":null,"created_at":"2012-05-25T11:47:59Z","event":"assigned","id":16266502,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16266501","issue":{"updated_at":"2012-05-25T17:32:32Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/29","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","number":5,"title":"Version 0.7","due_on":"2012-05-26T07:00:00Z","closed_issues":2,"open_issues":0,"created_at":"2012-05-25T11:47:06Z","state":"closed","description":"","id":124045},"number":29,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-25T17:32:32Z","title":"Publish version 0.7","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-05-25T11:47:59Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4752048,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/29"},"commit_id":null,"created_at":"2012-05-25T11:47:59Z","event":"subscribed","id":16266501,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15883398","issue":{"updated_at":"2012-05-21T12:09:57Z","body":"Hi!\n\nI tried to find a function which returns the number of API requests I have remaining due to [rate limiting](http://developer.github.com/v3/#rate-limiting). Is this somewhere in the library and I can't find it? If not, I think it would be a great feature to have, to be able to keep track of how many requests certain actions use up.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/26","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":26,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-21T11:17:12Z","title":"Rate limiting?","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-17T12:02:05Z","state":"closed","user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":4622816,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/26"},"commit_id":null,"created_at":"2012-05-21T11:17:12Z","event":"closed","id":15883398,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15820048","issue":{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","closed_issues":3,"open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546},"number":28,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4653757,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/28"},"commit_id":null,"created_at":"2012-05-19T10:42:25Z","event":"assigned","id":15820048,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15819975","issue":{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","closed_issues":3,"open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546},"number":28,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4653757,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/28"},"commit_id":null,"created_at":"2012-05-19T10:38:23Z","event":"subscribed","id":15819975,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15756354","issue":{"updated_at":"2012-05-18T11:06:11Z","body":"As per discussion in 6945921c529be14c3a8f566dd1e483674516d46d\n\nI have observed that autocompletion (using PyDev+Eclipse in my case) is pretty erratic.\nFor example, in the tutorial from the readme, `g.get_u` gets autocompleted correctly, but `g.get_user().get_r` (or any method or attribute applicable to `NamedUsers`/`AuthenticatedUser`, really) does not show autocompletion to `g.get_user().get_repo()`.\n\nThis makes exploring the library/API a bit cumbersome. ","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/27","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":27,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Facilitate IDE autocompletion","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-18T10:52:29Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":4639931,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/27"},"commit_id":null,"created_at":"2012-05-18T11:06:05Z","event":"subscribed","id":15756354,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15756353","issue":{"updated_at":"2012-05-18T11:06:11Z","body":"As per discussion in 6945921c529be14c3a8f566dd1e483674516d46d\n\nI have observed that autocompletion (using PyDev+Eclipse in my case) is pretty erratic.\nFor example, in the tutorial from the readme, `g.get_u` gets autocompleted correctly, but `g.get_user().get_r` (or any method or attribute applicable to `NamedUsers`/`AuthenticatedUser`, really) does not show autocompletion to `g.get_user().get_repo()`.\n\nThis makes exploring the library/API a bit cumbersome. ","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/27","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":27,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Facilitate IDE autocompletion","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-18T10:52:29Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":4639931,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/27"},"commit_id":null,"created_at":"2012-05-18T11:06:05Z","event":"assigned","id":15756353,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15755561","issue":{"updated_at":"2012-05-18T11:06:11Z","body":"As per discussion in 6945921c529be14c3a8f566dd1e483674516d46d\n\nI have observed that autocompletion (using PyDev+Eclipse in my case) is pretty erratic.\nFor example, in the tutorial from the readme, `g.get_u` gets autocompleted correctly, but `g.get_user().get_r` (or any method or attribute applicable to `NamedUsers`/`AuthenticatedUser`, really) does not show autocompletion to `g.get_user().get_repo()`.\n\nThis makes exploring the library/API a bit cumbersome. ","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/27","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":27,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Facilitate IDE autocompletion","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-18T10:52:29Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":4639931,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/27"},"commit_id":null,"created_at":"2012-05-18T10:52:29Z","event":"subscribed","id":15755561,"actor":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15741471","issue":{"updated_at":"2012-05-21T12:09:57Z","body":"Hi!\n\nI tried to find a function which returns the number of API requests I have remaining due to [rate limiting](http://developer.github.com/v3/#rate-limiting). Is this somewhere in the library and I can't find it? If not, I think it would be a great feature to have, to be able to keep track of how many requests certain actions use up.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/26","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":26,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-21T11:17:12Z","title":"Rate limiting?","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-17T12:02:05Z","state":"closed","user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":4622816,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/26"},"commit_id":null,"created_at":"2012-05-18T05:18:34Z","event":"subscribed","id":15741471,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15741470","issue":{"updated_at":"2012-05-21T12:09:57Z","body":"Hi!\n\nI tried to find a function which returns the number of API requests I have remaining due to [rate limiting](http://developer.github.com/v3/#rate-limiting). Is this somewhere in the library and I can't find it? If not, I think it would be a great feature to have, to be able to keep track of how many requests certain actions use up.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/26","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":26,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-21T11:17:12Z","title":"Rate limiting?","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-17T12:02:05Z","state":"closed","user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":4622816,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/26"},"commit_id":null,"created_at":"2012-05-18T05:18:34Z","event":"assigned","id":15741470,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15675859","issue":{"updated_at":"2012-05-21T12:09:57Z","body":"Hi!\n\nI tried to find a function which returns the number of API requests I have remaining due to [rate limiting](http://developer.github.com/v3/#rate-limiting). Is this somewhere in the library and I can't find it? If not, I think it would be a great feature to have, to be able to keep track of how many requests certain actions use up.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/26","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":26,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-21T11:17:12Z","title":"Rate limiting?","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-17T12:02:05Z","state":"closed","user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":4622816,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/26"},"commit_id":null,"created_at":"2012-05-17T12:02:05Z","event":"subscribed","id":15675859,"actor":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/14890679","issue":{"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/24","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":24,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Improve error messages on broken requests","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-04-30T20:01:20Z","state":"open","user":{"url":"https://api.github.com/users/roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","id":328726},"id":4356743,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/24"},"commit_id":null,"created_at":"2012-05-07T10:49:06Z","event":"referenced","id":14890679,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/14890678","issue":{"updated_at":"2012-05-07T10:49:06Z","body":"List known clients.\r\n\r\nFirst known client: http://pypi.python.org/pypi/tratihubis/ (cf #24)","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/25","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":25,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"List project(s) using PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-05-07T10:49:06Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4452000,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/25"},"commit_id":null,"created_at":"2012-05-07T10:49:06Z","event":"subscribed","id":14890678,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/14890677","issue":{"updated_at":"2012-05-07T10:49:06Z","body":"List known clients.\r\n\r\nFirst known client: http://pypi.python.org/pypi/tratihubis/ (cf #24)","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/25","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":25,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"List project(s) using PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-05-07T10:49:06Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4452000,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/25"},"commit_id":null,"created_at":"2012-05-07T10:49:06Z","event":"assigned","id":14890677,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/14890532","issue":{"updated_at":"2012-05-07T10:45:58Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":6,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-07T10:45:58Z","title":"Review exceptions policy when receiving error HTTP status","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-03-12T19:45:51Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3617711,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/6"},"commit_id":null,"created_at":"2012-05-07T10:45:58Z","event":"closed","id":14890532,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/14890531","issue":{"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/24","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":24,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Improve error messages on broken requests","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-04-30T20:01:20Z","state":"open","user":{"url":"https://api.github.com/users/roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","id":328726},"id":4356743,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/24"},"commit_id":null,"created_at":"2012-05-07T10:45:58Z","event":"referenced","id":14890531,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/14797847","issue":{"updated_at":"2012-05-07T10:45:58Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":6,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-07T10:45:58Z","title":"Review exceptions policy when receiving error HTTP status","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-03-12T19:45:51Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3617711,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/6"},"commit_id":null,"created_at":"2012-05-04T19:23:57Z","event":"referenced","id":14797847,"actor":{"url":"https://api.github.com/users/roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","id":328726}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/14550202","issue":{"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/24","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":24,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Improve error messages on broken requests","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-04-30T20:01:20Z","state":"open","user":{"url":"https://api.github.com/users/roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","id":328726},"id":4356743,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/24"},"commit_id":null,"created_at":"2012-05-01T21:58:55Z","event":"subscribed","id":14550202,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/14550200","issue":{"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/24","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":24,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Improve error messages on broken requests","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-04-30T20:01:20Z","state":"open","user":{"url":"https://api.github.com/users/roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","id":328726},"id":4356743,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/24"},"commit_id":null,"created_at":"2012-05-01T21:58:55Z","event":"assigned","id":14550200,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/14466693","issue":{"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/24","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":24,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Improve error messages on broken requests","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-04-30T20:01:20Z","state":"open","user":{"url":"https://api.github.com/users/roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","id":328726},"id":4356743,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/24"},"commit_id":null,"created_at":"2012-04-30T20:01:20Z","event":"subscribed","id":14466693,"actor":{"url":"https://api.github.com/users/roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","id":328726}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/13988647","issue":{"updated_at":"2012-04-23T20:23:29Z","body":"This is probably user error (I don't really know what I'm doing) but if I execute ```repo.get_download(1)``` or ```repo.get_download('foobar')``` (I'm not sure what the proper id for a download is), I get the following error trace:\r\n\r\n Traceback (most recent call last):\r\n File \"/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py\", line 1, in \r\n # Used internally for debug sandbox under external interpreter\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 77, in \r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/List.py\", line 114, in __execute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/TypePolicies.py\", line 25, in createNonLazy\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 73, in __init__\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 103, in __fetchAttribute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/Basic.py\", line 62, in updateAttributes\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Github.py\", line 10, in _dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 17, in dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 39, in __statusCheckedRequest\r\n github.Requester.UnknownGithubObject:\r\n\r\nAlso possibly related: ```repo.get_download()``` (what weird things users do, eh?) causes a shorter trace ending in Type Error. ","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/23","comments":2,"milestone":null,"number":23,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-04-23T20:23:29Z","title":"UnknownGithubObject on get_download() with invalid key","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-04-17T19:03:44Z","state":"closed","user":{"url":"https://api.github.com/users/tallforasmurf","avatar_url":"https://secure.gravatar.com/avatar/61104afbd871dab22a702e7c1233d573?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"61104afbd871dab22a702e7c1233d573","login":"tallforasmurf","id":1137018},"id":4159230,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/23"},"commit_id":null,"created_at":"2012-04-23T20:23:29Z","event":"closed","id":13988647,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/13600012","issue":{"updated_at":"2012-04-23T20:23:29Z","body":"This is probably user error (I don't really know what I'm doing) but if I execute ```repo.get_download(1)``` or ```repo.get_download('foobar')``` (I'm not sure what the proper id for a download is), I get the following error trace:\r\n\r\n Traceback (most recent call last):\r\n File \"/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py\", line 1, in \r\n # Used internally for debug sandbox under external interpreter\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 77, in \r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/List.py\", line 114, in __execute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/TypePolicies.py\", line 25, in createNonLazy\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 73, in __init__\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 103, in __fetchAttribute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/Basic.py\", line 62, in updateAttributes\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Github.py\", line 10, in _dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 17, in dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 39, in __statusCheckedRequest\r\n github.Requester.UnknownGithubObject:\r\n\r\nAlso possibly related: ```repo.get_download()``` (what weird things users do, eh?) causes a shorter trace ending in Type Error. ","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/23","comments":2,"milestone":null,"number":23,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-04-23T20:23:29Z","title":"UnknownGithubObject on get_download() with invalid key","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-04-17T19:03:44Z","state":"closed","user":{"url":"https://api.github.com/users/tallforasmurf","avatar_url":"https://secure.gravatar.com/avatar/61104afbd871dab22a702e7c1233d573?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"61104afbd871dab22a702e7c1233d573","login":"tallforasmurf","id":1137018},"id":4159230,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/23"},"commit_id":null,"created_at":"2012-04-17T21:10:30Z","event":"assigned","id":13600012,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/13599998","issue":{"updated_at":"2012-04-23T20:23:29Z","body":"This is probably user error (I don't really know what I'm doing) but if I execute ```repo.get_download(1)``` or ```repo.get_download('foobar')``` (I'm not sure what the proper id for a download is), I get the following error trace:\r\n\r\n Traceback (most recent call last):\r\n File \"/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py\", line 1, in \r\n # Used internally for debug sandbox under external interpreter\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 77, in \r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/List.py\", line 114, in __execute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/TypePolicies.py\", line 25, in createNonLazy\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 73, in __init__\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 103, in __fetchAttribute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/Basic.py\", line 62, in updateAttributes\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Github.py\", line 10, in _dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 17, in dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 39, in __statusCheckedRequest\r\n github.Requester.UnknownGithubObject:\r\n\r\nAlso possibly related: ```repo.get_download()``` (what weird things users do, eh?) causes a shorter trace ending in Type Error. ","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/23","comments":2,"milestone":null,"number":23,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-04-23T20:23:29Z","title":"UnknownGithubObject on get_download() with invalid key","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-04-17T19:03:44Z","state":"closed","user":{"url":"https://api.github.com/users/tallforasmurf","avatar_url":"https://secure.gravatar.com/avatar/61104afbd871dab22a702e7c1233d573?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"61104afbd871dab22a702e7c1233d573","login":"tallforasmurf","id":1137018},"id":4159230,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/23"},"commit_id":null,"created_at":"2012-04-17T21:10:15Z","event":"subscribed","id":13599998,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/13589532","issue":{"updated_at":"2012-04-23T20:23:29Z","body":"This is probably user error (I don't really know what I'm doing) but if I execute ```repo.get_download(1)``` or ```repo.get_download('foobar')``` (I'm not sure what the proper id for a download is), I get the following error trace:\r\n\r\n Traceback (most recent call last):\r\n File \"/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py\", line 1, in \r\n # Used internally for debug sandbox under external interpreter\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 77, in \r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/List.py\", line 114, in __execute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/TypePolicies.py\", line 25, in createNonLazy\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 73, in __init__\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 103, in __fetchAttribute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/Basic.py\", line 62, in updateAttributes\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Github.py\", line 10, in _dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 17, in dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 39, in __statusCheckedRequest\r\n github.Requester.UnknownGithubObject:\r\n\r\nAlso possibly related: ```repo.get_download()``` (what weird things users do, eh?) causes a shorter trace ending in Type Error. ","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/23","comments":2,"milestone":null,"number":23,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-04-23T20:23:29Z","title":"UnknownGithubObject on get_download() with invalid key","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-04-17T19:03:44Z","state":"closed","user":{"url":"https://api.github.com/users/tallforasmurf","avatar_url":"https://secure.gravatar.com/avatar/61104afbd871dab22a702e7c1233d573?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"61104afbd871dab22a702e7c1233d573","login":"tallforasmurf","id":1137018},"id":4159230,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/23"},"commit_id":null,"created_at":"2012-04-17T19:03:45Z","event":"subscribed","id":13589532,"actor":{"url":"https://api.github.com/users/tallforasmurf","avatar_url":"https://secure.gravatar.com/avatar/61104afbd871dab22a702e7c1233d573?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"61104afbd871dab22a702e7c1233d573","login":"tallforasmurf","id":1137018}}] +[('status', '200 OK'), ('x-ratelimit-remaining', '4923'), ('content-length', '85910'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last"'), ('etag', '"7ad8520585258c37864643b4719cbecc"'), ('date', 'Sun, 27 May 2012 07:11:23 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16347480","issue":{"updated_at":"2012-05-27T05:40:15Z","body":"Body created by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":30,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Issue also created by PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-27T05:40:15Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4769659,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/30"},"commit_id":null,"created_at":"2012-05-27T05:40:15Z","event":"assigned","id":16347480,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16347479","issue":{"updated_at":"2012-05-27T05:40:15Z","body":"Body created by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":30,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Issue also created by PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-27T05:40:15Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4769659,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/30"},"commit_id":null,"created_at":"2012-05-27T05:40:15Z","event":"subscribed","id":16347479,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16333959","issue":{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","closed_issues":3,"open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546},"number":28,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4653757,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/28"},"commit_id":null,"created_at":"2012-05-26T14:59:34Z","event":"closed","id":16333959,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16333938","issue":{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","closed_issues":3,"open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546},"number":28,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4653757,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/28"},"commit_id":null,"created_at":"2012-05-26T14:58:27Z","event":"assigned","id":16333938,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16292760","issue":{"updated_at":"2012-05-25T17:32:32Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/29","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/5","number":5,"title":"Version 0.7","due_on":"2012-05-26T07:00:00Z","closed_issues":2,"open_issues":0,"created_at":"2012-05-25T11:47:06Z","state":"closed","description":"","id":124045},"number":29,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-25T17:32:32Z","title":"Publish version 0.7","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-05-25T11:47:59Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4752048,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/29"},"commit_id":null,"created_at":"2012-05-25T17:32:32Z","event":"closed","id":16292760,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16292758","issue":{"updated_at":"2012-05-25T17:32:31Z","body":"One would want to use the API without authentication, with login+password, and with OAuth token. Let's cover these use-cases.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/15","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/5","number":5,"title":"Version 0.7","due_on":"2012-05-26T07:00:00Z","closed_issues":2,"open_issues":0,"created_at":"2012-05-25T11:47:06Z","state":"closed","description":"","id":124045},"number":15,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-25T17:32:31Z","title":"Implement all authentication schemes","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"created_at":"2012-03-13T06:24:05Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3624575,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/15"},"commit_id":null,"created_at":"2012-05-25T17:32:31Z","event":"closed","id":16292758,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16266502","issue":{"updated_at":"2012-05-25T17:32:32Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/29","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/5","number":5,"title":"Version 0.7","due_on":"2012-05-26T07:00:00Z","closed_issues":2,"open_issues":0,"created_at":"2012-05-25T11:47:06Z","state":"closed","description":"","id":124045},"number":29,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-25T17:32:32Z","title":"Publish version 0.7","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-05-25T11:47:59Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4752048,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/29"},"commit_id":null,"created_at":"2012-05-25T11:47:59Z","event":"assigned","id":16266502,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16266501","issue":{"updated_at":"2012-05-25T17:32:32Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/29","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/5","number":5,"title":"Version 0.7","due_on":"2012-05-26T07:00:00Z","closed_issues":2,"open_issues":0,"created_at":"2012-05-25T11:47:06Z","state":"closed","description":"","id":124045},"number":29,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-25T17:32:32Z","title":"Publish version 0.7","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-05-25T11:47:59Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4752048,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/29"},"commit_id":null,"created_at":"2012-05-25T11:47:59Z","event":"subscribed","id":16266501,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/15883398","issue":{"updated_at":"2012-05-21T12:09:57Z","body":"Hi!\n\nI tried to find a function which returns the number of API requests I have remaining due to [rate limiting](http://developer.github.com/v3/#rate-limiting). Is this somewhere in the library and I can't find it? If not, I think it would be a great feature to have, to be able to keep track of how many requests certain actions use up.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/26","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":26,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-21T11:17:12Z","title":"Rate limiting?","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-17T12:02:05Z","state":"closed","user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":4622816,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/26"},"commit_id":null,"created_at":"2012-05-21T11:17:12Z","event":"closed","id":15883398,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/15820048","issue":{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","closed_issues":3,"open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546},"number":28,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4653757,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/28"},"commit_id":null,"created_at":"2012-05-19T10:42:25Z","event":"assigned","id":15820048,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/15819975","issue":{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","closed_issues":3,"open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546},"number":28,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4653757,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/28"},"commit_id":null,"created_at":"2012-05-19T10:38:23Z","event":"subscribed","id":15819975,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/15756354","issue":{"updated_at":"2012-05-18T11:06:11Z","body":"As per discussion in 6945921c529be14c3a8f566dd1e483674516d46d\n\nI have observed that autocompletion (using PyDev+Eclipse in my case) is pretty erratic.\nFor example, in the tutorial from the readme, `g.get_u` gets autocompleted correctly, but `g.get_user().get_r` (or any method or attribute applicable to `NamedUsers`/`AuthenticatedUser`, really) does not show autocompletion to `g.get_user().get_repo()`.\n\nThis makes exploring the library/API a bit cumbersome. ","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/27","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":27,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Facilitate IDE autocompletion","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-18T10:52:29Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":4639931,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/27"},"commit_id":null,"created_at":"2012-05-18T11:06:05Z","event":"subscribed","id":15756354,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/15756353","issue":{"updated_at":"2012-05-18T11:06:11Z","body":"As per discussion in 6945921c529be14c3a8f566dd1e483674516d46d\n\nI have observed that autocompletion (using PyDev+Eclipse in my case) is pretty erratic.\nFor example, in the tutorial from the readme, `g.get_u` gets autocompleted correctly, but `g.get_user().get_r` (or any method or attribute applicable to `NamedUsers`/`AuthenticatedUser`, really) does not show autocompletion to `g.get_user().get_repo()`.\n\nThis makes exploring the library/API a bit cumbersome. ","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/27","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":27,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Facilitate IDE autocompletion","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-18T10:52:29Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":4639931,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/27"},"commit_id":null,"created_at":"2012-05-18T11:06:05Z","event":"assigned","id":15756353,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/15755561","issue":{"updated_at":"2012-05-18T11:06:11Z","body":"As per discussion in 6945921c529be14c3a8f566dd1e483674516d46d\n\nI have observed that autocompletion (using PyDev+Eclipse in my case) is pretty erratic.\nFor example, in the tutorial from the readme, `g.get_u` gets autocompleted correctly, but `g.get_user().get_r` (or any method or attribute applicable to `NamedUsers`/`AuthenticatedUser`, really) does not show autocompletion to `g.get_user().get_repo()`.\n\nThis makes exploring the library/API a bit cumbersome. ","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/27","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":27,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Facilitate IDE autocompletion","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-18T10:52:29Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":4639931,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/27"},"commit_id":null,"created_at":"2012-05-18T10:52:29Z","event":"subscribed","id":15755561,"actor":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/15741471","issue":{"updated_at":"2012-05-21T12:09:57Z","body":"Hi!\n\nI tried to find a function which returns the number of API requests I have remaining due to [rate limiting](http://developer.github.com/v3/#rate-limiting). Is this somewhere in the library and I can't find it? If not, I think it would be a great feature to have, to be able to keep track of how many requests certain actions use up.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/26","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":26,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-21T11:17:12Z","title":"Rate limiting?","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-17T12:02:05Z","state":"closed","user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":4622816,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/26"},"commit_id":null,"created_at":"2012-05-18T05:18:34Z","event":"subscribed","id":15741471,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/15741470","issue":{"updated_at":"2012-05-21T12:09:57Z","body":"Hi!\n\nI tried to find a function which returns the number of API requests I have remaining due to [rate limiting](http://developer.github.com/v3/#rate-limiting). Is this somewhere in the library and I can't find it? If not, I think it would be a great feature to have, to be able to keep track of how many requests certain actions use up.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/26","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":26,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-21T11:17:12Z","title":"Rate limiting?","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-17T12:02:05Z","state":"closed","user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":4622816,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/26"},"commit_id":null,"created_at":"2012-05-18T05:18:34Z","event":"assigned","id":15741470,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/15675859","issue":{"updated_at":"2012-05-21T12:09:57Z","body":"Hi!\n\nI tried to find a function which returns the number of API requests I have remaining due to [rate limiting](http://developer.github.com/v3/#rate-limiting). Is this somewhere in the library and I can't find it? If not, I think it would be a great feature to have, to be able to keep track of how many requests certain actions use up.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/26","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":26,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-21T11:17:12Z","title":"Rate limiting?","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-05-17T12:02:05Z","state":"closed","user":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":4622816,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/26"},"commit_id":null,"created_at":"2012-05-17T12:02:05Z","event":"subscribed","id":15675859,"actor":{"url":"https://api.github.com/users/bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/14890679","issue":{"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/24","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":24,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Improve error messages on broken requests","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-04-30T20:01:20Z","state":"open","user":{"url":"https://api.github.com/users/roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","id":328726},"id":4356743,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/24"},"commit_id":null,"created_at":"2012-05-07T10:49:06Z","event":"referenced","id":14890679,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/14890678","issue":{"updated_at":"2012-05-07T10:49:06Z","body":"List known clients.\r\n\r\nFirst known client: http://pypi.python.org/pypi/tratihubis/ (cf #24)","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/25","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":25,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"List project(s) using PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-05-07T10:49:06Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4452000,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/25"},"commit_id":null,"created_at":"2012-05-07T10:49:06Z","event":"subscribed","id":14890678,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/14890677","issue":{"updated_at":"2012-05-07T10:49:06Z","body":"List known clients.\r\n\r\nFirst known client: http://pypi.python.org/pypi/tratihubis/ (cf #24)","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/25","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":25,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"List project(s) using PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"created_at":"2012-05-07T10:49:06Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4452000,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/25"},"commit_id":null,"created_at":"2012-05-07T10:49:06Z","event":"assigned","id":14890677,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/14890532","issue":{"updated_at":"2012-05-07T10:45:58Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":6,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-07T10:45:58Z","title":"Review exceptions policy when receiving error HTTP status","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-03-12T19:45:51Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3617711,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/6"},"commit_id":null,"created_at":"2012-05-07T10:45:58Z","event":"closed","id":14890532,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/14890531","issue":{"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/24","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":24,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Improve error messages on broken requests","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-04-30T20:01:20Z","state":"open","user":{"url":"https://api.github.com/users/roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","id":328726},"id":4356743,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/24"},"commit_id":null,"created_at":"2012-05-07T10:45:58Z","event":"referenced","id":14890531,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/14797847","issue":{"updated_at":"2012-05-07T10:45:58Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/6","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":6,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-07T10:45:58Z","title":"Review exceptions policy when receiving error HTTP status","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-03-12T19:45:51Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3617711,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/6"},"commit_id":null,"created_at":"2012-05-04T19:23:57Z","event":"referenced","id":14797847,"actor":{"url":"https://api.github.com/users/roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","id":328726}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/14550202","issue":{"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/24","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":24,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Improve error messages on broken requests","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-04-30T20:01:20Z","state":"open","user":{"url":"https://api.github.com/users/roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","id":328726},"id":4356743,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/24"},"commit_id":null,"created_at":"2012-05-01T21:58:55Z","event":"subscribed","id":14550202,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/14550200","issue":{"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/24","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":24,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Improve error messages on broken requests","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-04-30T20:01:20Z","state":"open","user":{"url":"https://api.github.com/users/roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","id":328726},"id":4356743,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/24"},"commit_id":null,"created_at":"2012-05-01T21:58:55Z","event":"assigned","id":14550200,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/14466693","issue":{"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/24","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","closed_issues":2,"open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":24,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":null,"title":"Improve error messages on broken requests","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"created_at":"2012-04-30T20:01:20Z","state":"open","user":{"url":"https://api.github.com/users/roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","id":328726},"id":4356743,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/24"},"commit_id":null,"created_at":"2012-04-30T20:01:20Z","event":"subscribed","id":14466693,"actor":{"url":"https://api.github.com/users/roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","id":328726}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/13988647","issue":{"updated_at":"2012-04-23T20:23:29Z","body":"This is probably user error (I don't really know what I'm doing) but if I execute ```repo.get_download(1)``` or ```repo.get_download('foobar')``` (I'm not sure what the proper id for a download is), I get the following error trace:\r\n\r\n Traceback (most recent call last):\r\n File \"/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py\", line 1, in \r\n # Used internally for debug sandbox under external interpreter\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 77, in \r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/List.py\", line 114, in __execute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/TypePolicies.py\", line 25, in createNonLazy\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 73, in __init__\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 103, in __fetchAttribute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/Basic.py\", line 62, in updateAttributes\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Github.py\", line 10, in _dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 17, in dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 39, in __statusCheckedRequest\r\n github.Requester.UnknownGithubObject:\r\n\r\nAlso possibly related: ```repo.get_download()``` (what weird things users do, eh?) causes a shorter trace ending in Type Error. ","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/23","comments":2,"milestone":null,"number":23,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-04-23T20:23:29Z","title":"UnknownGithubObject on get_download() with invalid key","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-04-17T19:03:44Z","state":"closed","user":{"url":"https://api.github.com/users/tallforasmurf","avatar_url":"https://secure.gravatar.com/avatar/61104afbd871dab22a702e7c1233d573?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"61104afbd871dab22a702e7c1233d573","login":"tallforasmurf","id":1137018},"id":4159230,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/23"},"commit_id":null,"created_at":"2012-04-23T20:23:29Z","event":"closed","id":13988647,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/13600012","issue":{"updated_at":"2012-04-23T20:23:29Z","body":"This is probably user error (I don't really know what I'm doing) but if I execute ```repo.get_download(1)``` or ```repo.get_download('foobar')``` (I'm not sure what the proper id for a download is), I get the following error trace:\r\n\r\n Traceback (most recent call last):\r\n File \"/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py\", line 1, in \r\n # Used internally for debug sandbox under external interpreter\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 77, in \r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/List.py\", line 114, in __execute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/TypePolicies.py\", line 25, in createNonLazy\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 73, in __init__\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 103, in __fetchAttribute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/Basic.py\", line 62, in updateAttributes\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Github.py\", line 10, in _dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 17, in dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 39, in __statusCheckedRequest\r\n github.Requester.UnknownGithubObject:\r\n\r\nAlso possibly related: ```repo.get_download()``` (what weird things users do, eh?) causes a shorter trace ending in Type Error. ","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/23","comments":2,"milestone":null,"number":23,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-04-23T20:23:29Z","title":"UnknownGithubObject on get_download() with invalid key","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-04-17T19:03:44Z","state":"closed","user":{"url":"https://api.github.com/users/tallforasmurf","avatar_url":"https://secure.gravatar.com/avatar/61104afbd871dab22a702e7c1233d573?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"61104afbd871dab22a702e7c1233d573","login":"tallforasmurf","id":1137018},"id":4159230,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/23"},"commit_id":null,"created_at":"2012-04-17T21:10:30Z","event":"assigned","id":13600012,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/13599998","issue":{"updated_at":"2012-04-23T20:23:29Z","body":"This is probably user error (I don't really know what I'm doing) but if I execute ```repo.get_download(1)``` or ```repo.get_download('foobar')``` (I'm not sure what the proper id for a download is), I get the following error trace:\r\n\r\n Traceback (most recent call last):\r\n File \"/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py\", line 1, in \r\n # Used internally for debug sandbox under external interpreter\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 77, in \r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/List.py\", line 114, in __execute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/TypePolicies.py\", line 25, in createNonLazy\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 73, in __init__\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 103, in __fetchAttribute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/Basic.py\", line 62, in updateAttributes\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Github.py\", line 10, in _dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 17, in dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 39, in __statusCheckedRequest\r\n github.Requester.UnknownGithubObject:\r\n\r\nAlso possibly related: ```repo.get_download()``` (what weird things users do, eh?) causes a shorter trace ending in Type Error. ","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/23","comments":2,"milestone":null,"number":23,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-04-23T20:23:29Z","title":"UnknownGithubObject on get_download() with invalid key","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-04-17T19:03:44Z","state":"closed","user":{"url":"https://api.github.com/users/tallforasmurf","avatar_url":"https://secure.gravatar.com/avatar/61104afbd871dab22a702e7c1233d573?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"61104afbd871dab22a702e7c1233d573","login":"tallforasmurf","id":1137018},"id":4159230,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/23"},"commit_id":null,"created_at":"2012-04-17T21:10:15Z","event":"subscribed","id":13599998,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/13589532","issue":{"updated_at":"2012-04-23T20:23:29Z","body":"This is probably user error (I don't really know what I'm doing) but if I execute ```repo.get_download(1)``` or ```repo.get_download('foobar')``` (I'm not sure what the proper id for a download is), I get the following error trace:\r\n\r\n Traceback (most recent call last):\r\n File \"/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py\", line 1, in \r\n # Used internally for debug sandbox under external interpreter\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 77, in \r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/List.py\", line 114, in __execute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/TypePolicies.py\", line 25, in createNonLazy\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 73, in __init__\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/GithubObject.py\", line 103, in __fetchAttribute\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/GithubObjects/GithubObject/Basic.py\", line 62, in updateAttributes\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Github.py\", line 10, in _dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 17, in dataRequest\r\n File \"/Library/Python/2.6/site-packages/PyGithub-0.6-py2.6.egg/github/Requester.py\", line 39, in __statusCheckedRequest\r\n github.Requester.UnknownGithubObject:\r\n\r\nAlso possibly related: ```repo.get_download()``` (what weird things users do, eh?) causes a shorter trace ending in Type Error. ","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/23","comments":2,"milestone":null,"number":23,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-04-23T20:23:29Z","title":"UnknownGithubObject on get_download() with invalid key","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-04-17T19:03:44Z","state":"closed","user":{"url":"https://api.github.com/users/tallforasmurf","avatar_url":"https://secure.gravatar.com/avatar/61104afbd871dab22a702e7c1233d573?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"61104afbd871dab22a702e7c1233d573","login":"tallforasmurf","id":1137018},"id":4159230,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/PyGithub/PyGithub/issues/23"},"commit_id":null,"created_at":"2012-04-17T19:03:45Z","event":"subscribed","id":13589532,"actor":{"url":"https://api.github.com/users/tallforasmurf","avatar_url":"https://secure.gravatar.com/avatar/61104afbd871dab22a702e7c1233d573?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"61104afbd871dab22a702e7c1233d573","login":"tallforasmurf","id":1137018}}] diff --git a/tests/ReplayData/Repository.testGetIssuesWithArguments.txt b/tests/ReplayData/Repository.testGetIssuesWithArguments.txt index 7ff8cb5adc..f23283eac5 100644 --- a/tests/ReplayData/Repository.testGetIssuesWithArguments.txt +++ b/tests/ReplayData/Repository.testGetIssuesWithArguments.txt @@ -2,12 +2,12 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/milestones/3 +/repos/PyGithub/PyGithub/milestones/3 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4986'), ('content-length', '577'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"aefd46b78a992c1eb76e6bb49c45be7c"'), ('date', 'Fri, 01 Jun 2012 19:52:57 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"title":"Version 0.5: full implementation","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-12T21:38:36Z","state":"closed","description":"","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/3","closed_issues":4,"due_on":"2012-03-20T07:00:00Z","open_issues":0,"number":3,"id":95354} +{"title":"Version 0.5: full implementation","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-12T21:38:36Z","state":"closed","description":"","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/3","closed_issues":4,"due_on":"2012-03-20T07:00:00Z","open_issues":0,"number":3,"id":95354} https GET @@ -35,75 +35,75 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/labels/Bug +/repos/PyGithub/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4997'), ('content-length', '97'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"569c414d87e8ec43ec269a9e28bc2982"'), ('date', 'Fri, 01 Jun 2012 19:56:30 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"color":"e10c02","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug"} +{"color":"e10c02","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug"} https GET api.github.com None -/repos/jacquev6/PyGithub/issues?state=closed&milestone=3 +/repos/PyGithub/PyGithub/issues?state=closed&milestone=3 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4868'), ('content-length', '6944'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"5c472a7784b7cd933a35e2bb0ce5df38"'), ('date', 'Tue, 29 May 2012 18:39:43 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"updated_at":"2012-03-19T19:05:17Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/11","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/3","number":3,"title":"Version 0.5: full implementation","closed_issues":4,"due_on":"2012-03-20T07:00:00Z","open_issues":0,"created_at":"2012-03-12T21:38:36Z","state":"closed","description":"","id":95354},"number":11,"html_url":"https://github.com/jacquev6/PyGithub/issues/11","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Implement alternative inputs","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":"2012-03-19T19:05:17Z","created_at":"2012-03-13T06:08:10Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3624472,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-14T22:29:08Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/10","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/3","number":3,"title":"Version 0.5: full implementation","closed_issues":4,"due_on":"2012-03-20T07:00:00Z","open_issues":0,"created_at":"2012-03-12T21:38:36Z","state":"closed","description":"","id":95354},"number":10,"html_url":"https://github.com/jacquev6/PyGithub/issues/10","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Separate GithubObjects.py in several files","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring","color":"0b02e1"}],"closed_at":"2012-03-14T22:29:08Z","created_at":"2012-03-12T22:08:06Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3620132,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-19T20:56:01Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/8","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/3","number":3,"title":"Version 0.5: full implementation","closed_issues":4,"due_on":"2012-03-20T07:00:00Z","open_issues":0,"created_at":"2012-03-12T21:38:36Z","state":"closed","description":"","id":95354},"number":8,"html_url":"https://github.com/jacquev6/PyGithub/issues/8","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Publish version 0.5","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"closed_at":"2012-03-19T20:56:01Z","created_at":"2012-03-12T21:38:49Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3619658,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-19T19:05:17Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/5","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/3","number":3,"title":"Version 0.5: full implementation","closed_issues":4,"due_on":"2012-03-20T07:00:00Z","open_issues":0,"created_at":"2012-03-12T21:38:36Z","state":"closed","description":"","id":95354},"number":5,"html_url":"https://github.com/jacquev6/PyGithub/issues/5","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Implement full API","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":"2012-03-19T19:05:17Z","created_at":"2012-03-08T12:21:28Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3561926,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}}] +[{"updated_at":"2012-03-19T19:05:17Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/11","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/3","number":3,"title":"Version 0.5: full implementation","closed_issues":4,"due_on":"2012-03-20T07:00:00Z","open_issues":0,"created_at":"2012-03-12T21:38:36Z","state":"closed","description":"","id":95354},"number":11,"html_url":"https://github.com/PyGithub/PyGithub/issues/11","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Implement alternative inputs","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":"2012-03-19T19:05:17Z","created_at":"2012-03-13T06:08:10Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3624472,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-14T22:29:08Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/10","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/3","number":3,"title":"Version 0.5: full implementation","closed_issues":4,"due_on":"2012-03-20T07:00:00Z","open_issues":0,"created_at":"2012-03-12T21:38:36Z","state":"closed","description":"","id":95354},"number":10,"html_url":"https://github.com/PyGithub/PyGithub/issues/10","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Separate GithubObjects.py in several files","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Refactoring","name":"Refactoring","color":"0b02e1"}],"closed_at":"2012-03-14T22:29:08Z","created_at":"2012-03-12T22:08:06Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3620132,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-19T20:56:01Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/8","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/3","number":3,"title":"Version 0.5: full implementation","closed_issues":4,"due_on":"2012-03-20T07:00:00Z","open_issues":0,"created_at":"2012-03-12T21:38:36Z","state":"closed","description":"","id":95354},"number":8,"html_url":"https://github.com/PyGithub/PyGithub/issues/8","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Publish version 0.5","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"closed_at":"2012-03-19T20:56:01Z","created_at":"2012-03-12T21:38:49Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3619658,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-19T19:05:17Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/5","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/3","number":3,"title":"Version 0.5: full implementation","closed_issues":4,"due_on":"2012-03-20T07:00:00Z","open_issues":0,"created_at":"2012-03-12T21:38:36Z","state":"closed","description":"","id":95354},"number":5,"html_url":"https://github.com/PyGithub/PyGithub/issues/5","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Implement full API","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":"2012-03-19T19:05:17Z","created_at":"2012-03-08T12:21:28Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3561926,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues?labels=Bug +/repos/PyGithub/PyGithub/issues?labels=Bug {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4867'), ('content-length', '2426'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"dcab4e56d1acdb64e964e0f8669f5c19"'), ('date', 'Tue, 29 May 2012 18:39:44 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"updated_at":"2012-05-28T14:47:02Z","body":"As the title says, `get_issues()` seems to return a max of 250 items. \nIt can't be a pagination thing I think because a page is max. 100 items long as per http://developer.github.com/v3/#pagination\n\nRepro:\n\n\tfrom github import Github\n\tg = Github()\n\ttest=g.get_user('openframeworks').get_repo('openFrameworks').get_issues()\n\tlen(test)\n\nThis repo hast 940 closed and 340 open issues.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/33","comments":4,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":33,"html_url":"https://github.com/jacquev6/PyGithub/issues/33","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"get_issues() returns max. 250 items","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"}],"closed_at":null,"created_at":"2012-05-28T13:18:01Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327442},"id":4780155,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}}] +[{"updated_at":"2012-05-28T14:47:02Z","body":"As the title says, `get_issues()` seems to return a max of 250 items. \nIt can't be a pagination thing I think because a page is max. 100 items long as per http://developer.github.com/v3/#pagination\n\nRepro:\n\n\tfrom github import Github\n\tg = Github()\n\ttest=g.get_user('openframeworks').get_repo('openFrameworks').get_issues()\n\tlen(test)\n\nThis repo hast 940 closed and 340 open issues.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/33","comments":4,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":33,"html_url":"https://github.com/PyGithub/PyGithub/issues/33","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"get_issues() returns max. 250 items","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"}],"closed_at":null,"created_at":"2012-05-28T13:18:01Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327442},"id":4780155,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues?labels=Bug +/repos/PyGithub/PyGithub/issues?labels=Bug {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4867'), ('content-length', '2426'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"dcab4e56d1acdb64e964e0f8669f5c19"'), ('date', 'Tue, 29 May 2012 18:39:44 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"updated_at":"2012-05-28T14:47:02Z","body":"As the title says, `get_issues()` seems to return a max of 250 items. \nIt can't be a pagination thing I think because a page is max. 100 items long as per http://developer.github.com/v3/#pagination\n\nRepro:\n\n\tfrom github import Github\n\tg = Github()\n\ttest=g.get_user('openframeworks').get_repo('openFrameworks').get_issues()\n\tlen(test)\n\nThis repo hast 940 closed and 340 open issues.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/33","comments":4,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":33,"html_url":"https://github.com/jacquev6/PyGithub/issues/33","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"get_issues() returns max. 250 items","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"}],"closed_at":null,"created_at":"2012-05-28T13:18:01Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327442},"id":4780155,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}}] +[{"updated_at":"2012-05-28T14:47:02Z","body":"As the title says, `get_issues()` seems to return a max of 250 items. \nIt can't be a pagination thing I think because a page is max. 100 items long as per http://developer.github.com/v3/#pagination\n\nRepro:\n\n\tfrom github import Github\n\tg = Github()\n\ttest=g.get_user('openframeworks').get_repo('openFrameworks').get_issues()\n\tlen(test)\n\nThis repo hast 940 closed and 340 open issues.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/33","comments":4,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":33,"html_url":"https://github.com/PyGithub/PyGithub/issues/33","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"get_issues() returns max. 250 items","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"}],"closed_at":null,"created_at":"2012-05-28T13:18:01Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327442},"id":4780155,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues?sort=comments&assignee=jacquev6&direction=asc +/repos/PyGithub/PyGithub/issues?sort=comments&assignee=jacquev6&direction=asc {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4866'), ('content-length', '29746'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ca9d3b0d1f8313bd38c2b092f3dec187"'), ('date', 'Tue, 29 May 2012 18:39:45 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"updated_at":"2012-05-29T11:29:46Z","body":"https://api.github.com/hooks is not documented, but it is referred by http://developer.github.com/v3/repos/hooks/#create-a-hook","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/35","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":35,"html_url":"https://github.com/jacquev6/PyGithub/issues/35","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Implement https://api.github.com/hooks","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-05-29T11:29:46Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4793106,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-03-08T12:23:29Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/2","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":2,"html_url":"https://github.com/jacquev6/PyGithub/issues/2","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Use objects as parameters instead of shas, ids, etc.","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"closed_at":null,"created_at":"2012-03-06T16:46:49Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3527231,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-29T11:31:37Z","body":"All attributes and method parameters must have an identified and documented type","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":4,"html_url":"https://github.com/jacquev6/PyGithub/issues/4","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Review public interface homogeneity ","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"closed_at":null,"created_at":"2012-03-06T16:48:40Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3527266,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-29T11:41:39Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/12","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":12,"html_url":"https://github.com/jacquev6/PyGithub/issues/12","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Structure all attributes and make them either mandatory or optional","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"closed_at":null,"created_at":"2012-03-13T06:21:57Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3624556,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-29T11:39:15Z","body":"Cf http://developer.github.com/v3/pulls/comments/#alternative-input, but my first tests did not succeed.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/37","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":37,"html_url":"https://github.com/jacquev6/PyGithub/issues/37","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Understand and implement POST /repos/:user/:repo/pulls/:number/comments with in_reply_to","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-05-29T11:39:15Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4793216,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-29T11:24:24Z","body":"Check that there is no more `toto`s in code\nCheck that we have 100% test coverage","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/9","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":9,"html_url":"https://github.com/jacquev6/PyGithub/issues/9","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Publish version 1.0","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"closed_at":null,"created_at":"2012-03-12T21:58:05Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3619973,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-03-13T07:04:42Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/16","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":16,"html_url":"https://github.com/jacquev6/PyGithub/issues/16","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Add copyright and license notice","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"closed_at":null,"created_at":"2012-03-13T06:25:31Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3624595,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-07T10:49:06Z","body":"List known clients.\r\n\r\nFirst known client: http://pypi.python.org/pypi/tratihubis/ (cf #24)","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/25","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":25,"html_url":"https://github.com/jacquev6/PyGithub/issues/25","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"List project(s) using PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"closed_at":null,"created_at":"2012-05-07T10:49:06Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4452000,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-28T13:58:49Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/18","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":18,"html_url":"https://github.com/jacquev6/PyGithub/issues/18","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Take care of _identity","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring","color":"0b02e1"}],"closed_at":null,"created_at":"2012-03-14T06:49:31Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3643837,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-03-13T12:09:48Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/17","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":17,"html_url":"https://github.com/jacquev6/PyGithub/issues/17","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Document issue reporting","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"closed_at":null,"created_at":"2012-03-13T12:09:48Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3628022,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-28T13:58:35Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3","comments":1,"milestone":null,"number":3,"html_url":"https://github.com/jacquev6/PyGithub/issues/3","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Deduce mandatory parameters","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-03-06T16:47:49Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3527245,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-29T18:38:53Z","body":"For example, in `Organization.get_repos( type )`, `type` should be added to the url, as described in http://developer.github.com/v3/repos/#list-organization-repositories","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/36","comments":2,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":36,"html_url":"https://github.com/jacquev6/PyGithub/issues/36","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Re-implement url parameters","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-05-29T11:33:19Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4793162,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/24","comments":2,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":24,"html_url":"https://github.com/jacquev6/PyGithub/issues/24","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Improve error messages on broken requests","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"closed_at":null,"created_at":"2012-04-30T20:01:20Z","state":"open","user":{"url":"https://api.github.com/users/roskakori","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":328726},"id":4356743,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-28T14:47:02Z","body":"As the title says, `get_issues()` seems to return a max of 250 items. \nIt can't be a pagination thing I think because a page is max. 100 items long as per http://developer.github.com/v3/#pagination\n\nRepro:\n\n\tfrom github import Github\n\tg = Github()\n\ttest=g.get_user('openframeworks').get_repo('openFrameworks').get_issues()\n\tlen(test)\n\nThis repo hast 940 closed and 340 open issues.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/33","comments":4,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":33,"html_url":"https://github.com/jacquev6/PyGithub/issues/33","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"get_issues() returns max. 250 items","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"}],"closed_at":null,"created_at":"2012-05-28T13:18:01Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327442},"id":4780155,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}}] +[{"updated_at":"2012-05-29T11:29:46Z","body":"https://api.github.com/hooks is not documented, but it is referred by http://developer.github.com/v3/repos/hooks/#create-a-hook","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/35","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":35,"html_url":"https://github.com/PyGithub/PyGithub/issues/35","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Implement https://api.github.com/hooks","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-05-29T11:29:46Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4793106,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-03-08T12:23:29Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/2","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":2,"html_url":"https://github.com/PyGithub/PyGithub/issues/2","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Use objects as parameters instead of shas, ids, etc.","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"closed_at":null,"created_at":"2012-03-06T16:46:49Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3527231,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-29T11:31:37Z","body":"All attributes and method parameters must have an identified and documented type","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":4,"html_url":"https://github.com/PyGithub/PyGithub/issues/4","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Review public interface homogeneity ","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"closed_at":null,"created_at":"2012-03-06T16:48:40Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3527266,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-29T11:41:39Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/12","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":12,"html_url":"https://github.com/PyGithub/PyGithub/issues/12","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Structure all attributes and make them either mandatory or optional","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"closed_at":null,"created_at":"2012-03-13T06:21:57Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3624556,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-29T11:39:15Z","body":"Cf http://developer.github.com/v3/pulls/comments/#alternative-input, but my first tests did not succeed.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/37","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":37,"html_url":"https://github.com/PyGithub/PyGithub/issues/37","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Understand and implement POST /repos/:user/:repo/pulls/:number/comments with in_reply_to","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-05-29T11:39:15Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4793216,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-29T11:24:24Z","body":"Check that there is no more `toto`s in code\nCheck that we have 100% test coverage","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/9","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":9,"html_url":"https://github.com/PyGithub/PyGithub/issues/9","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Publish version 1.0","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"closed_at":null,"created_at":"2012-03-12T21:58:05Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3619973,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-03-13T07:04:42Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/16","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":16,"html_url":"https://github.com/PyGithub/PyGithub/issues/16","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Add copyright and license notice","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"closed_at":null,"created_at":"2012-03-13T06:25:31Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3624595,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-07T10:49:06Z","body":"List known clients.\r\n\r\nFirst known client: http://pypi.python.org/pypi/tratihubis/ (cf #24)","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/25","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":25,"html_url":"https://github.com/PyGithub/PyGithub/issues/25","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"List project(s) using PyGithub","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"closed_at":null,"created_at":"2012-05-07T10:49:06Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4452000,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-28T13:58:49Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/18","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":18,"html_url":"https://github.com/PyGithub/PyGithub/issues/18","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Take care of _identity","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Refactoring","name":"Refactoring","color":"0b02e1"}],"closed_at":null,"created_at":"2012-03-14T06:49:31Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3643837,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-03-13T12:09:48Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/17","comments":0,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":17,"html_url":"https://github.com/PyGithub/PyGithub/issues/17","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Document issue reporting","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"closed_at":null,"created_at":"2012-03-13T12:09:48Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3628022,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-28T13:58:35Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3","comments":1,"milestone":null,"number":3,"html_url":"https://github.com/PyGithub/PyGithub/issues/3","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Deduce mandatory parameters","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-03-06T16:47:49Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":3527245,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-29T18:38:53Z","body":"For example, in `Organization.get_repos( type )`, `type` should be added to the url, as described in http://developer.github.com/v3/repos/#list-organization-repositories","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/36","comments":2,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":36,"html_url":"https://github.com/PyGithub/PyGithub/issues/36","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Re-implement url parameters","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-05-29T11:33:19Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"id":4793162,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/24","comments":2,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":24,"html_url":"https://github.com/PyGithub/PyGithub/issues/24","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"Improve error messages on broken requests","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"closed_at":null,"created_at":"2012-04-30T20:01:20Z","state":"open","user":{"url":"https://api.github.com/users/roskakori","gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","login":"roskakori","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":328726},"id":4356743,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}},{"updated_at":"2012-05-28T14:47:02Z","body":"As the title says, `get_issues()` seems to return a max of 250 items. \nIt can't be a pagination thing I think because a page is max. 100 items long as per http://developer.github.com/v3/#pagination\n\nRepro:\n\n\tfrom github import Github\n\tg = Github()\n\ttest=g.get_user('openframeworks').get_repo('openFrameworks').get_issues()\n\tlen(test)\n\nThis repo hast 940 closed and 340 open issues.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/33","comments":4,"milestone":{"closed_issues":6,"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":33,"html_url":"https://github.com/PyGithub/PyGithub/issues/33","assignee":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"title":"get_issues() returns max. 250 items","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"}],"closed_at":null,"created_at":"2012-05-28T13:18:01Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327442},"id":4780155,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null}}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues?since=2012-05-28T23%3A00%3A00Z +/repos/PyGithub/PyGithub/issues?since=2012-05-28T23%3A00%3A00Z {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4865'), ('content-length', '12920'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d09251f5f9bcb3430efa333b42335a0b"'), ('date', 'Tue, 29 May 2012 18:39:46 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"updated_at":"2012-05-29T11:39:15Z","body":"Cf http://developer.github.com/v3/pulls/comments/#alternative-input, but my first tests did not succeed.","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/37","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"closed_issues":6,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":37,"html_url":"https://github.com/jacquev6/PyGithub/issues/37","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Understand and implement POST /repos/:user/:repo/pulls/:number/comments with in_reply_to","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-05-29T11:39:15Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4793216,"pull_request":{"html_url":null,"patch_url":null,"diff_url":null}},{"updated_at":"2012-05-29T18:38:53Z","body":"For example, in `Organization.get_repos( type )`, `type` should be added to the url, as described in http://developer.github.com/v3/repos/#list-organization-repositories","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/36","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"closed_issues":6,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":36,"html_url":"https://github.com/jacquev6/PyGithub/issues/36","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Re-implement url parameters","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-05-29T11:33:19Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4793162,"pull_request":{"html_url":null,"patch_url":null,"diff_url":null}},{"updated_at":"2012-05-29T11:29:46Z","body":"https://api.github.com/hooks is not documented, but it is referred by http://developer.github.com/v3/repos/hooks/#create-a-hook","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/35","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"closed_issues":6,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":35,"html_url":"https://github.com/jacquev6/PyGithub/issues/35","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Implement https://api.github.com/hooks","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-05-29T11:29:46Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4793106,"pull_request":{"html_url":null,"patch_url":null,"diff_url":null}},{"updated_at":"2012-05-29T11:41:39Z","body":"","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/12","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"closed_issues":6,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":12,"html_url":"https://github.com/jacquev6/PyGithub/issues/12","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Structure all attributes and make them either mandatory or optional","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"closed_at":null,"created_at":"2012-03-13T06:21:57Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3624556,"pull_request":{"html_url":null,"patch_url":null,"diff_url":null}},{"updated_at":"2012-05-29T11:24:24Z","body":"Check that there is no more `toto`s in code\nCheck that we have 100% test coverage","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/9","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"closed_issues":6,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":9,"html_url":"https://github.com/jacquev6/PyGithub/issues/9","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Publish version 1.0","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"closed_at":null,"created_at":"2012-03-12T21:58:05Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3619973,"pull_request":{"html_url":null,"patch_url":null,"diff_url":null}},{"updated_at":"2012-05-29T11:31:37Z","body":"All attributes and method parameters must have an identified and documented type","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"closed_issues":6,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":4,"html_url":"https://github.com/jacquev6/PyGithub/issues/4","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Review public interface homogeneity ","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"closed_at":null,"created_at":"2012-03-06T16:48:40Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3527266,"pull_request":{"html_url":null,"patch_url":null,"diff_url":null}}] +[{"updated_at":"2012-05-29T11:39:15Z","body":"Cf http://developer.github.com/v3/pulls/comments/#alternative-input, but my first tests did not succeed.","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/37","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"closed_issues":6,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":37,"html_url":"https://github.com/PyGithub/PyGithub/issues/37","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Understand and implement POST /repos/:user/:repo/pulls/:number/comments with in_reply_to","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-05-29T11:39:15Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4793216,"pull_request":{"html_url":null,"patch_url":null,"diff_url":null}},{"updated_at":"2012-05-29T18:38:53Z","body":"For example, in `Organization.get_repos( type )`, `type` should be added to the url, as described in http://developer.github.com/v3/repos/#list-organization-repositories","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/36","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"closed_issues":6,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":36,"html_url":"https://github.com/PyGithub/PyGithub/issues/36","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Re-implement url parameters","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-05-29T11:33:19Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4793162,"pull_request":{"html_url":null,"patch_url":null,"diff_url":null}},{"updated_at":"2012-05-29T11:29:46Z","body":"https://api.github.com/hooks is not documented, but it is referred by http://developer.github.com/v3/repos/hooks/#create-a-hook","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/35","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"closed_issues":6,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":35,"html_url":"https://github.com/PyGithub/PyGithub/issues/35","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Implement https://api.github.com/hooks","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-05-29T11:29:46Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4793106,"pull_request":{"html_url":null,"patch_url":null,"diff_url":null}},{"updated_at":"2012-05-29T11:41:39Z","body":"","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/12","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"closed_issues":6,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":12,"html_url":"https://github.com/PyGithub/PyGithub/issues/12","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Structure all attributes and make them either mandatory or optional","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"closed_at":null,"created_at":"2012-03-13T06:21:57Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3624556,"pull_request":{"html_url":null,"patch_url":null,"diff_url":null}},{"updated_at":"2012-05-29T11:24:24Z","body":"Check that there is no more `toto`s in code\nCheck that we have 100% test coverage","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/9","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"closed_issues":6,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":9,"html_url":"https://github.com/PyGithub/PyGithub/issues/9","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Publish version 1.0","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"}],"closed_at":null,"created_at":"2012-03-12T21:58:05Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3619973,"pull_request":{"html_url":null,"patch_url":null,"diff_url":null}},{"updated_at":"2012-05-29T11:31:37Z","body":"All attributes and method parameters must have an identified and documented type","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/4","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"closed_issues":6,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":4,"html_url":"https://github.com/PyGithub/PyGithub/issues/4","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Review public interface homogeneity ","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"}],"closed_at":null,"created_at":"2012-03-06T16:48:40Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":3527266,"pull_request":{"html_url":null,"patch_url":null,"diff_url":null}}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues?mentioned=Lyloa +/repos/PyGithub/PyGithub/issues?mentioned=Lyloa {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4864'), ('content-length', '2210'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"bf7c5823992799efca0369752072ec8e"'), ('date', 'Tue, 29 May 2012 18:39:46 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"updated_at":"2012-05-29T18:38:53Z","body":"For example, in `Organization.get_repos( type )`, `type` should be added to the url, as described in http://developer.github.com/v3/repos/#list-organization-repositories","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/36","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","closed_issues":6,"number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":36,"html_url":"https://github.com/jacquev6/PyGithub/issues/36","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Re-implement url parameters","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-05-29T11:33:19Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4793162,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}}] +[{"updated_at":"2012-05-29T18:38:53Z","body":"For example, in `Organization.get_repos( type )`, `type` should be added to the url, as described in http://developer.github.com/v3/repos/#list-organization-repositories","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/36","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","closed_issues":6,"number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547},"number":36,"html_url":"https://github.com/PyGithub/PyGithub/issues/36","assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"title":"Re-implement url parameters","labels":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"}],"closed_at":null,"created_at":"2012-05-29T11:33:19Z","state":"open","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4793162,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}}] diff --git a/tests/ReplayData/Repository.testGetIssuesWithWildcards.txt b/tests/ReplayData/Repository.testGetIssuesWithWildcards.txt index 68da667927..63ade766cc 100644 --- a/tests/ReplayData/Repository.testGetIssuesWithWildcards.txt +++ b/tests/ReplayData/Repository.testGetIssuesWithWildcards.txt @@ -2,42 +2,42 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues?milestone=%2A +/repos/PyGithub/PyGithub/issues?milestone=%2A {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '16480'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"28fffaa40fef9cdb999d5b217e212f0a"'), ('date', 'Sat, 02 Jun 2012 06:15:11 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"title":"Use type datetime.datetime for appropriate attributes/arguments","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-05-30T06:16:47Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/41","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-06-01T20:25:31Z","body":"","comments":0,"number":41,"id":4809786,"html_url":"https://github.com/jacquev6/PyGithub/issues/41","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Understand and implement POST /repos/:user/:repo/pulls/:number/comments with in_reply_to","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"e102d8","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities"}],"created_at":"2012-05-29T11:39:15Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/37","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-29T11:39:15Z","body":"Cf http://developer.github.com/v3/pulls/comments/#alternative-input, but my first tests did not succeed.","comments":0,"number":37,"id":4793216,"html_url":"https://github.com/jacquev6/PyGithub/issues/37","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Check that there is no more `toto`s in code","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-05-29T07:13:42Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/34","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-31T09:53:27Z","body":"","comments":0,"number":34,"id":4789817,"html_url":"https://github.com/jacquev6/PyGithub/issues/34","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"List project(s) using PyGithub","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-05-07T10:49:06Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/25","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-07T10:49:06Z","body":"List known clients.\r\n\r\nFirst known client: http://pypi.python.org/pypi/tratihubis/ (cf #24)","comments":0,"number":25,"id":4452000,"html_url":"https://github.com/jacquev6/PyGithub/issues/25","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Document issue reporting","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-03-13T12:09:48Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/17","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-03-13T12:09:48Z","body":"","comments":0,"number":17,"id":3628022,"html_url":"https://github.com/jacquev6/PyGithub/issues/17","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Add copyright and license notice","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-03-13T06:25:31Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/16","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-03-13T07:04:42Z","body":"","comments":0,"number":16,"id":3624595,"html_url":"https://github.com/jacquev6/PyGithub/issues/16","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Publish version 1.0","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-03-12T21:58:05Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/9","assignee":null,"closed_at":null,"updated_at":"2012-06-02T06:14:47Z","body":"Check that there is no more `toto`s in code\nCheck that we have 100% test coverage","comments":0,"number":9,"id":3619973,"html_url":"https://github.com/jacquev6/PyGithub/issues/9","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Use objects instead of string for shas, ids, etc. arguments","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-03-06T16:46:49Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/2","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-06-01T20:19:54Z","body":"","comments":0,"number":2,"id":3527231,"html_url":"https://github.com/jacquev6/PyGithub/issues/2","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}}] +[{"title":"Use type datetime.datetime for appropriate attributes/arguments","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-05-30T06:16:47Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/41","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-06-01T20:25:31Z","body":"","comments":0,"number":41,"id":4809786,"html_url":"https://github.com/PyGithub/PyGithub/issues/41","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Understand and implement POST /repos/:user/:repo/pulls/:number/comments with in_reply_to","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"e102d8","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities"}],"created_at":"2012-05-29T11:39:15Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/37","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-29T11:39:15Z","body":"Cf http://developer.github.com/v3/pulls/comments/#alternative-input, but my first tests did not succeed.","comments":0,"number":37,"id":4793216,"html_url":"https://github.com/PyGithub/PyGithub/issues/37","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Check that there is no more `toto`s in code","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-05-29T07:13:42Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/34","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-31T09:53:27Z","body":"","comments":0,"number":34,"id":4789817,"html_url":"https://github.com/PyGithub/PyGithub/issues/34","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"List project(s) using PyGithub","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-05-07T10:49:06Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/25","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-07T10:49:06Z","body":"List known clients.\r\n\r\nFirst known client: http://pypi.python.org/pypi/tratihubis/ (cf #24)","comments":0,"number":25,"id":4452000,"html_url":"https://github.com/PyGithub/PyGithub/issues/25","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Document issue reporting","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-03-13T12:09:48Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/17","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-03-13T12:09:48Z","body":"","comments":0,"number":17,"id":3628022,"html_url":"https://github.com/PyGithub/PyGithub/issues/17","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Add copyright and license notice","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-03-13T06:25:31Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/16","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-03-13T07:04:42Z","body":"","comments":0,"number":16,"id":3624595,"html_url":"https://github.com/PyGithub/PyGithub/issues/16","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Publish version 1.0","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-03-12T21:58:05Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/9","assignee":null,"closed_at":null,"updated_at":"2012-06-02T06:14:47Z","body":"Check that there is no more `toto`s in code\nCheck that we have 100% test coverage","comments":0,"number":9,"id":3619973,"html_url":"https://github.com/PyGithub/PyGithub/issues/9","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Use objects instead of string for shas, ids, etc. arguments","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-03-06T16:46:49Z","state":"open","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/2","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-06-01T20:19:54Z","body":"","comments":0,"number":2,"id":3527231,"html_url":"https://github.com/PyGithub/PyGithub/issues/2","milestone":{"title":"Version 1.0: coherent public interface","creator":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues?milestone=none +/repos/PyGithub/PyGithub/issues?milestone=none {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('content-length', '7399'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"27992c230165868561de1a0461b6fb75"'), ('date', 'Sat, 02 Jun 2012 06:15:12 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"title":"Make all attributes either optional or mandatory","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-05-30T20:00:36Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/43","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T20:00:36Z","body":"","comments":0,"number":43,"id":4823331,"html_url":"https://github.com/jacquev6/PyGithub/issues/43","milestone":null},{"title":"Create enumerations for string attributes/arguments with a finite set of values","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-05-30T06:19:02Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/42","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T20:15:40Z","body":"","comments":0,"number":42,"id":4809803,"html_url":"https://github.com/jacquev6/PyGithub/issues/42","milestone":null},{"title":"Generate a docs.python.org-like documentation","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-05-30T06:15:03Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/40","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T06:15:03Z","body":"It would be good to have a doc that is more like other documentations of Python libraries.","comments":0,"number":40,"id":4809778,"html_url":"https://github.com/jacquev6/PyGithub/issues/40","milestone":null},{"title":"Implement https://api.github.com/hooks","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"labels":[{"color":"e102d8","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities"}],"created_at":"2012-05-29T11:29:46Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/35","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T19:59:52Z","body":"https://api.github.com/hooks is not documented, but it is referred by http://developer.github.com/v3/repos/hooks/#create-a-hook","comments":0,"number":35,"id":4793106,"html_url":"https://github.com/jacquev6/PyGithub/issues/35","milestone":null},{"title":"Remove _identity","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"labels":[{"color":"0b02e1","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring"}],"created_at":"2012-03-14T06:49:31Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/18","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T20:18:56Z","body":"`_identity` exists only in `Label`, `NamedUser` and `Repository`, and should be replaced by proper attribute (`urlquote( self.name)`, `self.login` and `self.full_name`) in methods like `AuthenticatedUser.add_to_following`","comments":0,"number":18,"id":3643837,"html_url":"https://github.com/jacquev6/PyGithub/issues/18","milestone":null},{"title":"Deduce mandatory parameters","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"labels":[{"color":"e102d8","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities"}],"created_at":"2012-03-06T16:47:49Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-28T13:58:35Z","body":"","comments":1,"number":3,"id":3527245,"html_url":"https://github.com/jacquev6/PyGithub/issues/3","milestone":null}] +[{"title":"Make all attributes either optional or mandatory","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-05-30T20:00:36Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/43","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T20:00:36Z","body":"","comments":0,"number":43,"id":4823331,"html_url":"https://github.com/PyGithub/PyGithub/issues/43","milestone":null},{"title":"Create enumerations for string attributes/arguments with a finite set of values","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-05-30T06:19:02Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/42","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T20:15:40Z","body":"","comments":0,"number":42,"id":4809803,"html_url":"https://github.com/PyGithub/PyGithub/issues/42","milestone":null},{"title":"Generate a docs.python.org-like documentation","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-05-30T06:15:03Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/40","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T06:15:03Z","body":"It would be good to have a doc that is more like other documentations of Python libraries.","comments":0,"number":40,"id":4809778,"html_url":"https://github.com/PyGithub/PyGithub/issues/40","milestone":null},{"title":"Implement https://api.github.com/hooks","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"labels":[{"color":"e102d8","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities"}],"created_at":"2012-05-29T11:29:46Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/35","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T19:59:52Z","body":"https://api.github.com/hooks is not documented, but it is referred by http://developer.github.com/v3/repos/hooks/#create-a-hook","comments":0,"number":35,"id":4793106,"html_url":"https://github.com/PyGithub/PyGithub/issues/35","milestone":null},{"title":"Remove _identity","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"labels":[{"color":"0b02e1","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Refactoring","name":"Refactoring"}],"created_at":"2012-03-14T06:49:31Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/18","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T20:18:56Z","body":"`_identity` exists only in `Label`, `NamedUser` and `Repository`, and should be replaced by proper attribute (`urlquote( self.name)`, `self.login` and `self.full_name`) in methods like `AuthenticatedUser.add_to_following`","comments":0,"number":18,"id":3643837,"html_url":"https://github.com/PyGithub/PyGithub/issues/18","milestone":null},{"title":"Deduce mandatory parameters","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"labels":[{"color":"e102d8","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities"}],"created_at":"2012-03-06T16:47:49Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-28T13:58:35Z","body":"","comments":1,"number":3,"id":3527245,"html_url":"https://github.com/PyGithub/PyGithub/issues/3","milestone":null}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues?assignee=%2A +/repos/PyGithub/PyGithub/issues?assignee=%2A {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4968'), ('content-length', '22053'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"19578e844395dac67fcdaf015d1fbce1"'), ('date', 'Sat, 02 Jun 2012 06:15:13 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"title":"Make all attributes either optional or mandatory","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-05-30T20:00:36Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/43","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T20:00:36Z","body":"","comments":0,"number":43,"id":4823331,"html_url":"https://github.com/jacquev6/PyGithub/issues/43","milestone":null},{"title":"Create enumerations for string attributes/arguments with a finite set of values","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-05-30T06:19:02Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/42","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T20:15:40Z","body":"","comments":0,"number":42,"id":4809803,"html_url":"https://github.com/jacquev6/PyGithub/issues/42","milestone":null},{"title":"Use type datetime.datetime for appropriate attributes/arguments","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-05-30T06:16:47Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/41","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-06-01T20:25:31Z","body":"","comments":0,"number":41,"id":4809786,"html_url":"https://github.com/jacquev6/PyGithub/issues/41","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Generate a docs.python.org-like documentation","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-05-30T06:15:03Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/40","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T06:15:03Z","body":"It would be good to have a doc that is more like other documentations of Python libraries.","comments":0,"number":40,"id":4809778,"html_url":"https://github.com/jacquev6/PyGithub/issues/40","milestone":null},{"title":"Understand and implement POST /repos/:user/:repo/pulls/:number/comments with in_reply_to","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"e102d8","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities"}],"created_at":"2012-05-29T11:39:15Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/37","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-29T11:39:15Z","body":"Cf http://developer.github.com/v3/pulls/comments/#alternative-input, but my first tests did not succeed.","comments":0,"number":37,"id":4793216,"html_url":"https://github.com/jacquev6/PyGithub/issues/37","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Implement https://api.github.com/hooks","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"e102d8","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities"}],"created_at":"2012-05-29T11:29:46Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/35","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T19:59:52Z","body":"https://api.github.com/hooks is not documented, but it is referred by http://developer.github.com/v3/repos/hooks/#create-a-hook","comments":0,"number":35,"id":4793106,"html_url":"https://github.com/jacquev6/PyGithub/issues/35","milestone":null},{"title":"Check that there is no more `toto`s in code","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-05-29T07:13:42Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/34","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-31T09:53:27Z","body":"","comments":0,"number":34,"id":4789817,"html_url":"https://github.com/jacquev6/PyGithub/issues/34","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"List project(s) using PyGithub","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-05-07T10:49:06Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/25","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-07T10:49:06Z","body":"List known clients.\r\n\r\nFirst known client: http://pypi.python.org/pypi/tratihubis/ (cf #24)","comments":0,"number":25,"id":4452000,"html_url":"https://github.com/jacquev6/PyGithub/issues/25","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Remove _identity","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"0b02e1","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring"}],"created_at":"2012-03-14T06:49:31Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/18","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T20:18:56Z","body":"`_identity` exists only in `Label`, `NamedUser` and `Repository`, and should be replaced by proper attribute (`urlquote( self.name)`, `self.login` and `self.full_name`) in methods like `AuthenticatedUser.add_to_following`","comments":0,"number":18,"id":3643837,"html_url":"https://github.com/jacquev6/PyGithub/issues/18","milestone":null},{"title":"Document issue reporting","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-03-13T12:09:48Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/17","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-03-13T12:09:48Z","body":"","comments":0,"number":17,"id":3628022,"html_url":"https://github.com/jacquev6/PyGithub/issues/17","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Add copyright and license notice","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-03-13T06:25:31Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/16","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-03-13T07:04:42Z","body":"","comments":0,"number":16,"id":3624595,"html_url":"https://github.com/jacquev6/PyGithub/issues/16","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Deduce mandatory parameters","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"e102d8","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities"}],"created_at":"2012-03-06T16:47:49Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-28T13:58:35Z","body":"","comments":1,"number":3,"id":3527245,"html_url":"https://github.com/jacquev6/PyGithub/issues/3","milestone":null},{"title":"Use objects instead of string for shas, ids, etc. arguments","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-03-06T16:46:49Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/2","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-06-01T20:19:54Z","body":"","comments":0,"number":2,"id":3527231,"html_url":"https://github.com/jacquev6/PyGithub/issues/2","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}}] +[{"title":"Make all attributes either optional or mandatory","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-05-30T20:00:36Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/43","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T20:00:36Z","body":"","comments":0,"number":43,"id":4823331,"html_url":"https://github.com/PyGithub/PyGithub/issues/43","milestone":null},{"title":"Create enumerations for string attributes/arguments with a finite set of values","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-05-30T06:19:02Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/42","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T20:15:40Z","body":"","comments":0,"number":42,"id":4809803,"html_url":"https://github.com/PyGithub/PyGithub/issues/42","milestone":null},{"title":"Use type datetime.datetime for appropriate attributes/arguments","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-05-30T06:16:47Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/41","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-06-01T20:25:31Z","body":"","comments":0,"number":41,"id":4809786,"html_url":"https://github.com/PyGithub/PyGithub/issues/41","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Generate a docs.python.org-like documentation","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-05-30T06:15:03Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/40","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T06:15:03Z","body":"It would be good to have a doc that is more like other documentations of Python libraries.","comments":0,"number":40,"id":4809778,"html_url":"https://github.com/PyGithub/PyGithub/issues/40","milestone":null},{"title":"Understand and implement POST /repos/:user/:repo/pulls/:number/comments with in_reply_to","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"e102d8","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities"}],"created_at":"2012-05-29T11:39:15Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/37","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-29T11:39:15Z","body":"Cf http://developer.github.com/v3/pulls/comments/#alternative-input, but my first tests did not succeed.","comments":0,"number":37,"id":4793216,"html_url":"https://github.com/PyGithub/PyGithub/issues/37","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Implement https://api.github.com/hooks","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"e102d8","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities"}],"created_at":"2012-05-29T11:29:46Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/35","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T19:59:52Z","body":"https://api.github.com/hooks is not documented, but it is referred by http://developer.github.com/v3/repos/hooks/#create-a-hook","comments":0,"number":35,"id":4793106,"html_url":"https://github.com/PyGithub/PyGithub/issues/35","milestone":null},{"title":"Check that there is no more `toto`s in code","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-05-29T07:13:42Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/34","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-31T09:53:27Z","body":"","comments":0,"number":34,"id":4789817,"html_url":"https://github.com/PyGithub/PyGithub/issues/34","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"List project(s) using PyGithub","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-05-07T10:49:06Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/25","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-07T10:49:06Z","body":"List known clients.\r\n\r\nFirst known client: http://pypi.python.org/pypi/tratihubis/ (cf #24)","comments":0,"number":25,"id":4452000,"html_url":"https://github.com/PyGithub/PyGithub/issues/25","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Remove _identity","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"0b02e1","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Refactoring","name":"Refactoring"}],"created_at":"2012-03-14T06:49:31Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/18","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-30T20:18:56Z","body":"`_identity` exists only in `Label`, `NamedUser` and `Repository`, and should be replaced by proper attribute (`urlquote( self.name)`, `self.login` and `self.full_name`) in methods like `AuthenticatedUser.add_to_following`","comments":0,"number":18,"id":3643837,"html_url":"https://github.com/PyGithub/PyGithub/issues/18","milestone":null},{"title":"Document issue reporting","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-03-13T12:09:48Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/17","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-03-13T12:09:48Z","body":"","comments":0,"number":17,"id":3628022,"html_url":"https://github.com/PyGithub/PyGithub/issues/17","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Add copyright and license notice","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-03-13T06:25:31Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/16","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-03-13T07:04:42Z","body":"","comments":0,"number":16,"id":3624595,"html_url":"https://github.com/PyGithub/PyGithub/issues/16","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}},{"title":"Deduce mandatory parameters","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"e102d8","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities"}],"created_at":"2012-03-06T16:47:49Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/3","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-05-28T13:58:35Z","body":"","comments":1,"number":3,"id":3527245,"html_url":"https://github.com/PyGithub/PyGithub/issues/3","milestone":null},{"title":"Use objects instead of string for shas, ids, etc. arguments","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"labels":[{"color":"d7e102","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface"}],"created_at":"2012-03-06T16:46:49Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/2","assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_at":null,"updated_at":"2012-06-01T20:19:54Z","body":"","comments":0,"number":2,"id":3527231,"html_url":"https://github.com/PyGithub/PyGithub/issues/2","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":13,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues?assignee=none +/repos/PyGithub/PyGithub/issues?assignee=none {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4967'), ('content-length', '1826'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c087198529310acda2e50d723e071ec8"'), ('date', 'Sat, 02 Jun 2012 06:15:14 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"title":"Publish version 1.0","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-03-12T21:58:05Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/9","assignee":null,"closed_at":null,"updated_at":"2012-06-02T06:14:47Z","body":"Check that there is no more `toto`s in code\nCheck that we have 100% test coverage","comments":0,"number":9,"id":3619973,"html_url":"https://github.com/jacquev6/PyGithub/issues/9","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}}] +[{"title":"Publish version 1.0","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"labels":[{"color":"444444","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management"}],"created_at":"2012-03-12T21:58:05Z","state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/issues/9","assignee":null,"closed_at":null,"updated_at":"2012-06-02T06:14:47Z","body":"Check that there is no more `toto`s in code\nCheck that we have 100% test coverage","comments":0,"number":9,"id":3619973,"html_url":"https://github.com/PyGithub/PyGithub/issues/9","milestone":{"title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","closed_issues":13,"due_on":"2012-06-04T07:00:00Z","open_issues":8,"number":2,"id":93547}}] diff --git a/tests/ReplayData/Repository.testGetKeys.txt b/tests/ReplayData/Repository.testGetKeys.txt index 18d95949c1..8b50b7b3ad 100644 --- a/tests/ReplayData/Repository.testGetKeys.txt +++ b/tests/ReplayData/Repository.testGetKeys.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/keys +/repos/PyGithub/PyGithub/keys {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testGetLabel.txt b/tests/ReplayData/Repository.testGetLabel.txt index af48e8dfd0..0d2cfb2a16 100644 --- a/tests/ReplayData/Repository.testGetLabel.txt +++ b/tests/ReplayData/Repository.testGetLabel.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/labels/Label%20with%20silly%20name%20%25%20%2A%20%2B%20created%20by%20PyGithub +/repos/PyGithub/PyGithub/labels/Label%20with%20silly%20name%20%25%20%2A%20%2B%20created%20by%20PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4983'), ('content-length', '191'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"92b623552b1bac3f019d03c920305acd"'), ('date', 'Sat, 19 May 2012 10:12:54 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+silly+name+%25+%2A+%2B+created+by+PyGithub","name":"Label with silly name % * + created by PyGithub","color":"00ff00"} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Label+with+silly+name+%25+%2A+%2B+created+by+PyGithub","name":"Label with silly name % * + created by PyGithub","color":"00ff00"} diff --git a/tests/ReplayData/Repository.testGetLabels.txt b/tests/ReplayData/Repository.testGetLabels.txt index b0f6e1fc69..65aaa610a1 100644 --- a/tests/ReplayData/Repository.testGetLabels.txt +++ b/tests/ReplayData/Repository.testGetLabels.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/labels +/repos/PyGithub/PyGithub/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4944'), ('content-length', '695'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"a35ac34bf5089a20b90cd0bb34001fa3"'), ('date', 'Sun, 27 May 2012 07:05:48 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring","color":"0b02e1"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Refactoring","name":"Refactoring","color":"0b02e1"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Public+interface","name":"Public interface","color":"d7e102"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","name":"Question","color":"02e10c"}] diff --git a/tests/ReplayData/Repository.testGetLanguages.txt b/tests/ReplayData/Repository.testGetLanguages.txt index 1f79481234..66a7a8104e 100644 --- a/tests/ReplayData/Repository.testGetLanguages.txt +++ b/tests/ReplayData/Repository.testGetLanguages.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/languages +/repos/PyGithub/PyGithub/languages {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testGetLicense.txt b/tests/ReplayData/Repository.testGetLicense.txt index d6e4dd1445..f38f8604bb 100644 --- a/tests/ReplayData/Repository.testGetLicense.txt +++ b/tests/ReplayData/Repository.testGetLicense.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/license +/repos/PyGithub/PyGithub/license {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testGetMilestones.txt b/tests/ReplayData/Repository.testGetMilestones.txt index 45577d8ec7..6bae732317 100644 --- a/tests/ReplayData/Repository.testGetMilestones.txt +++ b/tests/ReplayData/Repository.testGetMilestones.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/milestones +/repos/PyGithub/PyGithub/milestones {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4938'), ('content-length', '901'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ed668d7695f9e5259aa7d9660a875e03"'), ('date', 'Sun, 27 May 2012 07:07:35 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547,"closed_issues":2}] +[{"creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","number":2,"title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":10,"created_at":"2012-03-08T12:22:28Z","state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","id":93547,"closed_issues":2}] diff --git a/tests/ReplayData/Repository.testGetMilestonesWithArguments.txt b/tests/ReplayData/Repository.testGetMilestonesWithArguments.txt index 55f8ce9eef..9cbb6f8b82 100644 --- a/tests/ReplayData/Repository.testGetMilestonesWithArguments.txt +++ b/tests/ReplayData/Repository.testGetMilestonesWithArguments.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/milestones?sort=due_date&state=closed&direction=asc +/repos/PyGithub/PyGithub/milestones?sort=due_date&state=closed&direction=asc {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('content-length', '2252'), ('x-ratelimit-remaining', '4858'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"5fba22d60628595b9e34df100c6ef545"'), ('date', 'Tue, 29 May 2012 18:41:47 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","due_on":"2012-03-13T07:00:00Z","open_issues":0,"title":"Version 0.4","created_at":"2012-03-08T12:22:10Z","creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"description":"","number":1,"id":93546,"state":"closed","closed_issues":3},{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/3","due_on":"2012-03-20T07:00:00Z","open_issues":0,"title":"Version 0.5: full implementation","created_at":"2012-03-12T21:38:36Z","creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"description":"","number":3,"id":95354,"state":"closed","closed_issues":4},{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/4","due_on":"2012-04-19T07:00:00Z","open_issues":0,"title":"Version 0.6","created_at":"2012-04-17T05:52:03Z","creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"description":"","number":4,"id":108652,"state":"closed","closed_issues":2},{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","due_on":"2012-05-26T07:00:00Z","open_issues":0,"title":"Version 0.7","created_at":"2012-05-25T11:47:06Z","creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"description":"","number":5,"id":124045,"state":"closed","closed_issues":2}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/1","due_on":"2012-03-13T07:00:00Z","open_issues":0,"title":"Version 0.4","created_at":"2012-03-08T12:22:10Z","creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"description":"","number":1,"id":93546,"state":"closed","closed_issues":3},{"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/3","due_on":"2012-03-20T07:00:00Z","open_issues":0,"title":"Version 0.5: full implementation","created_at":"2012-03-12T21:38:36Z","creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"description":"","number":3,"id":95354,"state":"closed","closed_issues":4},{"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/4","due_on":"2012-04-19T07:00:00Z","open_issues":0,"title":"Version 0.6","created_at":"2012-04-17T05:52:03Z","creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"description":"","number":4,"id":108652,"state":"closed","closed_issues":2},{"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/5","due_on":"2012-05-26T07:00:00Z","open_issues":0,"title":"Version 0.7","created_at":"2012-05-25T11:47:06Z","creator":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"description":"","number":5,"id":124045,"state":"closed","closed_issues":2}] diff --git a/tests/ReplayData/Repository.testGetNetworkEvents.txt b/tests/ReplayData/Repository.testGetNetworkEvents.txt index bced21af75..aa58f734f7 100644 --- a/tests/ReplayData/Repository.testGetNetworkEvents.txt +++ b/tests/ReplayData/Repository.testGetNetworkEvents.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/networks/jacquev6/PyGithub/events +/networks/PyGithub/PyGithub/events {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4929'), ('content-length', '44412'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"1e10e6d8994190bd053880e299e9b0b4"'), ('date', 'Sun, 27 May 2012 07:08:40 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"type":"DownloadEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"download":{"name":"Hook.py","size":1024,"created_at":"2012-05-27T06:54:54Z","content_type":".py","url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/245143","download_count":0,"id":245143,"description":"","html_url":"https://github.com/downloads/jacquev6/PyGithub/Hook.py"}},"id":"1556239111","created_at":"2012-05-27T06:54:55Z"},{"type":"DownloadEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"download":{"name":"htmlcov.zip","size":258048,"created_at":"2012-05-27T06:53:47Z","content_type":".zip","download_count":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/245142","id":245142,"description":"","html_url":"https://github.com/downloads/jacquev6/PyGithub/htmlcov.zip"}},"id":"1556239049","created_at":"2012-05-27T06:53:48Z"},{"type":"PushEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"head":"956279094a7383b6a8f00c93770ed02ca711f8e5","size":4,"push_id":80734053,"ref":"refs/heads/topic/RewriteWithGeneratedCode","commits":[{"sha":"8cb3e63e80f3ab741ca580eed791a85fb4e1b968","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8cb3e63e80f3ab741ca580eed791a85fb4e1b968","distinct":true,"message":"Test Team"},{"sha":"e7fe18b7dd3daa03a6ebb7f83a4f100c0f68e96b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e7fe18b7dd3daa03a6ebb7f83a4f100c0f68e96b","distinct":true,"message":"Test Organization members"},{"sha":"4169010f17cf66a9f1e43e476115485ed7cda90c","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4169010f17cf66a9f1e43e476115485ed7cda90c","distinct":true,"message":"Improve coverage of Organization"},{"sha":"956279094a7383b6a8f00c93770ed02ca711f8e5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/956279094a7383b6a8f00c93770ed02ca711f8e5","distinct":true,"message":"Test Repository.create_git_*"}]},"id":"1556235497","created_at":"2012-05-27T06:00:30Z"},{"type":"IssuesEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"opened","issue":{"number":30,"created_at":"2012-05-27T05:40:15Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Body created by PyGithub","comments":0,"title":"Issue also created by PyGithub","updated_at":"2012-05-27T05:40:15Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/30","id":4769659,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":2,"due_on":"2012-06-04T07:00:00Z","created_at":"2012-03-08T12:22:28Z","title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","id":93547,"open_issues":10,"closed_issues":2,"description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","state":"open"},"closed_at":null,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/issues/30","labels":[{"name":"Question","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","color":"02e10c"}],"state":"open"}},"id":"1556234207","created_at":"2012-05-27T05:40:15Z"},{"type":"MemberEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"added","member":{"gravatar_id":"1517ed584458ccf83e03f5d77d9699d7","avatar_url":"https://secure.gravatar.com/avatar/1517ed584458ccf83e03f5d77d9699d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/Lyloa","id":1131432,"login":"Lyloa"}},"id":"1556233923","created_at":"2012-05-27T05:34:29Z"},{"type":"MemberEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"added","member":{"gravatar_id":"1517ed584458ccf83e03f5d77d9699d7","avatar_url":"https://secure.gravatar.com/avatar/1517ed584458ccf83e03f5d77d9699d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/Lyloa","id":1131432,"login":"Lyloa"}},"id":"1556233882","created_at":"2012-05-27T05:33:44Z"},{"type":"ForkEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1424031,"url":"https://api.github.com/users/BeaverSoftware","login":"BeaverSoftware"},"payload":{"forkee":{"name":"PyGithub","size":348,"has_wiki":false,"created_at":"2012-05-27T05:23:17Z","clone_url":"https://github.com/BeaverSoftware/PyGithub.git","public":true,"watchers":1,"private":false,"updated_at":"2012-05-27T05:23:18Z","git_url":"git://github.com/BeaverSoftware/PyGithub.git","fork":true,"language":"Python","url":"https://api.github.com/repos/BeaverSoftware/PyGithub","ssh_url":"git@github.com:BeaverSoftware/PyGithub.git","id":4460027,"svn_url":"https://github.com/BeaverSoftware/PyGithub","pushed_at":"2012-05-26T20:54:13Z","has_downloads":true,"mirror_url":null,"open_issues":0,"full_name":"BeaverSoftware/PyGithub","has_issues":false,"homepage":"http://vincent-jacques.net/PyGithub","description":"Python library implementing the full Github API v3","forks":0,"html_url":"https://github.com/BeaverSoftware/PyGithub","owner":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware"}}},"id":"1556233222","created_at":"2012-05-27T05:23:18Z"},{"type":"PushEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"head":"a39af6a0aae16a923f7be48a70fe1095b17280d2","size":2,"push_id":80709334,"commits":[{"sha":"60fb7a8ef56f46d3fe9ce6d008e6b58238a71d29","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/60fb7a8ef56f46d3fe9ce6d008e6b58238a71d29","distinct":true,"message":"Heavy refactoring of integration tests"},{"sha":"a39af6a0aae16a923f7be48a70fe1095b17280d2","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a39af6a0aae16a923f7be48a70fe1095b17280d2","distinct":true,"message":"Improve test coverage"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"id":"1556182773","created_at":"2012-05-26T20:54:15Z"},{"type":"WatchEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"1689abbd998128dbb3658698b429b022","avatar_url":"https://secure.gravatar.com/avatar/1689abbd998128dbb3658698b429b022?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":22974,"url":"https://api.github.com/users/michaelpedersen","login":"michaelpedersen"},"payload":{"action":"started"},"id":"1556168218","created_at":"2012-05-26T18:33:42Z"},{"type":"IssuesEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"closed","issue":{"number":28,"created_at":"2012-05-19T10:38:23Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Body edited by PyGithub","title":"Issue created by PyGithub","comments":0,"updated_at":"2012-05-26T14:59:33Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","id":4653757,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":1,"created_at":"2012-03-08T12:22:10Z","due_on":"2012-03-13T07:00:00Z","title":"Version 0.4","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","id":93546,"open_issues":0,"closed_issues":3,"description":"","state":"closed"},"closed_at":"2012-05-26T14:59:33Z","html_url":"https://github.com/jacquev6/PyGithub/issues/28","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"labels":[{"name":"Bug","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","color":"e10c02"},{"name":"Project management","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","color":"444444"},{"name":"Question","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","color":"02e10c"}],"state":"closed"}},"id":"1556145515","created_at":"2012-05-26T14:59:34Z"},{"type":"PushEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"head":"36574ded89738a81f47f415017ba880d0cad839b","size":5,"push_id":80677260,"commits":[{"sha":"95cd6c507bdfbf3700a31bafbe26f72a1d684be1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/95cd6c507bdfbf3700a31bafbe26f72a1d684be1","distinct":true,"message":"Use setUp in test for NamedUser"},{"sha":"386bcde55e1744fa888b034d34ad9f167595d2cf","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/386bcde55e1744fa888b034d34ad9f167595d2cf","distinct":true,"message":"Refactor tests of NamedUser"},{"sha":"1b3ca70ebe8724ab7d0d6ba9c8b20853a018eeec","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1b3ca70ebe8724ab7d0d6ba9c8b20853a018eeec","distinct":true,"message":"Restore coverage of Event"},{"sha":"ff8d87d5391b2ef8d10e89f77260a18440e88e25","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ff8d87d5391b2ef8d10e89f77260a18440e88e25","distinct":true,"message":"Test NamedUser.create_gist withour description"},{"sha":"36574ded89738a81f47f415017ba880d0cad839b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/36574ded89738a81f47f415017ba880d0cad839b","distinct":true,"message":"Refactor tests of Repository"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"id":"1556126182","created_at":"2012-05-26T11:25:50Z"},{"type":"PushEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"head":"619eae8d51c5988f0d2889fc767fa677438ba95d","size":11,"push_id":80673538,"ref":"refs/heads/topic/RewriteWithGeneratedCode","commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"},{"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","distinct":false,"message":"Merge branch 'develop'"},{"sha":"3a3bf4763192ee1234eb0557628133e06f3dfc76","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3a3bf4763192ee1234eb0557628133e06f3dfc76","distinct":true,"message":"Merge branch 'master' into topic/RewriteWithGeneratedCode\n\nConflicts:\n\tgithub/Github.py\n\tgithub/Requester.py"},{"sha":"608f17794664f61693a3dc05e6056fea8fbef0ff","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/608f17794664f61693a3dc05e6056fea8fbef0ff","distinct":true,"message":"Restore some form of Authorization header in replay data"},{"sha":"2c04b8adbd91d38eef4f0767337ab7a12b2f684b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2c04b8adbd91d38eef4f0767337ab7a12b2f684b","distinct":true,"message":"Allow test without pre-set-up Github"},{"sha":"5b97389988b6fe43e15a079702f6f1671257fb28","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5b97389988b6fe43e15a079702f6f1671257fb28","distinct":true,"message":"Test three authentication schemes"},{"sha":"12747613c5ec00deccf296b8619ad507f7050475","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/12747613c5ec00deccf296b8619ad507f7050475","distinct":true,"message":"Test Issue.getComments"},{"sha":"2982fa96c5ca75abe717d974d83f9135d664232e","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2982fa96c5ca75abe717d974d83f9135d664232e","distinct":true,"message":"Test the new Repository.full_name attribute"},{"sha":"619eae8d51c5988f0d2889fc767fa677438ba95d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/619eae8d51c5988f0d2889fc767fa677438ba95d","distinct":true,"message":"Improve coverage of AuthenticatedUser"}]},"id":"1556114751","created_at":"2012-05-26T10:01:39Z"},{"type":"IssuesEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"closed","issue":{"number":29,"created_at":"2012-05-25T11:47:59Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"","comments":0,"title":"Publish version 0.7","updated_at":"2012-05-25T17:32:32Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/29","id":4752048,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":5,"due_on":"2012-05-26T07:00:00Z","created_at":"2012-05-25T11:47:06Z","title":"Version 0.7","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","id":124045,"closed_issues":2,"open_issues":0,"description":"","state":"closed"},"closed_at":"2012-05-25T17:32:32Z","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"labels":[{"name":"Project management","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","color":"444444"}],"html_url":"https://github.com/jacquev6/PyGithub/issues/29","state":"closed"}},"id":"1555940993","created_at":"2012-05-25T17:32:33Z"},{"type":"IssuesEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"closed","issue":{"number":15,"created_at":"2012-03-13T06:24:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"One would want to use the API without authentication, with login+password, and with OAuth token. Let's cover these use-cases.","comments":1,"title":"Implement all authentication schemes","updated_at":"2012-05-25T17:32:31Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/15","id":3624575,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":5,"due_on":"2012-05-26T07:00:00Z","created_at":"2012-05-25T11:47:06Z","title":"Version 0.7","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","id":124045,"closed_issues":2,"open_issues":0,"description":"","state":"closed"},"closed_at":"2012-05-25T17:32:31Z","labels":[{"name":"Functionalities","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","color":"e102d8"}],"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/issues/15","state":"closed"}},"id":"1555940986","created_at":"2012-05-25T17:32:33Z"},{"type":"CreateEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"master_branch":"master","ref_type":"tag","ref":"v0.7","description":"Python library implementing the full Github API v3"},"id":"1555936661","created_at":"2012-05-25T17:19:48Z"},{"type":"DeleteEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"ref_type":"branch","ref":"topic/Authentication"},"id":"1555936660","created_at":"2012-05-25T17:19:48Z"},{"type":"PushEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"head":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","size":4,"push_id":80573368,"ref":"refs/heads/master","commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"},{"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","distinct":true,"message":"Merge branch 'develop'"}]},"id":"1555936659","created_at":"2012-05-25T17:19:48Z"},{"type":"PushEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"head":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","size":3,"push_id":80573367,"commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"}],"ref":"refs/heads/develop"},"id":"1555936657","created_at":"2012-05-25T17:19:47Z"},{"type":"CreateEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"master_branch":"master","ref":"topic/Authentication","description":"Python library implementing the full Github API v3","ref_type":"branch"},"id":"1555833283","created_at":"2012-05-25T12:24:21Z"},{"type":"IssuesEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"opened","issue":{"number":29,"created_at":"2012-05-25T11:47:59Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"","title":"Publish version 0.7","comments":0,"updated_at":"2012-05-25T11:47:59Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/29","id":4752048,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":5,"created_at":"2012-05-25T11:47:06Z","due_on":"2012-05-26T07:00:00Z","title":"Version 0.7","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","id":124045,"open_issues":2,"closed_issues":0,"description":"","state":"open"},"closed_at":null,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/issues/29","labels":[{"name":"Project management","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","color":"444444"}],"state":"open"}},"id":"1555822981","created_at":"2012-05-25T12:02:48Z"},{"type":"IssueCommentEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"comment":{"created_at":"2012-05-25T06:31:42Z","body":"It means that there will be three ways to create an instance of the Github class:\n github = Github()\n github = Github( login, password )\n github = Github( oauth_token )\n","updated_at":"2012-05-25T06:31:42Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5924198","id":5924198,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},"action":"created","issue":{"number":15,"created_at":"2012-03-13T06:24:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"comments":1,"body":"One would want to use the API without authentication, with login+password, and with OAuth token. Let's cover these use-cases.","title":"Implement all authentication schemes","updated_at":"2012-05-25T06:31:42Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/15","id":3624575,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":null,"closed_at":null,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"labels":[{"name":"Functionalities","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","color":"e102d8"}],"html_url":"https://github.com/jacquev6/PyGithub/issues/15","state":"open"}},"id":"1555742639","created_at":"2012-05-25T06:31:42Z"},{"type":"WatchEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"started"},"id":"1555738288","created_at":"2012-05-25T06:05:21Z"},{"type":"PushEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"head":"527ce7459a2e60d1536883f19b9bc6850d71127b","size":5,"push_id":79877715,"commits":[{"sha":"287bc541542f9d32339e7dd4b36a511cab2ebdae","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/287bc541542f9d32339e7dd4b36a511cab2ebdae","distinct":true,"message":"Generate more coverage information"},{"sha":"588a4a9a355096c00a2bb25f27664d2115e120ac","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/588a4a9a355096c00a2bb25f27664d2115e120ac","distinct":true,"message":"Test AuthenticatedUser watching"},{"sha":"815720f0deb376c34166c27b6e3b73e5c1f5b1a3","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/815720f0deb376c34166c27b6e3b73e5c1f5b1a3","distinct":true,"message":"Test Authorization"},{"sha":"473c92adcd8bbbd32003d9c65666ede66059551b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/473c92adcd8bbbd32003d9c65666ede66059551b","distinct":true,"message":"Test Download and CommitComment"},{"sha":"527ce7459a2e60d1536883f19b9bc6850d71127b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/527ce7459a2e60d1536883f19b9bc6850d71127b","distinct":true,"message":"Merge commit 'c93f9cc8484b7' into topic/RewriteWithGeneratedCode\n\nConflicts:\n\ttest/IntegrationTest.py"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"id":"1554729420","created_at":"2012-05-22T19:59:48Z"},{"type":"DownloadEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"download":{"name":"Foobar.txt","size":1024,"created_at":"2012-05-22T19:15:29Z","content_type":"text/plain","download_count":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/242562","id":242562,"description":null,"html_url":"https://github.com/downloads/jacquev6/PyGithub/Foobar.txt"}},"id":"1554712197","created_at":"2012-05-22T19:15:30Z"},{"type":"DownloadEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"download":{"name":"Foobar.txt","size":1024,"created_at":"2012-05-22T19:11:49Z","content_type":"text/richtext","download_count":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/242556","id":242556,"description":"Download created by PyGithub","html_url":"https://github.com/downloads/jacquev6/PyGithub/Foobar.txt"}},"id":"1554710791","created_at":"2012-05-22T19:11:49Z"},{"type":"DownloadEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"download":{"name":"Foobar.txt","created_at":"2012-05-22T18:58:32Z","size":1024,"content_type":"text/plain","url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/242550","download_count":0,"id":242550,"description":null,"html_url":"https://github.com/downloads/jacquev6/PyGithub/Foobar.txt"}},"id":"1554705673","created_at":"2012-05-22T18:58:32Z"},{"type":"CommitCommentEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"comment":{"position":19,"created_at":"2012-05-22T18:53:25Z","line":211,"body":"Foobar","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:53:25Z","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1362020","id":1362020,"path":"src/github/AuthenticatedUser.py","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362020","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"id":"1554703698","created_at":"2012-05-22T18:53:25Z"},{"type":"CommitCommentEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"comment":{"position":3,"created_at":"2012-05-22T18:50:02Z","line":null,"body":"Comment also created by PyGithub","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:50:02Z","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1362001","id":1362001,"path":"codegen/templates/GithubObject.MethodBody.UseResult.py","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362001","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"id":"1554702296","created_at":"2012-05-22T18:50:02Z"},{"type":"CommitCommentEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"comment":{"position":null,"created_at":"2012-05-22T18:49:34Z","line":26,"body":"Comment created by PyGithub","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:49:34Z","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1362000","id":1362000,"path":"codegen/templates/GithubObject.MethodBody.UseResult.py","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362000","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"id":"1554702087","created_at":"2012-05-22T18:49:34Z"},{"type":"CommitCommentEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub","name":"jacquev6/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"comment":{"position":null,"created_at":"2012-05-22T18:40:18Z","body":"Comment created by PyGithub","line":null,"commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:40:18Z","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1361949","id":1361949,"path":null,"html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1361949","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"id":"1554698320","created_at":"2012-05-22T18:40:18Z"}] +[('status', '200 OK'), ('x-ratelimit-remaining', '4929'), ('content-length', '44412'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"1e10e6d8994190bd053880e299e9b0b4"'), ('date', 'Sun, 27 May 2012 07:08:40 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"type":"DownloadEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"download":{"name":"Hook.py","size":1024,"created_at":"2012-05-27T06:54:54Z","content_type":".py","url":"https://api.github.com/repos/PyGithub/PyGithub/downloads/245143","download_count":0,"id":245143,"description":"","html_url":"https://github.com/downloads/PyGithub/PyGithub/Hook.py"}},"id":"1556239111","created_at":"2012-05-27T06:54:55Z"},{"type":"DownloadEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"download":{"name":"htmlcov.zip","size":258048,"created_at":"2012-05-27T06:53:47Z","content_type":".zip","download_count":0,"url":"https://api.github.com/repos/PyGithub/PyGithub/downloads/245142","id":245142,"description":"","html_url":"https://github.com/downloads/PyGithub/PyGithub/htmlcov.zip"}},"id":"1556239049","created_at":"2012-05-27T06:53:48Z"},{"type":"PushEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"head":"956279094a7383b6a8f00c93770ed02ca711f8e5","size":4,"push_id":80734053,"ref":"refs/heads/topic/RewriteWithGeneratedCode","commits":[{"sha":"8cb3e63e80f3ab741ca580eed791a85fb4e1b968","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8cb3e63e80f3ab741ca580eed791a85fb4e1b968","distinct":true,"message":"Test Team"},{"sha":"e7fe18b7dd3daa03a6ebb7f83a4f100c0f68e96b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e7fe18b7dd3daa03a6ebb7f83a4f100c0f68e96b","distinct":true,"message":"Test Organization members"},{"sha":"4169010f17cf66a9f1e43e476115485ed7cda90c","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4169010f17cf66a9f1e43e476115485ed7cda90c","distinct":true,"message":"Improve coverage of Organization"},{"sha":"956279094a7383b6a8f00c93770ed02ca711f8e5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/956279094a7383b6a8f00c93770ed02ca711f8e5","distinct":true,"message":"Test Repository.create_git_*"}]},"id":"1556235497","created_at":"2012-05-27T06:00:30Z"},{"type":"IssuesEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"opened","issue":{"number":30,"created_at":"2012-05-27T05:40:15Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Body created by PyGithub","comments":0,"title":"Issue also created by PyGithub","updated_at":"2012-05-27T05:40:15Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/30","id":4769659,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":2,"due_on":"2012-06-04T07:00:00Z","created_at":"2012-03-08T12:22:28Z","title":"Version 1.0: coherent public interface","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/2","id":93547,"open_issues":10,"closed_issues":2,"description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/PyGithub/PyGithub/tree/topic/RewriteWithGeneratedCode","state":"open"},"closed_at":null,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"html_url":"https://github.com/PyGithub/PyGithub/issues/30","labels":[{"name":"Question","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","color":"02e10c"}],"state":"open"}},"id":"1556234207","created_at":"2012-05-27T05:40:15Z"},{"type":"MemberEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"added","member":{"gravatar_id":"1517ed584458ccf83e03f5d77d9699d7","avatar_url":"https://secure.gravatar.com/avatar/1517ed584458ccf83e03f5d77d9699d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/Lyloa","id":1131432,"login":"Lyloa"}},"id":"1556233923","created_at":"2012-05-27T05:34:29Z"},{"type":"MemberEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"added","member":{"gravatar_id":"1517ed584458ccf83e03f5d77d9699d7","avatar_url":"https://secure.gravatar.com/avatar/1517ed584458ccf83e03f5d77d9699d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/Lyloa","id":1131432,"login":"Lyloa"}},"id":"1556233882","created_at":"2012-05-27T05:33:44Z"},{"type":"ForkEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1424031,"url":"https://api.github.com/users/BeaverSoftware","login":"BeaverSoftware"},"payload":{"forkee":{"name":"PyGithub","size":348,"has_wiki":false,"created_at":"2012-05-27T05:23:17Z","clone_url":"https://github.com/BeaverSoftware/PyGithub.git","public":true,"watchers":1,"private":false,"updated_at":"2012-05-27T05:23:18Z","git_url":"git://github.com/BeaverSoftware/PyGithub.git","fork":true,"language":"Python","url":"https://api.github.com/repos/BeaverSoftware/PyGithub","ssh_url":"git@github.com:BeaverSoftware/PyGithub.git","id":4460027,"svn_url":"https://github.com/BeaverSoftware/PyGithub","pushed_at":"2012-05-26T20:54:13Z","has_downloads":true,"mirror_url":null,"open_issues":0,"full_name":"BeaverSoftware/PyGithub","has_issues":false,"homepage":"http://vincent-jacques.net/PyGithub","description":"Python library implementing the full Github API v3","forks":0,"html_url":"https://github.com/BeaverSoftware/PyGithub","owner":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware"}}},"id":"1556233222","created_at":"2012-05-27T05:23:18Z"},{"type":"PushEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"head":"a39af6a0aae16a923f7be48a70fe1095b17280d2","size":2,"push_id":80709334,"commits":[{"sha":"60fb7a8ef56f46d3fe9ce6d008e6b58238a71d29","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/60fb7a8ef56f46d3fe9ce6d008e6b58238a71d29","distinct":true,"message":"Heavy refactoring of integration tests"},{"sha":"a39af6a0aae16a923f7be48a70fe1095b17280d2","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a39af6a0aae16a923f7be48a70fe1095b17280d2","distinct":true,"message":"Improve test coverage"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"id":"1556182773","created_at":"2012-05-26T20:54:15Z"},{"type":"WatchEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"1689abbd998128dbb3658698b429b022","avatar_url":"https://secure.gravatar.com/avatar/1689abbd998128dbb3658698b429b022?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":22974,"url":"https://api.github.com/users/michaelpedersen","login":"michaelpedersen"},"payload":{"action":"started"},"id":"1556168218","created_at":"2012-05-26T18:33:42Z"},{"type":"IssuesEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"closed","issue":{"number":28,"created_at":"2012-05-19T10:38:23Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Body edited by PyGithub","title":"Issue created by PyGithub","comments":0,"updated_at":"2012-05-26T14:59:33Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/28","id":4653757,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":1,"created_at":"2012-03-08T12:22:10Z","due_on":"2012-03-13T07:00:00Z","title":"Version 0.4","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/1","id":93546,"open_issues":0,"closed_issues":3,"description":"","state":"closed"},"closed_at":"2012-05-26T14:59:33Z","html_url":"https://github.com/PyGithub/PyGithub/issues/28","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"labels":[{"name":"Bug","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug","color":"e10c02"},{"name":"Project management","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","color":"444444"},{"name":"Question","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Question","color":"02e10c"}],"state":"closed"}},"id":"1556145515","created_at":"2012-05-26T14:59:34Z"},{"type":"PushEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"head":"36574ded89738a81f47f415017ba880d0cad839b","size":5,"push_id":80677260,"commits":[{"sha":"95cd6c507bdfbf3700a31bafbe26f72a1d684be1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/95cd6c507bdfbf3700a31bafbe26f72a1d684be1","distinct":true,"message":"Use setUp in test for NamedUser"},{"sha":"386bcde55e1744fa888b034d34ad9f167595d2cf","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/386bcde55e1744fa888b034d34ad9f167595d2cf","distinct":true,"message":"Refactor tests of NamedUser"},{"sha":"1b3ca70ebe8724ab7d0d6ba9c8b20853a018eeec","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1b3ca70ebe8724ab7d0d6ba9c8b20853a018eeec","distinct":true,"message":"Restore coverage of Event"},{"sha":"ff8d87d5391b2ef8d10e89f77260a18440e88e25","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ff8d87d5391b2ef8d10e89f77260a18440e88e25","distinct":true,"message":"Test NamedUser.create_gist withour description"},{"sha":"36574ded89738a81f47f415017ba880d0cad839b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/36574ded89738a81f47f415017ba880d0cad839b","distinct":true,"message":"Refactor tests of Repository"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"id":"1556126182","created_at":"2012-05-26T11:25:50Z"},{"type":"PushEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"head":"619eae8d51c5988f0d2889fc767fa677438ba95d","size":11,"push_id":80673538,"ref":"refs/heads/topic/RewriteWithGeneratedCode","commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"},{"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","distinct":false,"message":"Merge branch 'develop'"},{"sha":"3a3bf4763192ee1234eb0557628133e06f3dfc76","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/3a3bf4763192ee1234eb0557628133e06f3dfc76","distinct":true,"message":"Merge branch 'master' into topic/RewriteWithGeneratedCode\n\nConflicts:\n\tgithub/Github.py\n\tgithub/Requester.py"},{"sha":"608f17794664f61693a3dc05e6056fea8fbef0ff","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/608f17794664f61693a3dc05e6056fea8fbef0ff","distinct":true,"message":"Restore some form of Authorization header in replay data"},{"sha":"2c04b8adbd91d38eef4f0767337ab7a12b2f684b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2c04b8adbd91d38eef4f0767337ab7a12b2f684b","distinct":true,"message":"Allow test without pre-set-up Github"},{"sha":"5b97389988b6fe43e15a079702f6f1671257fb28","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5b97389988b6fe43e15a079702f6f1671257fb28","distinct":true,"message":"Test three authentication schemes"},{"sha":"12747613c5ec00deccf296b8619ad507f7050475","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/12747613c5ec00deccf296b8619ad507f7050475","distinct":true,"message":"Test Issue.getComments"},{"sha":"2982fa96c5ca75abe717d974d83f9135d664232e","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2982fa96c5ca75abe717d974d83f9135d664232e","distinct":true,"message":"Test the new Repository.full_name attribute"},{"sha":"619eae8d51c5988f0d2889fc767fa677438ba95d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/619eae8d51c5988f0d2889fc767fa677438ba95d","distinct":true,"message":"Improve coverage of AuthenticatedUser"}]},"id":"1556114751","created_at":"2012-05-26T10:01:39Z"},{"type":"IssuesEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"closed","issue":{"number":29,"created_at":"2012-05-25T11:47:59Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"","comments":0,"title":"Publish version 0.7","updated_at":"2012-05-25T17:32:32Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/29","id":4752048,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":5,"due_on":"2012-05-26T07:00:00Z","created_at":"2012-05-25T11:47:06Z","title":"Version 0.7","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/5","id":124045,"closed_issues":2,"open_issues":0,"description":"","state":"closed"},"closed_at":"2012-05-25T17:32:32Z","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"labels":[{"name":"Project management","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","color":"444444"}],"html_url":"https://github.com/PyGithub/PyGithub/issues/29","state":"closed"}},"id":"1555940993","created_at":"2012-05-25T17:32:33Z"},{"type":"IssuesEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"closed","issue":{"number":15,"created_at":"2012-03-13T06:24:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"One would want to use the API without authentication, with login+password, and with OAuth token. Let's cover these use-cases.","comments":1,"title":"Implement all authentication schemes","updated_at":"2012-05-25T17:32:31Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/15","id":3624575,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":5,"due_on":"2012-05-26T07:00:00Z","created_at":"2012-05-25T11:47:06Z","title":"Version 0.7","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/5","id":124045,"closed_issues":2,"open_issues":0,"description":"","state":"closed"},"closed_at":"2012-05-25T17:32:31Z","labels":[{"name":"Functionalities","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","color":"e102d8"}],"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"html_url":"https://github.com/PyGithub/PyGithub/issues/15","state":"closed"}},"id":"1555940986","created_at":"2012-05-25T17:32:33Z"},{"type":"CreateEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"master_branch":"master","ref_type":"tag","ref":"v0.7","description":"Python library implementing the full Github API v3"},"id":"1555936661","created_at":"2012-05-25T17:19:48Z"},{"type":"DeleteEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"ref_type":"branch","ref":"topic/Authentication"},"id":"1555936660","created_at":"2012-05-25T17:19:48Z"},{"type":"PushEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"head":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","size":4,"push_id":80573368,"ref":"refs/heads/master","commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"},{"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","distinct":true,"message":"Merge branch 'develop'"}]},"id":"1555936659","created_at":"2012-05-25T17:19:48Z"},{"type":"PushEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"head":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","size":3,"push_id":80573367,"commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"}],"ref":"refs/heads/develop"},"id":"1555936657","created_at":"2012-05-25T17:19:47Z"},{"type":"CreateEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"master_branch":"master","ref":"topic/Authentication","description":"Python library implementing the full Github API v3","ref_type":"branch"},"id":"1555833283","created_at":"2012-05-25T12:24:21Z"},{"type":"IssuesEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"opened","issue":{"number":29,"created_at":"2012-05-25T11:47:59Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"","title":"Publish version 0.7","comments":0,"updated_at":"2012-05-25T11:47:59Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/29","id":4752048,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":5,"created_at":"2012-05-25T11:47:06Z","due_on":"2012-05-26T07:00:00Z","title":"Version 0.7","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/PyGithub/PyGithub/milestones/5","id":124045,"open_issues":2,"closed_issues":0,"description":"","state":"open"},"closed_at":null,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"html_url":"https://github.com/PyGithub/PyGithub/issues/29","labels":[{"name":"Project management","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management","color":"444444"}],"state":"open"}},"id":"1555822981","created_at":"2012-05-25T12:02:48Z"},{"type":"IssueCommentEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"comment":{"created_at":"2012-05-25T06:31:42Z","body":"It means that there will be three ways to create an instance of the Github class:\n github = Github()\n github = Github( login, password )\n github = Github( oauth_token )\n","updated_at":"2012-05-25T06:31:42Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/5924198","id":5924198,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},"action":"created","issue":{"number":15,"created_at":"2012-03-13T06:24:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"comments":1,"body":"One would want to use the API without authentication, with login+password, and with OAuth token. Let's cover these use-cases.","title":"Implement all authentication schemes","updated_at":"2012-05-25T06:31:42Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/15","id":3624575,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":null,"closed_at":null,"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"labels":[{"name":"Functionalities","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/Functionalities","color":"e102d8"}],"html_url":"https://github.com/PyGithub/PyGithub/issues/15","state":"open"}},"id":"1555742639","created_at":"2012-05-25T06:31:42Z"},{"type":"WatchEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"action":"started"},"id":"1555738288","created_at":"2012-05-25T06:05:21Z"},{"type":"PushEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"head":"527ce7459a2e60d1536883f19b9bc6850d71127b","size":5,"push_id":79877715,"commits":[{"sha":"287bc541542f9d32339e7dd4b36a511cab2ebdae","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/287bc541542f9d32339e7dd4b36a511cab2ebdae","distinct":true,"message":"Generate more coverage information"},{"sha":"588a4a9a355096c00a2bb25f27664d2115e120ac","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/588a4a9a355096c00a2bb25f27664d2115e120ac","distinct":true,"message":"Test AuthenticatedUser watching"},{"sha":"815720f0deb376c34166c27b6e3b73e5c1f5b1a3","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/815720f0deb376c34166c27b6e3b73e5c1f5b1a3","distinct":true,"message":"Test Authorization"},{"sha":"473c92adcd8bbbd32003d9c65666ede66059551b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/473c92adcd8bbbd32003d9c65666ede66059551b","distinct":true,"message":"Test Download and CommitComment"},{"sha":"527ce7459a2e60d1536883f19b9bc6850d71127b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/527ce7459a2e60d1536883f19b9bc6850d71127b","distinct":true,"message":"Merge commit 'c93f9cc8484b7' into topic/RewriteWithGeneratedCode\n\nConflicts:\n\ttest/IntegrationTest.py"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"id":"1554729420","created_at":"2012-05-22T19:59:48Z"},{"type":"DownloadEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"download":{"name":"Foobar.txt","size":1024,"created_at":"2012-05-22T19:15:29Z","content_type":"text/plain","download_count":0,"url":"https://api.github.com/repos/PyGithub/PyGithub/downloads/242562","id":242562,"description":null,"html_url":"https://github.com/downloads/PyGithub/PyGithub/Foobar.txt"}},"id":"1554712197","created_at":"2012-05-22T19:15:30Z"},{"type":"DownloadEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"download":{"name":"Foobar.txt","size":1024,"created_at":"2012-05-22T19:11:49Z","content_type":"text/richtext","download_count":0,"url":"https://api.github.com/repos/PyGithub/PyGithub/downloads/242556","id":242556,"description":"Download created by PyGithub","html_url":"https://github.com/downloads/PyGithub/PyGithub/Foobar.txt"}},"id":"1554710791","created_at":"2012-05-22T19:11:49Z"},{"type":"DownloadEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"download":{"name":"Foobar.txt","created_at":"2012-05-22T18:58:32Z","size":1024,"content_type":"text/plain","url":"https://api.github.com/repos/PyGithub/PyGithub/downloads/242550","download_count":0,"id":242550,"description":null,"html_url":"https://github.com/downloads/PyGithub/PyGithub/Foobar.txt"}},"id":"1554705673","created_at":"2012-05-22T18:58:32Z"},{"type":"CommitCommentEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"comment":{"position":19,"created_at":"2012-05-22T18:53:25Z","line":211,"body":"Foobar","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:53:25Z","url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1362020","id":1362020,"path":"src/github/AuthenticatedUser.py","html_url":"https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362020","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"id":"1554703698","created_at":"2012-05-22T18:53:25Z"},{"type":"CommitCommentEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"comment":{"position":3,"created_at":"2012-05-22T18:50:02Z","line":null,"body":"Comment also created by PyGithub","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:50:02Z","url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1362001","id":1362001,"path":"codegen/templates/GithubObject.MethodBody.UseResult.py","html_url":"https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362001","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"id":"1554702296","created_at":"2012-05-22T18:50:02Z"},{"type":"CommitCommentEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"comment":{"position":null,"created_at":"2012-05-22T18:49:34Z","line":26,"body":"Comment created by PyGithub","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:49:34Z","url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1362000","id":1362000,"path":"codegen/templates/GithubObject.MethodBody.UseResult.py","html_url":"https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362000","user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"id":"1554702087","created_at":"2012-05-22T18:49:34Z"},{"type":"CommitCommentEvent","repo":{"id":3544490,"url":"https://api.github.com/repos/PyGithub/PyGithub","name":"PyGithub/PyGithub"},"public":true,"actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146,"url":"https://api.github.com/users/jacquev6","login":"jacquev6"},"payload":{"comment":{"position":null,"created_at":"2012-05-22T18:40:18Z","body":"Comment created by PyGithub","line":null,"commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:40:18Z","url":"https://api.github.com/repos/PyGithub/PyGithub/comments/1361949","id":1361949,"path":null,"html_url":"https://github.com/PyGithub/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1361949","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"id":"1554698320","created_at":"2012-05-22T18:40:18Z"}] diff --git a/tests/ReplayData/Repository.testGetPendingInvitations.txt b/tests/ReplayData/Repository.testGetPendingInvitations.txt index bf2a7e5024..3f879b0750 100644 --- a/tests/ReplayData/Repository.testGetPendingInvitations.txt +++ b/tests/ReplayData/Repository.testGetPendingInvitations.txt @@ -13,7 +13,7 @@ https PUT api.github.com None -/repos/jacquev6/PyGithub/collaborators/Lyloa +/repos/PyGithub/PyGithub/collaborators/Lyloa {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -24,9 +24,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/invitations +/repos/PyGithub/PyGithub/invitations {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('content-length', '2085'), ('x-runtime-rack', '0.048639'), ('etag', '"23ec009b721d7456726f15f2c6dc5f9d"'), ('status', '200 OK'), ('x-ratelimit-remaining', '4892'), ('x-github-media-type', 'github.v3; format=json'), ('date', 'Thu, 28 Dec 2017 16:31:19 GMT'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1514478935')] -[{"node_id":"MDIwOlJlcG9zaXRvcnlJbnZpdGF0aW9uMTcyODUzODg=","repository":{"deployments_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","private":false,"owner":{"disk_usage":16692,"total_private_repos":5,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","hireable":false,"id":327146,"blog":"http://vincent-jacques.net","followers":13,"location":"Paris,France","type":"User","email":"vincent@vincent-jacques.net","private_gists":5,"owned_private_repos":5,"company":"Criteo","html_url":"https://github.com/jacquev6","node_id":"MDQ6VXNlcjMyNzE0Ng==","plan":{"collaborators":1,"name":"micro","private_repos":5,"space":614400},"bio":"","public_gists":1,"collaborators":0,"name":"VincentJacques","url":"https://api.github.com/users/jacquev6","created_at":"2010-07-09T06:10:06Z","public_repos":10,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","following":24,"login":"jacquev6"},"tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","fork":true,"releases_url":"https://api.github.com/repos/jacquev6/PyGithub/releases{/id}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","html_url":"https://github.com/jacquev6/PyGithub","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","name":"PyGithub","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments{/number}","full_name":"jacquev6/PyGithub","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","id":129349732,"keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","description":"TypedinteractionswiththeGitHubAPIv3","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","node_id":"MDEwOlJlcG9zaXRvcnkxMjkzNDk3MzI=","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","url":"https://api.github.com/repos/jacquev6/PyGithub","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers"},"permissions":"write","url":"https://api.github.com/user/repository_invitations/17285388","created_at":"2019-06-27T11:47:00Z","invitee":{"following_url":"https://api.github.com/users/Lyloa/following{/other_user}","gists_url":"https://api.github.com/users/Lyloa/gists{/gist_id}","organizations_url":"https://api.github.com/users/Lyloa/orgs","url":"https://api.github.com/users/Lyloa","events_url":"https://api.github.com/users/Lyloa/events{/privacy}","html_url":"https://github.com/Lyloa","subscriptions_url":"https://api.github.com/users/Lyloa/subscriptions","avatar_url":"https://avatars3.githubusercontent.com/u/52282986?v=4","repos_url":"https://api.github.com/users/Lyloa/repos","received_events_url":"https://api.github.com/users/Lyloa/received_events","gravatar_id":"","starred_url":"https://api.github.com/users/Lyloa/starred{/owner}{/repo}","site_admin":false,"login":"Lyloa","node_id":"MDQ6VXNlcjUyMjgyOTg2","type":"User","id":52282986,"followers_url":"https://api.github.com/users/Lyloa/followers"},"inviter":{"disk_usage":16692,"total_private_repos":5,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","hireable":false,"id":327146,"blog":"http://vincent-jacques.net","followers":13,"location":"Paris,France","type":"User","email":"vincent@vincent-jacques.net","private_gists":5,"owned_private_repos":5,"company":"Criteo","html_url":"https://github.com/jacquev6","node_id":"MDQ6VXNlcjMyNzE0Ng==","plan":{"collaborators":1,"name":"micro","private_repos":5,"space":614400},"bio":"","public_gists":1,"collaborators":0,"name":"VincentJacques","url":"https://api.github.com/users/jacquev6","created_at":"2010-07-09T06:10:06Z","public_repos":10,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","following":24,"login":"jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/invitations","id":17285388}] +[{"node_id":"MDIwOlJlcG9zaXRvcnlJbnZpdGF0aW9uMTcyODUzODg=","repository":{"deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","private":false,"owner":{"disk_usage":16692,"total_private_repos":5,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","hireable":false,"id":327146,"blog":"http://vincent-jacques.net","followers":13,"location":"Paris,France","type":"User","email":"vincent@vincent-jacques.net","private_gists":5,"owned_private_repos":5,"company":"Criteo","html_url":"https://github.com/jacquev6","node_id":"MDQ6VXNlcjMyNzE0Ng==","plan":{"collaborators":1,"name":"micro","private_repos":5,"space":614400},"bio":"","public_gists":1,"collaborators":0,"name":"VincentJacques","url":"https://api.github.com/users/jacquev6","created_at":"2010-07-09T06:10:06Z","public_repos":10,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","following":24,"login":"jacquev6"},"tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","fork":true,"releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","html_url":"https://github.com/PyGithub/PyGithub","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","name":"PyGithub","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","full_name":"PyGithub/PyGithub","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","id":129349732,"keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","description":"TypedinteractionswiththeGitHubAPIv3","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","node_id":"MDEwOlJlcG9zaXRvcnkxMjkzNDk3MzI=","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","url":"https://api.github.com/repos/PyGithub/PyGithub","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers"},"permissions":"write","url":"https://api.github.com/user/repository_invitations/17285388","created_at":"2019-06-27T11:47:00Z","invitee":{"following_url":"https://api.github.com/users/Lyloa/following{/other_user}","gists_url":"https://api.github.com/users/Lyloa/gists{/gist_id}","organizations_url":"https://api.github.com/users/Lyloa/orgs","url":"https://api.github.com/users/Lyloa","events_url":"https://api.github.com/users/Lyloa/events{/privacy}","html_url":"https://github.com/Lyloa","subscriptions_url":"https://api.github.com/users/Lyloa/subscriptions","avatar_url":"https://avatars3.githubusercontent.com/u/52282986?v=4","repos_url":"https://api.github.com/users/Lyloa/repos","received_events_url":"https://api.github.com/users/Lyloa/received_events","gravatar_id":"","starred_url":"https://api.github.com/users/Lyloa/starred{/owner}{/repo}","site_admin":false,"login":"Lyloa","node_id":"MDQ6VXNlcjUyMjgyOTg2","type":"User","id":52282986,"followers_url":"https://api.github.com/users/Lyloa/followers"},"inviter":{"disk_usage":16692,"total_private_repos":5,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","hireable":false,"id":327146,"blog":"http://vincent-jacques.net","followers":13,"location":"Paris,France","type":"User","email":"vincent@vincent-jacques.net","private_gists":5,"owned_private_repos":5,"company":"Criteo","html_url":"https://github.com/jacquev6","node_id":"MDQ6VXNlcjMyNzE0Ng==","plan":{"collaborators":1,"name":"micro","private_repos":5,"space":614400},"bio":"","public_gists":1,"collaborators":0,"name":"VincentJacques","url":"https://api.github.com/users/jacquev6","created_at":"2010-07-09T06:10:06Z","public_repos":10,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","following":24,"login":"jacquev6"},"html_url":"https://github.com/PyGithub/PyGithub/invitations","id":17285388}] diff --git a/tests/ReplayData/Repository.testGetPulls.txt b/tests/ReplayData/Repository.testGetPulls.txt index 65688ed997..95ded9a147 100644 --- a/tests/ReplayData/Repository.testGetPulls.txt +++ b/tests/ReplayData/Repository.testGetPulls.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/pulls +/repos/PyGithub/PyGithub/pulls {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4930'), ('content-length', '4057'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"a659c559e34da168eba22cba60faf027"'), ('date', 'Sun, 27 May 2012 10:59:02 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Creation of a pull request from an issue is not covered by integration tests","state":"open","merged_at":null,"updated_at":"2012-05-27T10:58:41Z","head":{"user":null,"repo":{"description":"Python library implementing the full Github API v3","full_name":"BeaverSoftware/PyGithub","has_wiki":false,"has_issues":false,"updated_at":"2012-05-27T10:58:08Z","forks":0,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:BeaverSoftware/PyGithub.git","open_issues":0,"fork":true,"svn_url":"https://github.com/BeaverSoftware/PyGithub","pushed_at":"2012-05-27T10:58:08Z","size":176,"html_url":"https://github.com/BeaverSoftware/PyGithub","private":false,"url":"https://api.github.com/repos/BeaverSoftware/PyGithub","clone_url":"https://github.com/BeaverSoftware/PyGithub.git","owner":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/BeaverSoftware","login":"BeaverSoftware","id":1424031},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":1,"git_url":"git://github.com/BeaverSoftware/PyGithub.git","id":4460787,"created_at":"2012-05-27T08:50:04Z"},"label":"BeaverSoftware:master","sha":"aff8a573a19f0a42380e1c0cbbc63b6dc719f38e","ref":"master"},"body":"","number":32,"_links":{"comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/32/comments"},"issue":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/32"},"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/32"},"review_comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/32/comments"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/32"}},"closed_at":null,"diff_url":"https://github.com/jacquev6/PyGithub/pull/32.diff","html_url":"https://github.com/jacquev6/PyGithub/pull/32","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/32","issue_url":"https://github.com/jacquev6/PyGithub/issues/32","id":1436310,"base":{"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"repo":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-27T10:54:09Z","forks":3,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":17,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-27T10:54:09Z","size":188,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":15,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"label":"jacquev6:topic/RewriteWithGeneratedCode","sha":"7ec473e793c0b63092d938707632639a41fd4369","ref":"topic/RewriteWithGeneratedCode"},"created_at":"2012-05-27T10:58:41Z","patch_url":"https://github.com/jacquev6/PyGithub/pull/32.patch"}] +[{"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Creation of a pull request from an issue is not covered by integration tests","state":"open","merged_at":null,"updated_at":"2012-05-27T10:58:41Z","head":{"user":null,"repo":{"description":"Python library implementing the full Github API v3","full_name":"BeaverSoftware/PyGithub","has_wiki":false,"has_issues":false,"updated_at":"2012-05-27T10:58:08Z","forks":0,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:BeaverSoftware/PyGithub.git","open_issues":0,"fork":true,"svn_url":"https://github.com/BeaverSoftware/PyGithub","pushed_at":"2012-05-27T10:58:08Z","size":176,"html_url":"https://github.com/BeaverSoftware/PyGithub","private":false,"url":"https://api.github.com/repos/BeaverSoftware/PyGithub","clone_url":"https://github.com/BeaverSoftware/PyGithub.git","owner":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/BeaverSoftware","login":"BeaverSoftware","id":1424031},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":1,"git_url":"git://github.com/BeaverSoftware/PyGithub.git","id":4460787,"created_at":"2012-05-27T08:50:04Z"},"label":"BeaverSoftware:master","sha":"aff8a573a19f0a42380e1c0cbbc63b6dc719f38e","ref":"master"},"body":"","number":32,"_links":{"comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/32/comments"},"issue":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/32"},"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/32"},"review_comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/32/comments"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/32"}},"closed_at":null,"diff_url":"https://github.com/PyGithub/PyGithub/pull/32.diff","html_url":"https://github.com/PyGithub/PyGithub/pull/32","url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/32","issue_url":"https://github.com/PyGithub/PyGithub/issues/32","id":1436310,"base":{"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"repo":{"description":"Python library implementing the full Github API v3","full_name":"PyGithub/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-27T10:54:09Z","forks":3,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:PyGithub/PyGithub.git","open_issues":17,"fork":false,"svn_url":"https://github.com/PyGithub/PyGithub","pushed_at":"2012-05-27T10:54:09Z","size":188,"html_url":"https://github.com/PyGithub/PyGithub","private":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","clone_url":"https://github.com/PyGithub/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":15,"git_url":"git://github.com/PyGithub/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"label":"jacquev6:topic/RewriteWithGeneratedCode","sha":"7ec473e793c0b63092d938707632639a41fd4369","ref":"topic/RewriteWithGeneratedCode"},"created_at":"2012-05-27T10:58:41Z","patch_url":"https://github.com/PyGithub/PyGithub/pull/32.patch"}] diff --git a/tests/ReplayData/Repository.testGetPullsComments.txt b/tests/ReplayData/Repository.testGetPullsComments.txt index 8c17befd58..aede02e794 100644 --- a/tests/ReplayData/Repository.testGetPullsComments.txt +++ b/tests/ReplayData/Repository.testGetPullsComments.txt @@ -2,31 +2,31 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/comments +/repos/PyGithub/PyGithub/pulls/comments {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4961'), ('x-ratelimit-limit', '5000'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '1617'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 18:46:45 GMT'), ('connection', 'keep-alive'), ('etag', '"446137bf216c4edc30567fbc3e944b5a"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:55:47 GMT'), ('x-github-media-type', 'github.beta; format=json'), ('content-type', 'application/json; charset=utf-8')] -[{"body":"Review comment created for PyGithub","path":"codegen/templates/GithubObject.py","original_commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","original_position":5,"updated_at":"2012-09-11T20:06:32Z","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/1580134","commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","created_at":"2012-09-11T20:06:32Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"position":5,"_links":{"pull_request":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/31#discussion_r1580134"},"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/1580134"}},"id":1580134}] +[{"body":"Review comment created for PyGithub","path":"codegen/templates/GithubObject.py","original_commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","original_position":5,"updated_at":"2012-09-11T20:06:32Z","url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/1580134","commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","created_at":"2012-09-11T20:06:32Z","user":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","repos_url":"https://api.github.com/users/jacquev6/repos","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"position":5,"_links":{"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/31#discussion_r1580134"},"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/1580134"}},"id":1580134}] https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/comments?sort=created&direction=asc +/repos/PyGithub/PyGithub/pulls/comments?sort=created&direction=asc {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('content-length', '1617'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4960'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 18:46:45 GMT'), ('connection', 'keep-alive'), ('etag', '"446137bf216c4edc30567fbc3e944b5a"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:55:58 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"_links":{"html":{"href":"https://github.com/jacquev6/PyGithub/pull/31#discussion_r1580134"},"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/1580134"},"pull_request":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31"}},"body":"Review comment created for PyGithub","path":"codegen/templates/GithubObject.py","original_commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","original_position":5,"updated_at":"2012-09-11T20:06:32Z","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/1580134","commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","created_at":"2012-09-11T20:06:32Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"position":5,"id":1580134}] +[{"_links":{"html":{"href":"https://github.com/PyGithub/PyGithub/pull/31#discussion_r1580134"},"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/1580134"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"}},"body":"Review comment created for PyGithub","path":"codegen/templates/GithubObject.py","original_commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","original_position":5,"updated_at":"2012-09-11T20:06:32Z","url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/1580134","commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","created_at":"2012-09-11T20:06:32Z","user":{"type":"User","received_events_url":"https://api.github.com/users/jacquev6/received_events","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146},"position":5,"id":1580134}] https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/comments?since=2012-05-28T23%3A00%3A00Z +/repos/PyGithub/PyGithub/pulls/comments?since=2012-05-28T23%3A00%3A00Z {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('content-length', '1617'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4959'), ('server', 'nginx'), ('last-modified', 'Fri, 21 Dec 2012 18:46:45 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"446137bf216c4edc30567fbc3e944b5a"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Dec 2012 11:56:09 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"body":"Review comment created for PyGithub","path":"codegen/templates/GithubObject.py","original_commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","original_position":5,"updated_at":"2012-09-11T20:06:32Z","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/1580134","_links":{"html":{"href":"https://github.com/jacquev6/PyGithub/pull/31#discussion_r1580134"},"pull_request":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31"},"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/1580134"}},"commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","created_at":"2012-09-11T20:06:32Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"position":5,"id":1580134}] +[{"body":"Review comment created for PyGithub","path":"codegen/templates/GithubObject.py","original_commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","original_position":5,"updated_at":"2012-09-11T20:06:32Z","url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/1580134","_links":{"html":{"href":"https://github.com/PyGithub/PyGithub/pull/31#discussion_r1580134"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"},"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/1580134"}},"commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","created_at":"2012-09-11T20:06:32Z","user":{"type":"User","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","followers_url":"https://api.github.com/users/jacquev6/followers","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","following_url":"https://api.github.com/users/jacquev6/following","organizations_url":"https://api.github.com/users/jacquev6/orgs","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","repos_url":"https://api.github.com/users/jacquev6/repos","login":"jacquev6","received_events_url":"https://api.github.com/users/jacquev6/received_events","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","id":327146,"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}"},"position":5,"id":1580134}] diff --git a/tests/ReplayData/Repository.testGetPullsWithArguments.txt b/tests/ReplayData/Repository.testGetPullsWithArguments.txt index 95168414d8..1b7174c27c 100644 --- a/tests/ReplayData/Repository.testGetPullsWithArguments.txt +++ b/tests/ReplayData/Repository.testGetPullsWithArguments.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/pulls?state=closed +/repos/PyGithub/PyGithub/pulls?state=closed {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4855'), ('content-length', '9992'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"2e781638c71ac097640fc67cfcab8822"'), ('date', 'Tue, 29 May 2012 18:42:44 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"head":{"ref":"master","label":"BeaverSoftware:master","repo":{"clone_url":"https://github.com/BeaverSoftware/PyGithub.git","has_downloads":true,"watchers":1,"updated_at":"2012-05-29T18:09:14Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/PyGithub","html_url":"https://github.com/BeaverSoftware/PyGithub","has_wiki":false,"has_issues":false,"fork":true,"git_url":"git://github.com/BeaverSoftware/PyGithub.git","forks":0,"size":428,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/PyGithub","owner":{"url":"https://api.github.com/users/BeaverSoftware","gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","login":"BeaverSoftware","id":1424031,"avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"name":"PyGithub","mirror_url":null,"language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:BeaverSoftware/PyGithub.git","pushed_at":"2012-05-29T18:05:10Z","created_at":"2012-05-29T18:03:19Z","id":4485562,"full_name":"BeaverSoftware/PyGithub"},"user":null,"sha":"ca6e7ef9ce22dc01290bb59507f24cc17f42daa4"},"updated_at":"2012-05-29T18:07:54Z","issue_url":"https://github.com/jacquev6/PyGithub/issues/39","_links":{"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/39"},"review_comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/39/comments"},"comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/39/comments"},"issue":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/39"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/39"}},"body":"","diff_url":"https://github.com/jacquev6/PyGithub/pull/39.diff","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/39","base":{"ref":"topic/RewriteWithGeneratedCode","label":"jacquev6:topic/RewriteWithGeneratedCode","repo":{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":17,"updated_at":"2012-05-29T18:07:54Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","html_url":"https://github.com/jacquev6/PyGithub","has_wiki":false,"has_issues":true,"fork":false,"git_url":"git://github.com/jacquev6/PyGithub.git","forks":3,"size":480,"private":false,"open_issues":14,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","mirror_url":null,"language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-29T18:07:54Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"full_name":"jacquev6/PyGithub"},"user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"d57aea6a898050115a089e6f86c5314d7daf97e8"},"number":39,"html_url":"https://github.com/jacquev6/PyGithub/pull/39","title":"Pull request to be merged by PyGithub with a custom commit message","patch_url":"https://github.com/jacquev6/PyGithub/pull/39.patch","closed_at":"2012-05-29T18:07:54Z","created_at":"2012-05-29T18:06:07Z","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"state":"closed","id":1448168,"merged_at":"2012-05-29T18:07:54Z"},{"head":{"ref":"master","label":"BeaverSoftware:master","repo":null,"user":null,"sha":"aff8a573a19f0a42380e1c0cbbc63b6dc719f38e"},"updated_at":"2012-05-27T11:03:53Z","issue_url":"https://github.com/jacquev6/PyGithub/issues/32","_links":{"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/32"},"review_comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/32/comments"},"comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/32/comments"},"issue":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/32"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/32"}},"body":"","diff_url":"https://github.com/jacquev6/PyGithub/pull/32.diff","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/32","base":{"ref":"topic/RewriteWithGeneratedCode","label":"jacquev6:topic/RewriteWithGeneratedCode","repo":{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":17,"updated_at":"2012-05-29T18:07:54Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","html_url":"https://github.com/jacquev6/PyGithub","has_wiki":false,"has_issues":true,"fork":false,"git_url":"git://github.com/jacquev6/PyGithub.git","forks":3,"size":480,"private":false,"open_issues":14,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","mirror_url":null,"language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-29T18:07:54Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"full_name":"jacquev6/PyGithub"},"user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"7ec473e793c0b63092d938707632639a41fd4369"},"number":32,"html_url":"https://github.com/jacquev6/PyGithub/pull/32","title":"Creation of a pull request from an issue is not covered by integration tests","patch_url":"https://github.com/jacquev6/PyGithub/pull/32.patch","closed_at":"2012-05-27T11:03:53Z","created_at":"2012-05-27T10:58:41Z","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"state":"closed","id":1436310,"merged_at":"2012-05-27T11:03:53Z"},{"head":{"ref":"master","label":"BeaverSoftware:master","repo":null,"user":null,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},"updated_at":"2012-05-27T10:49:27Z","issue_url":"https://github.com/jacquev6/PyGithub/issues/31","_links":{"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31"},"review_comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31/comments"},"comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/31/comments"},"issue":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/31"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/31"}},"body":"Body edited by PyGithub","diff_url":"https://github.com/jacquev6/PyGithub/pull/31.diff","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31","base":{"ref":"topic/RewriteWithGeneratedCode","label":"jacquev6:topic/RewriteWithGeneratedCode","repo":{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":17,"updated_at":"2012-05-29T18:07:54Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","html_url":"https://github.com/jacquev6/PyGithub","has_wiki":false,"has_issues":true,"fork":false,"git_url":"git://github.com/jacquev6/PyGithub.git","forks":3,"size":480,"private":false,"open_issues":14,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","mirror_url":null,"language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-29T18:07:54Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"full_name":"jacquev6/PyGithub"},"user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"ed866fc43833802ab553e5ff8581c81bb00dd433"},"number":31,"html_url":"https://github.com/jacquev6/PyGithub/pull/31","title":"Title edited by PyGithub","patch_url":"https://github.com/jacquev6/PyGithub/pull/31.patch","closed_at":"2012-05-27T10:29:07Z","created_at":"2012-05-27T09:25:36Z","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"state":"closed","id":1436215,"merged_at":"2012-05-27T10:29:07Z"}] +[{"head":{"ref":"master","label":"BeaverSoftware:master","repo":{"clone_url":"https://github.com/BeaverSoftware/PyGithub.git","has_downloads":true,"watchers":1,"updated_at":"2012-05-29T18:09:14Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/PyGithub","html_url":"https://github.com/BeaverSoftware/PyGithub","has_wiki":false,"has_issues":false,"fork":true,"git_url":"git://github.com/BeaverSoftware/PyGithub.git","forks":0,"size":428,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/PyGithub","owner":{"url":"https://api.github.com/users/BeaverSoftware","gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","login":"BeaverSoftware","id":1424031,"avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"name":"PyGithub","mirror_url":null,"language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:BeaverSoftware/PyGithub.git","pushed_at":"2012-05-29T18:05:10Z","created_at":"2012-05-29T18:03:19Z","id":4485562,"full_name":"BeaverSoftware/PyGithub"},"user":null,"sha":"ca6e7ef9ce22dc01290bb59507f24cc17f42daa4"},"updated_at":"2012-05-29T18:07:54Z","issue_url":"https://github.com/PyGithub/PyGithub/issues/39","_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/39"},"review_comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/39/comments"},"comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/39/comments"},"issue":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/39"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/39"}},"body":"","diff_url":"https://github.com/PyGithub/PyGithub/pull/39.diff","url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/39","base":{"ref":"topic/RewriteWithGeneratedCode","label":"jacquev6:topic/RewriteWithGeneratedCode","repo":{"clone_url":"https://github.com/PyGithub/PyGithub.git","has_downloads":true,"watchers":17,"updated_at":"2012-05-29T18:07:54Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub","html_url":"https://github.com/PyGithub/PyGithub","has_wiki":false,"has_issues":true,"fork":false,"git_url":"git://github.com/PyGithub/PyGithub.git","forks":3,"size":480,"private":false,"open_issues":14,"svn_url":"https://github.com/PyGithub/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","mirror_url":null,"language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:PyGithub/PyGithub.git","pushed_at":"2012-05-29T18:07:54Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"full_name":"PyGithub/PyGithub"},"user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"d57aea6a898050115a089e6f86c5314d7daf97e8"},"number":39,"html_url":"https://github.com/PyGithub/PyGithub/pull/39","title":"Pull request to be merged by PyGithub with a custom commit message","patch_url":"https://github.com/PyGithub/PyGithub/pull/39.patch","closed_at":"2012-05-29T18:07:54Z","created_at":"2012-05-29T18:06:07Z","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"state":"closed","id":1448168,"merged_at":"2012-05-29T18:07:54Z"},{"head":{"ref":"master","label":"BeaverSoftware:master","repo":null,"user":null,"sha":"aff8a573a19f0a42380e1c0cbbc63b6dc719f38e"},"updated_at":"2012-05-27T11:03:53Z","issue_url":"https://github.com/PyGithub/PyGithub/issues/32","_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/32"},"review_comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/32/comments"},"comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/32/comments"},"issue":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/32"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/32"}},"body":"","diff_url":"https://github.com/PyGithub/PyGithub/pull/32.diff","url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/32","base":{"ref":"topic/RewriteWithGeneratedCode","label":"jacquev6:topic/RewriteWithGeneratedCode","repo":{"clone_url":"https://github.com/PyGithub/PyGithub.git","has_downloads":true,"watchers":17,"updated_at":"2012-05-29T18:07:54Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub","html_url":"https://github.com/PyGithub/PyGithub","has_wiki":false,"has_issues":true,"fork":false,"git_url":"git://github.com/PyGithub/PyGithub.git","forks":3,"size":480,"private":false,"open_issues":14,"svn_url":"https://github.com/PyGithub/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","mirror_url":null,"language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:PyGithub/PyGithub.git","pushed_at":"2012-05-29T18:07:54Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"full_name":"PyGithub/PyGithub"},"user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"7ec473e793c0b63092d938707632639a41fd4369"},"number":32,"html_url":"https://github.com/PyGithub/PyGithub/pull/32","title":"Creation of a pull request from an issue is not covered by integration tests","patch_url":"https://github.com/PyGithub/PyGithub/pull/32.patch","closed_at":"2012-05-27T11:03:53Z","created_at":"2012-05-27T10:58:41Z","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"state":"closed","id":1436310,"merged_at":"2012-05-27T11:03:53Z"},{"head":{"ref":"master","label":"BeaverSoftware:master","repo":null,"user":null,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},"updated_at":"2012-05-27T10:49:27Z","issue_url":"https://github.com/PyGithub/PyGithub/issues/31","_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"},"review_comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31/comments"},"comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/31/comments"},"issue":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/31"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/31"}},"body":"Body edited by PyGithub","diff_url":"https://github.com/PyGithub/PyGithub/pull/31.diff","url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31","base":{"ref":"topic/RewriteWithGeneratedCode","label":"jacquev6:topic/RewriteWithGeneratedCode","repo":{"clone_url":"https://github.com/PyGithub/PyGithub.git","has_downloads":true,"watchers":17,"updated_at":"2012-05-29T18:07:54Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub","html_url":"https://github.com/PyGithub/PyGithub","has_wiki":false,"has_issues":true,"fork":false,"git_url":"git://github.com/PyGithub/PyGithub.git","forks":3,"size":480,"private":false,"open_issues":14,"svn_url":"https://github.com/PyGithub/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","mirror_url":null,"language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:PyGithub/PyGithub.git","pushed_at":"2012-05-29T18:07:54Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"full_name":"PyGithub/PyGithub"},"user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"sha":"ed866fc43833802ab553e5ff8581c81bb00dd433"},"number":31,"html_url":"https://github.com/PyGithub/PyGithub/pull/31","title":"Title edited by PyGithub","patch_url":"https://github.com/PyGithub/PyGithub/pull/31.patch","closed_at":"2012-05-27T10:29:07Z","created_at":"2012-05-27T09:25:36Z","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"state":"closed","id":1436215,"merged_at":"2012-05-27T10:29:07Z"}] diff --git a/tests/ReplayData/Repository.testGetStargazers.txt b/tests/ReplayData/Repository.testGetStargazers.txt index 885aab1512..cbe4d9c4c1 100644 --- a/tests/ReplayData/Repository.testGetStargazers.txt +++ b/tests/ReplayData/Repository.testGetStargazers.txt @@ -2,31 +2,31 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/stargazers +/repos/PyGithub/PyGithub/stargazers {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('content-length', '9029'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4986'), ('server', 'nginx/1.0.13'), ('last-modified', 'Fri, 07 Sep 2012 16:45:47 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last"'), ('etag', '"66120d1b3732bc2800b35a1cdfe7eeed"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 07 Sep 2012 23:25:34 GMT'), ('content-type', 'application/json; charset=utf-8')] +[('status', '200 OK'), ('content-length', '9029'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4986'), ('server', 'nginx/1.0.13'), ('last-modified', 'Fri, 07 Sep 2012 16:45:47 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last"'), ('etag', '"66120d1b3732bc2800b35a1cdfe7eeed"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 07 Sep 2012 23:25:34 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"gravatar_id":"5341a13bb6125ce7c97cf91b35209e16","avatar_url":"https://secure.gravatar.com/avatar/5341a13bb6125ce7c97cf91b35209e16?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/Stals","login":"Stals","id":472089},{"gravatar_id":"95d39bbf832ff92e9ba1775b4b702c49","avatar_url":"https://secure.gravatar.com/avatar/95d39bbf832ff92e9ba1775b4b702c49?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/att14","login":"att14","id":780132},{"gravatar_id":"1b4be24fa7e62eb508ca448da99e43d4","avatar_url":"https://secure.gravatar.com/avatar/1b4be24fa7e62eb508ca448da99e43d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/jardon-u","login":"jardon-u","id":994192},{"gravatar_id":"16a037e47cf9737e037169cbd1d2bed6","avatar_url":"https://secure.gravatar.com/avatar/16a037e47cf9737e037169cbd1d2bed6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/huxley","login":"huxley","id":839},{"gravatar_id":"a0153aaf274e18295e55e4e28f3580e6","avatar_url":"https://secure.gravatar.com/avatar/a0153aaf274e18295e55e4e28f3580e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/mikofski","login":"mikofski","id":1385621},{"gravatar_id":"4dc11d87759273f3466ab4f673bcecae","avatar_url":"https://secure.gravatar.com/avatar/4dc11d87759273f3466ab4f673bcecae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/L42y","login":"L42y","id":284820},{"gravatar_id":"71de1870e298b3488d75c4cb805f4cf7","avatar_url":"https://secure.gravatar.com/avatar/71de1870e298b3488d75c4cb805f4cf7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/fanzeyi","login":"fanzeyi","id":409951},{"gravatar_id":"b2e096f2c016d8dc168a3a5e6281b07a","avatar_url":"https://secure.gravatar.com/avatar/b2e096f2c016d8dc168a3a5e6281b07a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/abersager","login":"abersager","id":1328351},{"gravatar_id":"5479425141d61976fd0875bea7dfd7e0","avatar_url":"https://secure.gravatar.com/avatar/5479425141d61976fd0875bea7dfd7e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/waylan","login":"waylan","id":78846},{"gravatar_id":"5287a88d1c85f336fe494a694fac7635","avatar_url":"https://secure.gravatar.com/avatar/5287a88d1c85f336fe494a694fac7635?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/adericbourg","login":"adericbourg","id":615743},{"gravatar_id":"bff435ae5fc2e73d7c7c8351231e8040","avatar_url":"https://secure.gravatar.com/avatar/bff435ae5fc2e73d7c7c8351231e8040?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/tallforasmurf","login":"tallforasmurf","id":1137018},{"gravatar_id":"c6733f16eb6fc13f79c6dcfd093b347a","avatar_url":"https://secure.gravatar.com/avatar/c6733f16eb6fc13f79c6dcfd093b347a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/pvicente","login":"pvicente","id":471109},{"gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/roskakori","login":"roskakori","id":328726},{"gravatar_id":"1689abbd998128dbb3658698b429b022","avatar_url":"https://secure.gravatar.com/avatar/1689abbd998128dbb3658698b429b022?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/michaelpedersen","login":"michaelpedersen","id":22974},{"gravatar_id":"d3476956052910612c2c92966d05f9e7","avatar_url":"https://secure.gravatar.com/avatar/d3476956052910612c2c92966d05f9e7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/stefanfoulis","login":"stefanfoulis","id":14330},{"gravatar_id":"e8f8081fe45c1b793c288ecd1c1e932e","avatar_url":"https://secure.gravatar.com/avatar/e8f8081fe45c1b793c288ecd1c1e932e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/equus12","login":"equus12","id":1647505},{"gravatar_id":"0aeecc65c3e3ab73d2e171289b83d10b","avatar_url":"https://secure.gravatar.com/avatar/0aeecc65c3e3ab73d2e171289b83d10b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/JuRogn","login":"JuRogn","id":750320},{"gravatar_id":"b9d1630a90131545c699075f73da092b","avatar_url":"https://secure.gravatar.com/avatar/b9d1630a90131545c699075f73da092b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/joshmoore","login":"joshmoore","id":88113},{"gravatar_id":"1cc22835569c3fa4cfd80d1a4221ae4f","avatar_url":"https://secure.gravatar.com/avatar/1cc22835569c3fa4cfd80d1a4221ae4f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/jsilter","login":"jsilter","id":603941},{"gravatar_id":"edcf2f3ed9231baef459b49e2572d04c","avatar_url":"https://secure.gravatar.com/avatar/edcf2f3ed9231baef459b49e2572d04c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/dasapich","login":"dasapich","id":981509},{"gravatar_id":"92d26c7d74821a7ecb87a51017d394b6","avatar_url":"https://secure.gravatar.com/avatar/92d26c7d74821a7ecb87a51017d394b6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/ritratt","login":"ritratt","id":1582625},{"gravatar_id":"4a70a247b4f222894f6b9861e40f733d","avatar_url":"https://secure.gravatar.com/avatar/4a70a247b4f222894f6b9861e40f733d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/hcilab","login":"hcilab","id":1610572},{"gravatar_id":"d7773594c583cf2c9db22f403d183c5a","avatar_url":"https://secure.gravatar.com/avatar/d7773594c583cf2c9db22f403d183c5a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/vxnick","login":"vxnick","id":85934},{"gravatar_id":"3aa27c0add742f542848af3b8a9e980c","avatar_url":"https://secure.gravatar.com/avatar/3aa27c0add742f542848af3b8a9e980c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/pmuilu","login":"pmuilu","id":691799},{"gravatar_id":"85203b21c562062e5641f0b8d4b98d9b","avatar_url":"https://secure.gravatar.com/avatar/85203b21c562062e5641f0b8d4b98d9b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/herlo","login":"herlo","id":89334},{"gravatar_id":"13a30f9924fa2bd918cbb8d06dd8b55a","avatar_url":"https://secure.gravatar.com/avatar/13a30f9924fa2bd918cbb8d06dd8b55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/malexw","login":"malexw","id":577322},{"gravatar_id":"8cbc775abf80a9ef3b09b08e264337f2","avatar_url":"https://secure.gravatar.com/avatar/8cbc775abf80a9ef3b09b08e264337f2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/ahmetvurgun","login":"ahmetvurgun","id":575162},{"gravatar_id":"43df3d2f7dae415af6c2ed286c844f4a","avatar_url":"https://secure.gravatar.com/avatar/43df3d2f7dae415af6c2ed286c844f4a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/PengGu","login":"PengGu","id":1087851},{"gravatar_id":"1b5633ca7f3390376c779e5f716a3ed0","avatar_url":"https://secure.gravatar.com/avatar/1b5633ca7f3390376c779e5f716a3ed0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/cosmin","login":"cosmin","id":1358},{"gravatar_id":"579c3cd8915ee79e243c7040777c8301","avatar_url":"https://secure.gravatar.com/avatar/579c3cd8915ee79e243c7040777c8301?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/Swop","login":"Swop","id":545340}] https GET api.github.com None -/repos/jacquev6/PyGithub/stargazers?page=2 +/repos/PyGithub/PyGithub/stargazers?page=2 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('x-ratelimit-limit', '5000'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '9059'), ('server', 'nginx/1.0.13'), ('last-modified', 'Fri, 07 Sep 2012 22:31:54 GMT'), ('connection', 'keep-alive'), ('etag', '"0db198d8f435648beea21497631e1398"'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Fri, 07 Sep 2012 23:25:35 GMT'), ('x-github-media-type', 'github.beta; format=json'), ('content-type', 'application/json; charset=utf-8')] +[('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('x-ratelimit-limit', '5000'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '9059'), ('server', 'nginx/1.0.13'), ('last-modified', 'Fri, 07 Sep 2012 22:31:54 GMT'), ('connection', 'keep-alive'), ('etag', '"0db198d8f435648beea21497631e1398"'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Fri, 07 Sep 2012 23:25:35 GMT'), ('x-github-media-type', 'github.beta; format=json'), ('content-type', 'application/json; charset=utf-8')] [{"gravatar_id":"2eccc4005572c1e2b12a9c00580bc86f","login":"kennethreitz","avatar_url":"https://secure.gravatar.com/avatar/2eccc4005572c1e2b12a9c00580bc86f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/kennethreitz","id":119893},{"gravatar_id":"1fd428161c36217f233c7548d1ca3555","login":"bryandyck","avatar_url":"https://secure.gravatar.com/avatar/1fd428161c36217f233c7548d1ca3555?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/bryandyck","id":1591021},{"gravatar_id":"c07bac2e0a5d17d43fdc808cb1f528a4","login":"jason2506","avatar_url":"https://secure.gravatar.com/avatar/c07bac2e0a5d17d43fdc808cb1f528a4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/jason2506","id":875284},{"gravatar_id":"97b6ddbf90c2a4428e668691e112d096","login":"zsiciarz","avatar_url":"https://secure.gravatar.com/avatar/97b6ddbf90c2a4428e668691e112d096?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/zsiciarz","id":182194},{"gravatar_id":"71115a34d318e34f2090abd477aa4003","login":"waawal","avatar_url":"https://secure.gravatar.com/avatar/71115a34d318e34f2090abd477aa4003?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/waawal","id":961734},{"gravatar_id":"4152c08efb407dabedef5045cf3a13ae","login":"gregorynicholas","avatar_url":"https://secure.gravatar.com/avatar/4152c08efb407dabedef5045cf3a13ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/gregorynicholas","id":407650},{"gravatar_id":"0d830bf859a7ce5f6cb45bbee13672a3","login":"sente","avatar_url":"https://secure.gravatar.com/avatar/0d830bf859a7ce5f6cb45bbee13672a3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/sente","id":96457},{"gravatar_id":"8b9fc27476a9d0cb0dd32dc5a0967593","login":"richmiller55","avatar_url":"https://secure.gravatar.com/avatar/8b9fc27476a9d0cb0dd32dc5a0967593?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/richmiller55","id":704482},{"gravatar_id":"433a7fa3917a38691aa9914b61444875","login":"thouis","avatar_url":"https://secure.gravatar.com/avatar/433a7fa3917a38691aa9914b61444875?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/thouis","id":473043},{"gravatar_id":"5590032593192382075692ffe5d20dce","login":"mazubieta","avatar_url":"https://secure.gravatar.com/avatar/5590032593192382075692ffe5d20dce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/mazubieta","id":522040},{"gravatar_id":"62608ffc2aacc300c1294670add616f9","login":"michaelhood","avatar_url":"https://secure.gravatar.com/avatar/62608ffc2aacc300c1294670add616f9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/michaelhood","id":359439},{"gravatar_id":"37a932b3abe212892173784736ed6b12","login":"engie","avatar_url":"https://secure.gravatar.com/avatar/37a932b3abe212892173784736ed6b12?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/engie","id":1247},{"gravatar_id":"793789919cd04697f099e9ef1ecd6de1","login":"jtriley","avatar_url":"https://secure.gravatar.com/avatar/793789919cd04697f099e9ef1ecd6de1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/jtriley","id":46910},{"gravatar_id":"ffcbd195c843b902fcdaa9986a2a0116","login":"oangeor","avatar_url":"https://secure.gravatar.com/avatar/ffcbd195c843b902fcdaa9986a2a0116?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/oangeor","id":1707945},{"gravatar_id":"95d9145e903a668cff14194293f9d6ea","login":"coryking","avatar_url":"https://secure.gravatar.com/avatar/95d9145e903a668cff14194293f9d6ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/coryking","id":526250},{"gravatar_id":"6ac775a6679458663d13bcdf651112ea","login":"noddi","avatar_url":"https://secure.gravatar.com/avatar/6ac775a6679458663d13bcdf651112ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/noddi","id":197148},{"gravatar_id":"a62c07aeefe3d9cc2ba18861f7eeef7d","login":"alejo8591","avatar_url":"https://secure.gravatar.com/avatar/a62c07aeefe3d9cc2ba18861f7eeef7d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/alejo8591","id":1151850},{"gravatar_id":"5280f15cedf540b544eecc30fcf3027c","login":"omab","avatar_url":"https://secure.gravatar.com/avatar/5280f15cedf540b544eecc30fcf3027c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/omab","id":91022},{"gravatar_id":"4d4ea6148fef59dff9fa0fc8c309496a","login":"Carreau","avatar_url":"https://secure.gravatar.com/avatar/4d4ea6148fef59dff9fa0fc8c309496a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/Carreau","id":335567},{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/bilderbuchi","id":327442},{"gravatar_id":"a28254f42a1867eceafd3b4ddc7d5629","login":"schwa","avatar_url":"https://secure.gravatar.com/avatar/a28254f42a1867eceafd3b4ddc7d5629?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/schwa","id":20267},{"gravatar_id":"b765db0cc12b8e400caaff56c370c743","login":"rlerallut","avatar_url":"https://secure.gravatar.com/avatar/b765db0cc12b8e400caaff56c370c743?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/rlerallut","id":2106199},{"gravatar_id":"d9b44063c5b3d91195771fb663dc2e20","login":"PengHub","avatar_url":"https://secure.gravatar.com/avatar/d9b44063c5b3d91195771fb663dc2e20?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/PengHub","id":473448},{"gravatar_id":"781d78614b907aeb05ce830fe00588b8","login":"zoek1","avatar_url":"https://secure.gravatar.com/avatar/781d78614b907aeb05ce830fe00588b8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/zoek1","id":660973},{"gravatar_id":"ae8a2af3de601885a14bb71240e5d1a6","login":"xobb1t","avatar_url":"https://secure.gravatar.com/avatar/ae8a2af3de601885a14bb71240e5d1a6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/xobb1t","id":344095},{"gravatar_id":"ba6aba5790e7412dd4f6041c42a24c7e","login":"notgary","avatar_url":"https://secure.gravatar.com/avatar/ba6aba5790e7412dd4f6041c42a24c7e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/notgary","id":672656},{"gravatar_id":"abd8a1f2aa5d4899129458889b6f315b","login":"hattya","avatar_url":"https://secure.gravatar.com/avatar/abd8a1f2aa5d4899129458889b6f315b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/hattya","id":839237},{"gravatar_id":"e5bb54fb88ba91e789b2200cfc012f61","login":"ZebtinRis","avatar_url":"https://secure.gravatar.com/avatar/e5bb54fb88ba91e789b2200cfc012f61?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/ZebtinRis","id":424786},{"gravatar_id":"50a69763ef76d9b5567bf754e3d65af8","login":"aaronhall","avatar_url":"https://secure.gravatar.com/avatar/50a69763ef76d9b5567bf754e3d65af8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/aaronhall","id":264161},{"gravatar_id":"8c3c504e180e14ce1410cb384a10d759","login":"youngsterxyf","avatar_url":"https://secure.gravatar.com/avatar/8c3c504e180e14ce1410cb384a10d759?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/youngsterxyf","id":834231}] https GET api.github.com None -/repos/jacquev6/PyGithub/stargazers?page=3 +/repos/PyGithub/PyGithub/stargazers?page=3 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('content-length', '2117'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4984'), ('server', 'nginx/1.0.13'), ('last-modified', 'Fri, 07 Sep 2012 21:08:59 GMT'), ('connection', 'keep-alive'), ('etag', '"4077d03f95cfbcda281ad6df9d609ff6"'), ('link', '; rel="first", ; rel="prev"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 07 Sep 2012 23:25:35 GMT'), ('content-type', 'application/json; charset=utf-8')] +[('status', '200 OK'), ('content-length', '2117'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4984'), ('server', 'nginx/1.0.13'), ('last-modified', 'Fri, 07 Sep 2012 21:08:59 GMT'), ('connection', 'keep-alive'), ('etag', '"4077d03f95cfbcda281ad6df9d609ff6"'), ('link', '; rel="first", ; rel="prev"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 07 Sep 2012 23:25:35 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"gravatar_id":"6e77f95c96e16c0a1a96dccc7037d3b9","avatar_url":"https://secure.gravatar.com/avatar/6e77f95c96e16c0a1a96dccc7037d3b9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"ailling","url":"https://api.github.com/users/ailling","id":1420006},{"gravatar_id":"8707d63a44f6cc04e58a655f3df3105c","avatar_url":"https://secure.gravatar.com/avatar/8707d63a44f6cc04e58a655f3df3105c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"gregwjacobs","url":"https://api.github.com/users/gregwjacobs","id":1749292},{"gravatar_id":"ef80bc9208889fb5bc7270f59b2bffda","avatar_url":"https://secure.gravatar.com/avatar/ef80bc9208889fb5bc7270f59b2bffda?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"n0rmrx","url":"https://api.github.com/users/n0rmrx","id":2022188},{"gravatar_id":"fb3209e23e3f8c50da7ec2cd1a20531b","avatar_url":"https://secure.gravatar.com/avatar/fb3209e23e3f8c50da7ec2cd1a20531b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"awylie","url":"https://api.github.com/users/awylie","id":885330},{"gravatar_id":"0e5246dc215484496d9ba125c1142716","avatar_url":"https://secure.gravatar.com/avatar/0e5246dc215484496d9ba125c1142716?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"firstthumb","url":"https://api.github.com/users/firstthumb","id":66023},{"gravatar_id":"2c8bc92ef290c9d5ef7cfefa03302917","avatar_url":"https://secure.gravatar.com/avatar/2c8bc92ef290c9d5ef7cfefa03302917?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"joshbrand","url":"https://api.github.com/users/joshbrand","id":847243},{"gravatar_id":"3a90a2072fa32035016c5cc3c8584367","avatar_url":"https://secure.gravatar.com/avatar/3a90a2072fa32035016c5cc3c8584367?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"berndca","url":"https://api.github.com/users/berndca","id":466654}] diff --git a/tests/ReplayData/Repository.testGetSubscribers.txt b/tests/ReplayData/Repository.testGetSubscribers.txt index ee54a4470d..f1282ffb2c 100644 --- a/tests/ReplayData/Repository.testGetSubscribers.txt +++ b/tests/ReplayData/Repository.testGetSubscribers.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/subscribers +/repos/PyGithub/PyGithub/subscribers {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testGetTopics.txt b/tests/ReplayData/Repository.testGetTopics.txt index 45bd565781..f1ba89f171 100644 --- a/tests/ReplayData/Repository.testGetTopics.txt +++ b/tests/ReplayData/Repository.testGetTopics.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/topics +/repos/PyGithub/PyGithub/topics {'Authorization': 'Basic login_and_password_removed', 'Accept': 'application/vnd.github.mercy-preview+json', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testGetWatchers.txt b/tests/ReplayData/Repository.testGetWatchers.txt index 115642a8a8..4e01169b6c 100644 --- a/tests/ReplayData/Repository.testGetWatchers.txt +++ b/tests/ReplayData/Repository.testGetWatchers.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/watchers +/repos/PyGithub/PyGithub/watchers {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testLegacySearchIssues.txt b/tests/ReplayData/Repository.testLegacySearchIssues.txt index 206ca6ef19..91d43c79b2 100644 --- a/tests/ReplayData/Repository.testLegacySearchIssues.txt +++ b/tests/ReplayData/Repository.testLegacySearchIssues.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/legacy/issues/search/jacquev6/PyGithub/open/search +/legacy/issues/search/PyGithub/PyGithub/open/search {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('content-length', '875'), ('x-ratelimit-remaining', '4990'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1178425a2730e43d21323c7e130c863c"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Fri, 29 Jun 2012 11:38:23 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"issues":[{"number":49,"gravatar_id":"9be6ba907be1740213b69422fdf52b57","updated_at":"2012-06-28T14:13:25-07:00","user":"kukuts","votes":0,"html_url":"https://github.com/jacquev6/PyGithub/issues/49","position":1.0,"comments":4,"title":"Support new Search API","labels":["Functionalities","RequestedByUser"],"created_at":"2012-06-21T05:27:38-07:00","state":"open","body":"New API ported from v2 but i have trouble with adopting ask's library for v2 API to support v3 style for searching. \nhttp://developer.github.com/v3/search/\n\nIts not described in the page about parameters that search for repos API supports.\nThey are same as in v2 API, you can look them in ask's library.\nIn v2 was like that https://github.com/api/v2/json/repos/search/testing?start_page=2&language=Python\nIn v3 is https://api.github.com/legacy/repos/search/testing?start_page=2&language=Python"}]} +{"issues":[{"number":49,"gravatar_id":"9be6ba907be1740213b69422fdf52b57","updated_at":"2012-06-28T14:13:25-07:00","user":"kukuts","votes":0,"html_url":"https://github.com/PyGithub/PyGithub/issues/49","position":1.0,"comments":4,"title":"Support new Search API","labels":["Functionalities","RequestedByUser"],"created_at":"2012-06-21T05:27:38-07:00","state":"open","body":"New API ported from v2 but i have trouble with adopting ask's library for v2 API to support v3 style for searching. \nhttp://developer.github.com/v3/search/\n\nIts not described in the page about parameters that search for repos API supports.\nThey are same as in v2 API, you can look them in ask's library.\nIn v2 was like that https://github.com/api/v2/json/repos/search/testing?start_page=2&language=Python\nIn v3 is https://api.github.com/legacy/repos/search/testing?start_page=2&language=Python"}]} diff --git a/tests/ReplayData/Repository.testMergeUpstreamFailure.txt b/tests/ReplayData/Repository.testMergeUpstreamFailure.txt new file mode 100644 index 0000000000..e908cfc8d9 --- /dev/null +++ b/tests/ReplayData/Repository.testMergeUpstreamFailure.txt @@ -0,0 +1,32 @@ +https +GET +api.github.com +None +/repos/Felixoid/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Tue, 21 Jan 2025 18:40:41 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"2e7b991eb7ed846ce3aa4dfe29f01505bd463220ee1158a0f0646c883352c7ca"'), ('Last-Modified', 'Tue, 20 Dec 2022 02:20:35 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, read:gpg_key, repo, user, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-03-09 23:53:12 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4987'), ('X-RateLimit-Reset', '1737485997'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A2E8:18DDBD:139FB23:1426136:678FEA29')] +{"id":580357237,"node_id":"R_kgDOIpeMdQ","name":"PyGithub","full_name":"Felixoid/PyGithub","private":false,"owner":{"login":"Felixoid","id":3025537,"node_id":"MDQ6VXNlcjMwMjU1Mzc=","avatar_url":"https://avatars.githubusercontent.com/u/3025537?v=4","gravatar_id":"","url":"https://api.github.com/users/Felixoid","html_url":"https://github.com/Felixoid","followers_url":"https://api.github.com/users/Felixoid/followers","following_url":"https://api.github.com/users/Felixoid/following{/other_user}","gists_url":"https://api.github.com/users/Felixoid/gists{/gist_id}","starred_url":"https://api.github.com/users/Felixoid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Felixoid/subscriptions","organizations_url":"https://api.github.com/users/Felixoid/orgs","repos_url":"https://api.github.com/users/Felixoid/repos","events_url":"https://api.github.com/users/Felixoid/events{/privacy}","received_events_url":"https://api.github.com/users/Felixoid/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/Felixoid/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/Felixoid/PyGithub","forks_url":"https://api.github.com/repos/Felixoid/PyGithub/forks","keys_url":"https://api.github.com/repos/Felixoid/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Felixoid/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Felixoid/PyGithub/teams","hooks_url":"https://api.github.com/repos/Felixoid/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/Felixoid/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/Felixoid/PyGithub/events","assignees_url":"https://api.github.com/repos/Felixoid/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/Felixoid/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/Felixoid/PyGithub/tags","blobs_url":"https://api.github.com/repos/Felixoid/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Felixoid/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Felixoid/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/Felixoid/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Felixoid/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/Felixoid/PyGithub/languages","stargazers_url":"https://api.github.com/repos/Felixoid/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/Felixoid/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/Felixoid/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/Felixoid/PyGithub/subscription","commits_url":"https://api.github.com/repos/Felixoid/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/Felixoid/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/Felixoid/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/Felixoid/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/Felixoid/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/Felixoid/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Felixoid/PyGithub/merges","archive_url":"https://api.github.com/repos/Felixoid/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Felixoid/PyGithub/downloads","issues_url":"https://api.github.com/repos/Felixoid/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/Felixoid/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/Felixoid/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/Felixoid/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Felixoid/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/Felixoid/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/Felixoid/PyGithub/deployments","created_at":"2022-12-20T11:10:02Z","updated_at":"2022-12-20T02:20:35Z","pushed_at":"2025-01-21T18:38:55Z","git_url":"git://github.com/Felixoid/PyGithub.git","ssh_url":"git@github.com:Felixoid/PyGithub.git","clone_url":"https://github.com/Felixoid/PyGithub.git","svn_url":"https://github.com/Felixoid/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":15154,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"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":0,"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","user_view_type":"public","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":"2025-01-21T15:19:45Z","pushed_at":"2025-01-12T20:59:29Z","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":17056,"stargazers_count":7153,"watchers_count":7153,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1796,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":361,"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":1796,"open_issues":361,"watchers":7153,"default_branch":"main"},"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","user_view_type":"public","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":"2025-01-21T15:19:45Z","pushed_at":"2025-01-12T20:59:29Z","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":17056,"stargazers_count":7153,"watchers_count":7153,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1796,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":361,"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":1796,"open_issues":361,"watchers":7153,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"disabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1796,"subscribers_count":0} + +https +POST +api.github.com +None +/repos/Felixoid/PyGithub/merge-upstream +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"branch": "doesNotExist"} +404 +[('Date', 'Tue, 21 Jan 2025 18:40:41 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, read:gpg_key, repo, user, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-03-09 23:53:12 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4986'), ('X-RateLimit-Reset', '1737485997'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('Content-Encoding', 'gzip'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A2F6:23D171:12C3599:1349CA5:678FEA29')] +{"message":"Branch not found","documentation_url":"https://docs.github.com/rest/branches/branches#sync-a-fork-branch-with-the-upstream-repository","status":"404"} + +https +POST +api.github.com +None +/repos/Felixoid/PyGithub/merge-upstream +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"branch": "merge-conflict"} +409 +[('Date', 'Tue, 21 Jan 2025 18:40:41 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '171'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, read:gpg_key, repo, user, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-03-09 23:53:12 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4985'), ('X-RateLimit-Reset', '1737485997'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A2FE:C443F:13B9A41:1440045:678FEA29')] +{"message":"There are merge conflicts","documentation_url":"https://docs.github.com/rest/branches/branches#sync-a-fork-branch-with-the-upstream-repository","status":"409"} diff --git a/tests/ReplayData/Repository.testMergeUpstreamSuccess.txt b/tests/ReplayData/Repository.testMergeUpstreamSuccess.txt new file mode 100644 index 0000000000..1e70b9b769 --- /dev/null +++ b/tests/ReplayData/Repository.testMergeUpstreamSuccess.txt @@ -0,0 +1,32 @@ +https +GET +api.github.com +None +/repos/Felixoid/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Wed, 22 Jan 2025 09:56:12 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"7ca48e74b8d56230721b6182619719837b8011c385961accf6631700edc5d151"'), ('Last-Modified', 'Tue, 20 Dec 2022 02:20:35 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, read:gpg_key, repo, user, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-03-09 23:53:12 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4988'), ('X-RateLimit-Reset', '1737542557'), ('X-RateLimit-Used', '12'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '91EC:E6132:34E1A0:3635F3:6790C0BC')] +{"id":580357237,"node_id":"R_kgDOIpeMdQ","name":"PyGithub","full_name":"Felixoid/PyGithub","private":false,"owner":{"login":"Felixoid","id":3025537,"node_id":"MDQ6VXNlcjMwMjU1Mzc=","avatar_url":"https://avatars.githubusercontent.com/u/3025537?v=4","gravatar_id":"","url":"https://api.github.com/users/Felixoid","html_url":"https://github.com/Felixoid","followers_url":"https://api.github.com/users/Felixoid/followers","following_url":"https://api.github.com/users/Felixoid/following{/other_user}","gists_url":"https://api.github.com/users/Felixoid/gists{/gist_id}","starred_url":"https://api.github.com/users/Felixoid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Felixoid/subscriptions","organizations_url":"https://api.github.com/users/Felixoid/orgs","repos_url":"https://api.github.com/users/Felixoid/repos","events_url":"https://api.github.com/users/Felixoid/events{/privacy}","received_events_url":"https://api.github.com/users/Felixoid/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/Felixoid/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/Felixoid/PyGithub","forks_url":"https://api.github.com/repos/Felixoid/PyGithub/forks","keys_url":"https://api.github.com/repos/Felixoid/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Felixoid/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Felixoid/PyGithub/teams","hooks_url":"https://api.github.com/repos/Felixoid/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/Felixoid/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/Felixoid/PyGithub/events","assignees_url":"https://api.github.com/repos/Felixoid/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/Felixoid/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/Felixoid/PyGithub/tags","blobs_url":"https://api.github.com/repos/Felixoid/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Felixoid/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Felixoid/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/Felixoid/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Felixoid/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/Felixoid/PyGithub/languages","stargazers_url":"https://api.github.com/repos/Felixoid/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/Felixoid/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/Felixoid/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/Felixoid/PyGithub/subscription","commits_url":"https://api.github.com/repos/Felixoid/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/Felixoid/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/Felixoid/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/Felixoid/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/Felixoid/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/Felixoid/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Felixoid/PyGithub/merges","archive_url":"https://api.github.com/repos/Felixoid/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Felixoid/PyGithub/downloads","issues_url":"https://api.github.com/repos/Felixoid/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/Felixoid/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/Felixoid/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/Felixoid/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Felixoid/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/Felixoid/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/Felixoid/PyGithub/deployments","created_at":"2022-12-20T11:10:02Z","updated_at":"2022-12-20T02:20:35Z","pushed_at":"2025-01-22T09:56:06Z","git_url":"git://github.com/Felixoid/PyGithub.git","ssh_url":"git@github.com:Felixoid/PyGithub.git","clone_url":"https://github.com/Felixoid/PyGithub.git","svn_url":"https://github.com/Felixoid/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":15346,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"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":0,"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","user_view_type":"public","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":"2025-01-22T06:57:23Z","pushed_at":"2025-01-12T20:59:29Z","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":17056,"stargazers_count":7154,"watchers_count":7154,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1796,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":361,"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":1796,"open_issues":361,"watchers":7154,"default_branch":"main"},"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","user_view_type":"public","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":"2025-01-22T06:57:23Z","pushed_at":"2025-01-12T20:59:29Z","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":17056,"stargazers_count":7154,"watchers_count":7154,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1796,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":361,"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":1796,"open_issues":361,"watchers":7154,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"disabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1796,"subscribers_count":0} + +https +POST +api.github.com +None +/repos/Felixoid/PyGithub/merge-upstream +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"branch": "main"} +200 +[('Date', 'Wed, 22 Jan 2025 09:56:13 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"459a933bc6dcab08616ba2a4d54e7f4aec05605d05305d3735291839de476238"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, read:gpg_key, repo, user, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-03-09 23:53:12 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4987'), ('X-RateLimit-Reset', '1737542557'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '91FC:113375:375210:38A664:6790C0BC')] +{"message":"Successfully fetched and fast-forwarded from upstream PyGithub:main.","merge_type":"fast-forward","base_branch":"PyGithub:main"} + +https +POST +api.github.com +None +/repos/Felixoid/PyGithub/merge-upstream +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"branch": "main"} +200 +[('Date', 'Wed, 22 Jan 2025 09:56:13 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"0e5d43ecbda2d349b683d5e9fa33a88cc2c0e5f311272b7c556ac6d0fa4e52a7"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, read:gpg_key, repo, user, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-03-09 23:53:12 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4986'), ('X-RateLimit-Reset', '1737542557'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '920A:2CCEBD:33AA0C:34FE73:6790C0BD')] +{"message":"This branch is not behind the upstream PyGithub:main.","merge_type":"none","base_branch":"PyGithub:main"} diff --git a/tests/ReplayData/Repository.testMergeWithConflict.txt b/tests/ReplayData/Repository.testMergeWithConflict.txt index fe747d4105..18f33c5ccc 100644 --- a/tests/ReplayData/Repository.testMergeWithConflict.txt +++ b/tests/ReplayData/Repository.testMergeWithConflict.txt @@ -2,7 +2,7 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/merges +/repos/PyGithub/PyGithub/merges {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"head": "branchForHead", "base": "branchForBase"} 409 diff --git a/tests/ReplayData/Repository.testMergeWithMessage.txt b/tests/ReplayData/Repository.testMergeWithMessage.txt index 0f58b43acf..2fd66ed9cd 100644 --- a/tests/ReplayData/Repository.testMergeWithMessage.txt +++ b/tests/ReplayData/Repository.testMergeWithMessage.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/merges +/repos/PyGithub/PyGithub/merges {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"commit_message": "Commit message created by PyGithub", "head": "branchForHead", "base": "branchForBase"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4988'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('content-length', '1670'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"f31a393604d4a8295a461319eb518495"'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/commits/231ab813ab5ccbdc102ee12e663c491794ccc32f'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Sat, 08 Sep 2012 12:21:08 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"sha":"231ab813ab5ccbdc102ee12e663c491794ccc32f","author":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","id":327146},"commit":{"message":"Commit message created by PyGithub","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-09-08T05:21:08-07:00"},"comment_count":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/231ab813ab5ccbdc102ee12e663c491794ccc32f","tree":{"sha":"97223b0c33ab29dd9aa038248dc982354f7d69a1","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/97223b0c33ab29dd9aa038248dc982354f7d69a1"},"committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-09-08T05:21:08-07:00"}},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/231ab813ab5ccbdc102ee12e663c491794ccc32f","parents":[{"sha":"3be2e82b400f3398c05b68f00a4427604e74c7c5","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3be2e82b400f3398c05b68f00a4427604e74c7c5"},{"sha":"7a19732ca92cd80fd9da31fa590d67729d6b44df","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7a19732ca92cd80fd9da31fa590d67729d6b44df"}],"committer":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","id":327146}} +[('status', '201 Created'), ('x-ratelimit-remaining', '4988'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('content-length', '1670'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"f31a393604d4a8295a461319eb518495"'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/commits/231ab813ab5ccbdc102ee12e663c491794ccc32f'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Sat, 08 Sep 2012 12:21:08 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"sha":"231ab813ab5ccbdc102ee12e663c491794ccc32f","author":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","id":327146},"commit":{"message":"Commit message created by PyGithub","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-09-08T05:21:08-07:00"},"comment_count":0,"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/231ab813ab5ccbdc102ee12e663c491794ccc32f","tree":{"sha":"97223b0c33ab29dd9aa038248dc982354f7d69a1","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/97223b0c33ab29dd9aa038248dc982354f7d69a1"},"committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-09-08T05:21:08-07:00"}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/231ab813ab5ccbdc102ee12e663c491794ccc32f","parents":[{"sha":"3be2e82b400f3398c05b68f00a4427604e74c7c5","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/3be2e82b400f3398c05b68f00a4427604e74c7c5"},{"sha":"7a19732ca92cd80fd9da31fa590d67729d6b44df","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/7a19732ca92cd80fd9da31fa590d67729d6b44df"}],"committer":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","id":327146}} diff --git a/tests/ReplayData/Repository.testMergeWithNothingToDo.txt b/tests/ReplayData/Repository.testMergeWithNothingToDo.txt index 643cae5d46..39c703945e 100644 --- a/tests/ReplayData/Repository.testMergeWithNothingToDo.txt +++ b/tests/ReplayData/Repository.testMergeWithNothingToDo.txt @@ -2,7 +2,7 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/merges +/repos/PyGithub/PyGithub/merges {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"commit_message": "Commit message created by PyGithub", "head": "branchForHead", "base": "branchForBase"} 204 diff --git a/tests/ReplayData/Repository.testMergeWithoutMessage.txt b/tests/ReplayData/Repository.testMergeWithoutMessage.txt index 10e535f407..e41979102b 100644 --- a/tests/ReplayData/Repository.testMergeWithoutMessage.txt +++ b/tests/ReplayData/Repository.testMergeWithoutMessage.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/merges +/repos/PyGithub/PyGithub/merges {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"head": "branchForHead", "base": "branchForBase"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4991'), ('x-ratelimit-limit', '5000'), ('x-content-type-options', 'nosniff'), ('content-length', '1674'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"9a4000ce96f4c4d47922c7c8896d894f"'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/commits/a01fa060858e3aced1fe4ad74798295376e76fd4'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Sat, 08 Sep 2012 12:19:40 GMT'), ('x-github-media-type', 'github.beta; format=json'), ('content-type', 'application/json; charset=utf-8')] -{"sha":"a01fa060858e3aced1fe4ad74798295376e76fd4","committer":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"author":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"parents":[{"sha":"3be2e82b400f3398c05b68f00a4427604e74c7c5","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3be2e82b400f3398c05b68f00a4427604e74c7c5"},{"sha":"7a19732ca92cd80fd9da31fa590d67729d6b44df","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7a19732ca92cd80fd9da31fa590d67729d6b44df"}],"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a01fa060858e3aced1fe4ad74798295376e76fd4","commit":{"committer":{"email":"vincent@vincent-jacques.net","date":"2012-09-08T05:19:40-07:00","name":"Vincent Jacques"},"author":{"email":"vincent@vincent-jacques.net","date":"2012-09-08T05:19:40-07:00","name":"Vincent Jacques"},"message":"Merge branchForHead into branchForBase","tree":{"sha":"97223b0c33ab29dd9aa038248dc982354f7d69a1","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/97223b0c33ab29dd9aa038248dc982354f7d69a1"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a01fa060858e3aced1fe4ad74798295376e76fd4","comment_count":0}} +[('status', '201 Created'), ('x-ratelimit-remaining', '4991'), ('x-ratelimit-limit', '5000'), ('x-content-type-options', 'nosniff'), ('content-length', '1674'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"9a4000ce96f4c4d47922c7c8896d894f"'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/commits/a01fa060858e3aced1fe4ad74798295376e76fd4'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Sat, 08 Sep 2012 12:19:40 GMT'), ('x-github-media-type', 'github.beta; format=json'), ('content-type', 'application/json; charset=utf-8')] +{"sha":"a01fa060858e3aced1fe4ad74798295376e76fd4","committer":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"author":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"parents":[{"sha":"3be2e82b400f3398c05b68f00a4427604e74c7c5","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/3be2e82b400f3398c05b68f00a4427604e74c7c5"},{"sha":"7a19732ca92cd80fd9da31fa590d67729d6b44df","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/7a19732ca92cd80fd9da31fa590d67729d6b44df"}],"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a01fa060858e3aced1fe4ad74798295376e76fd4","commit":{"committer":{"email":"vincent@vincent-jacques.net","date":"2012-09-08T05:19:40-07:00","name":"Vincent Jacques"},"author":{"email":"vincent@vincent-jacques.net","date":"2012-09-08T05:19:40-07:00","name":"Vincent Jacques"},"message":"Merge branchForHead into branchForBase","tree":{"sha":"97223b0c33ab29dd9aa038248dc982354f7d69a1","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/97223b0c33ab29dd9aa038248dc982354f7d69a1"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/a01fa060858e3aced1fe4ad74798295376e76fd4","comment_count":0}} diff --git a/tests/ReplayData/Repository.testRemoveAutolink.txt b/tests/ReplayData/Repository.testRemoveAutolink.txt index 99b5888815..74e63424a5 100644 --- a/tests/ReplayData/Repository.testRemoveAutolink.txt +++ b/tests/ReplayData/Repository.testRemoveAutolink.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/autolinks/209611 +/repos/PyGithub/PyGithub/autolinks/209611 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/Repository.testRemoveInvitation.txt b/tests/ReplayData/Repository.testRemoveInvitation.txt index 682ccb1734..ebb98d1ff8 100644 --- a/tests/ReplayData/Repository.testRemoveInvitation.txt +++ b/tests/ReplayData/Repository.testRemoveInvitation.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/invitations/17285388 +/repos/PyGithub/PyGithub/invitations/17285388 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/Repository.testRenameBranchObject.txt b/tests/ReplayData/Repository.testRenameBranchObject.txt index 17a0f48ffe..f0824edb31 100644 --- a/tests/ReplayData/Repository.testRenameBranchObject.txt +++ b/tests/ReplayData/Repository.testRenameBranchObject.txt @@ -2,20 +2,20 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/branches/neat-new-feature +/repos/PyGithub/PyGithub/branches/neat-new-feature {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('Server', 'GitHub.com'), ('Date', 'Sat, 23 Oct 2021 04:32:06 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/"7b4b9377dbba34db4d606bcfaadf8997f690d2fb7afc15982857269ba17e8a90"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1634967125'), ('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, 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', '82FE:7C71:69CE0C:7107D9:61739046')] -{"name":"neat-new-feature","commit":{"sha":"dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","node_id":"C_kwDOB7W4ZNoAKGRiZmJmN2YwN2I4MWQ2MTZkNGRhMDMyYmNmYTdjYTkwZGNkNzk1NzU","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2021-10-21T04:06:06Z"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2021-10-21T04:06:06Z"},"message":"WIP: branch rename","tree":{"sha":"81e30fe50ff2b1c8e8cb819d181b3a285e9a9c94","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/81e30fe50ff2b1c8e8cb819d181b3a285e9a9c94"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","html_url":"https://github.com/jacquev6/PyGithub/commit/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575/comments","author":{"login":"jacquev6","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"93b92cd2fce560080dc66aef3b94427623046c5d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/93b92cd2fce560080dc66aef3b94427623046c5d","html_url":"https://github.com/jacquev6/PyGithub/commit/93b92cd2fce560080dc66aef3b94427623046c5d"}]},"_links":{"self":"https://api.github.com/repos/jacquev6/PyGithub/branches/neat-new-feature","html":"https://github.com/jacquev6/PyGithub/tree/neat-new-feature"},"protected":false,"protection":{"enabled":false,"required_status_checks":{"enforcement_level":"off","contexts":[]}},"protection_url":"https://api.github.com/repos/jacquev6/PyGithub/branches/neat-new-feature/protection"} +{"name":"neat-new-feature","commit":{"sha":"dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","node_id":"C_kwDOB7W4ZNoAKGRiZmJmN2YwN2I4MWQ2MTZkNGRhMDMyYmNmYTdjYTkwZGNkNzk1NzU","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2021-10-21T04:06:06Z"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2021-10-21T04:06:06Z"},"message":"WIP: branch rename","tree":{"sha":"81e30fe50ff2b1c8e8cb819d181b3a285e9a9c94","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/81e30fe50ff2b1c8e8cb819d181b3a285e9a9c94"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","html_url":"https://github.com/PyGithub/PyGithub/commit/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575/comments","author":{"login":"jacquev6","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"93b92cd2fce560080dc66aef3b94427623046c5d","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/93b92cd2fce560080dc66aef3b94427623046c5d","html_url":"https://github.com/PyGithub/PyGithub/commit/93b92cd2fce560080dc66aef3b94427623046c5d"}]},"_links":{"self":"https://api.github.com/repos/PyGithub/PyGithub/branches/neat-new-feature","html":"https://github.com/PyGithub/PyGithub/tree/neat-new-feature"},"protected":false,"protection":{"enabled":false,"required_status_checks":{"enforcement_level":"off","contexts":[]}},"protection_url":"https://api.github.com/repos/PyGithub/PyGithub/branches/neat-new-feature/protection"} https POST api.github.com None -/repos/jacquev6/PyGithub/branches/neat-new-feature/rename +/repos/PyGithub/PyGithub/branches/neat-new-feature/rename {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"new_name": "terrible-idea"} 201 [('Server', 'GitHub.com'), ('Date', 'Sat, 23 Oct 2021 04:32:07 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '3748'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"21b924f024389f2dad56ec7b61664d88fa432e59b6068797da15b3b1718799a1"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1634967125'), ('X-RateLimit-Used', '4'), ('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, 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'"), ('X-GitHub-Request-Id', '8302:7C71:69CE3F:710812:61739046')] -{"name":"terrible-idea","commit":{"sha":"dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","node_id":"C_kwDOB7W4ZNoAKGRiZmJmN2YwN2I4MWQ2MTZkNGRhMDMyYmNmYTdjYTkwZGNkNzk1NzU","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2021-10-21T04:06:06Z"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2021-10-21T04:06:06Z"},"message":"WIP: branch rename","tree":{"sha":"81e30fe50ff2b1c8e8cb819d181b3a285e9a9c94","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/81e30fe50ff2b1c8e8cb819d181b3a285e9a9c94"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","html_url":"https://github.com/jacquev6/PyGithub/commit/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575/comments","author":{"login":"jacquev6","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"93b92cd2fce560080dc66aef3b94427623046c5d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/93b92cd2fce560080dc66aef3b94427623046c5d","html_url":"https://github.com/jacquev6/PyGithub/commit/93b92cd2fce560080dc66aef3b94427623046c5d"}]},"_links":{"self":"https://api.github.com/repos/jacquev6/PyGithub/branches/terrible-idea","html":"https://github.com/jacquev6/PyGithub/tree/terrible-idea"},"protected":false,"protection":{"enabled":false,"required_status_checks":{"enforcement_level":"off","contexts":[]}},"protection_url":"https://api.github.com/repos/jacquev6/PyGithub/branches/terrible-idea/protection"} +{"name":"terrible-idea","commit":{"sha":"dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","node_id":"C_kwDOB7W4ZNoAKGRiZmJmN2YwN2I4MWQ2MTZkNGRhMDMyYmNmYTdjYTkwZGNkNzk1NzU","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2021-10-21T04:06:06Z"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2021-10-21T04:06:06Z"},"message":"WIP: branch rename","tree":{"sha":"81e30fe50ff2b1c8e8cb819d181b3a285e9a9c94","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/81e30fe50ff2b1c8e8cb819d181b3a285e9a9c94"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","html_url":"https://github.com/PyGithub/PyGithub/commit/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575/comments","author":{"login":"jacquev6","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"93b92cd2fce560080dc66aef3b94427623046c5d","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/93b92cd2fce560080dc66aef3b94427623046c5d","html_url":"https://github.com/PyGithub/PyGithub/commit/93b92cd2fce560080dc66aef3b94427623046c5d"}]},"_links":{"self":"https://api.github.com/repos/PyGithub/PyGithub/branches/terrible-idea","html":"https://github.com/PyGithub/PyGithub/tree/terrible-idea"},"protected":false,"protection":{"enabled":false,"required_status_checks":{"enforcement_level":"off","contexts":[]}},"protection_url":"https://api.github.com/repos/PyGithub/PyGithub/branches/terrible-idea/protection"} diff --git a/tests/ReplayData/Repository.testRenameBranchString.txt b/tests/ReplayData/Repository.testRenameBranchString.txt index c6805b5319..7163116df9 100644 --- a/tests/ReplayData/Repository.testRenameBranchString.txt +++ b/tests/ReplayData/Repository.testRenameBranchString.txt @@ -2,9 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/branches/neat-new-feature/rename +/repos/PyGithub/PyGithub/branches/neat-new-feature/rename {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"new_name": "terrible-idea"} 201 [('Server', 'GitHub.com'), ('Date', 'Sat, 23 Oct 2021 04:32:07 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '3748'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"21b924f024389f2dad56ec7b61664d88fa432e59b6068797da15b3b1718799a1"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1634967125'), ('X-RateLimit-Used', '4'), ('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, 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'"), ('X-GitHub-Request-Id', '8302:7C71:69CE3F:710812:61739046')] -{"name":"terrible-idea","commit":{"sha":"dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","node_id":"C_kwDOB7W4ZNoAKGRiZmJmN2YwN2I4MWQ2MTZkNGRhMDMyYmNmYTdjYTkwZGNkNzk1NzU","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2021-10-21T04:06:06Z"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2021-10-21T04:06:06Z"},"message":"WIP: branch rename","tree":{"sha":"81e30fe50ff2b1c8e8cb819d181b3a285e9a9c94","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/81e30fe50ff2b1c8e8cb819d181b3a285e9a9c94"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","html_url":"https://github.com/jacquev6/PyGithub/commit/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575/comments","author":{"login":"jacquev6","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"93b92cd2fce560080dc66aef3b94427623046c5d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/93b92cd2fce560080dc66aef3b94427623046c5d","html_url":"https://github.com/jacquev6/PyGithub/commit/93b92cd2fce560080dc66aef3b94427623046c5d"}]},"_links":{"self":"https://api.github.com/repos/jacquev6/PyGithub/branches/terrible-idea","html":"https://github.com/jacquev6/PyGithub/tree/terrible-idea"},"protected":false,"protection":{"enabled":false,"required_status_checks":{"enforcement_level":"off","contexts":[]}},"protection_url":"https://api.github.com/repos/jacquev6/PyGithub/branches/terrible-idea/protection"} +{"name":"terrible-idea","commit":{"sha":"dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","node_id":"C_kwDOB7W4ZNoAKGRiZmJmN2YwN2I4MWQ2MTZkNGRhMDMyYmNmYTdjYTkwZGNkNzk1NzU","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2021-10-21T04:06:06Z"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2021-10-21T04:06:06Z"},"message":"WIP: branch rename","tree":{"sha":"81e30fe50ff2b1c8e8cb819d181b3a285e9a9c94","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/81e30fe50ff2b1c8e8cb819d181b3a285e9a9c94"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","html_url":"https://github.com/PyGithub/PyGithub/commit/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dbfbf7f07b81d616d4da032bcfa7ca90dcd79575/comments","author":{"login":"jacquev6","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"committer":{"login":"jacquev6","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false},"parents":[{"sha":"93b92cd2fce560080dc66aef3b94427623046c5d","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/93b92cd2fce560080dc66aef3b94427623046c5d","html_url":"https://github.com/PyGithub/PyGithub/commit/93b92cd2fce560080dc66aef3b94427623046c5d"}]},"_links":{"self":"https://api.github.com/repos/PyGithub/PyGithub/branches/terrible-idea","html":"https://github.com/PyGithub/PyGithub/tree/terrible-idea"},"protected":false,"protection":{"enabled":false,"required_status_checks":{"enforcement_level":"off","contexts":[]}},"protection_url":"https://api.github.com/repos/PyGithub/PyGithub/branches/terrible-idea/protection"} diff --git a/tests/ReplayData/Repository.testReplaceTopics.txt b/tests/ReplayData/Repository.testReplaceTopics.txt index 758b94ae43..6b1887a1de 100644 --- a/tests/ReplayData/Repository.testReplaceTopics.txt +++ b/tests/ReplayData/Repository.testReplaceTopics.txt @@ -2,7 +2,7 @@ https PUT api.github.com None -/repos/jacquev6/PyGithub/topics +/repos/PyGithub/PyGithub/topics {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'Accept': 'application/vnd.github.mercy-preview+json', 'User-Agent': 'PyGithub/Python'} {"names": ["github", "testing"]} 200 diff --git a/tests/ReplayData/Repository.testRepoVariable.txt b/tests/ReplayData/Repository.testRepoVariable.txt index 313c72c585..ae23725358 100644 --- a/tests/ReplayData/Repository.testRepoVariable.txt +++ b/tests/ReplayData/Repository.testRepoVariable.txt @@ -2,7 +2,7 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/actions/variables +/repos/PyGithub/PyGithub/actions/variables {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"name": "variable_name", "value": "variable-value"} 201 @@ -13,7 +13,7 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub/actions/variables/variable_name +/repos/PyGithub/PyGithub/actions/variables/variable_name {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"name": "variable_name", "value": "variable-value123"} 204 @@ -24,7 +24,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/actions/variables/variable_name +/repos/PyGithub/PyGithub/actions/variables/variable_name {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/Repository.testSearchIssues.txt b/tests/ReplayData/Repository.testSearchIssues.txt index d539f79726..22874434a6 100644 --- a/tests/ReplayData/Repository.testSearchIssues.txt +++ b/tests/ReplayData/Repository.testSearchIssues.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/legacy/issues/search/jacquev6/PyGithub/open/search +/legacy/issues/search/PyGithub/PyGithub/open/search {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('content-length', '875'), ('x-ratelimit-limit', '5000'), ('x-ratelimit-remaining', '4985'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"2e397de657b33283e77ef12a21326d0d"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Thu, 28 Jun 2012 20:39:57 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"issues":[{"title":"Support new Search API","number":49,"user":"kukuts","html_url":"https://github.com/jacquev6/PyGithub/issues/49","labels":["Functionalities","RequestedByUser"],"body":"New API ported from v2 but i have trouble with adopting ask's library for v2 API to support v3 style for searching. \nhttp://developer.github.com/v3/search/\n\nIts not described in the page about parameters that search for repos API supports.\nThey are same as in v2 API, you can look them in ask's library.\nIn v2 was like that https://github.com/api/v2/json/repos/search/testing?start_page=2&language=Python\nIn v3 is https://api.github.com/legacy/repos/search/testing?start_page=2&language=Python","votes":0,"comments":2,"updated_at":"2012-06-25T12:31:14-07:00","gravatar_id":"9be6ba907be1740213b69422fdf52b57","position":1.0,"state":"open","created_at":"2012-06-21T05:27:38-07:00"}]} +{"issues":[{"title":"Support new Search API","number":49,"user":"kukuts","html_url":"https://github.com/PyGithub/PyGithub/issues/49","labels":["Functionalities","RequestedByUser"],"body":"New API ported from v2 but i have trouble with adopting ask's library for v2 API to support v3 style for searching. \nhttp://developer.github.com/v3/search/\n\nIts not described in the page about parameters that search for repos API supports.\nThey are same as in v2 API, you can look them in ask's library.\nIn v2 was like that https://github.com/api/v2/json/repos/search/testing?start_page=2&language=Python\nIn v3 is https://api.github.com/legacy/repos/search/testing?start_page=2&language=Python","votes":0,"comments":2,"updated_at":"2012-06-25T12:31:14-07:00","gravatar_id":"9be6ba907be1740213b69422fdf52b57","position":1.0,"state":"open","created_at":"2012-06-21T05:27:38-07:00"}]} diff --git a/tests/ReplayData/Repository.testStatisticsCodeFrequency.txt b/tests/ReplayData/Repository.testStatisticsCodeFrequency.txt index 06d38e5d05..5913befa08 100644 --- a/tests/ReplayData/Repository.testStatisticsCodeFrequency.txt +++ b/tests/ReplayData/Repository.testStatisticsCodeFrequency.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/stats/code_frequency +/repos/PyGithub/PyGithub/stats/code_frequency {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 202 @@ -13,7 +13,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/stats/code_frequency +/repos/PyGithub/PyGithub/stats/code_frequency {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testStatisticsCommitActivity.txt b/tests/ReplayData/Repository.testStatisticsCommitActivity.txt index ea75e487ac..9ae5fd182c 100644 --- a/tests/ReplayData/Repository.testStatisticsCommitActivity.txt +++ b/tests/ReplayData/Repository.testStatisticsCommitActivity.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/stats/commit_activity +/repos/PyGithub/PyGithub/stats/commit_activity {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 202 @@ -13,7 +13,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/stats/commit_activity +/repos/PyGithub/PyGithub/stats/commit_activity {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testStatisticsContributors.txt b/tests/ReplayData/Repository.testStatisticsContributors.txt index 374c397b9b..8e50fb4448 100644 --- a/tests/ReplayData/Repository.testStatisticsContributors.txt +++ b/tests/ReplayData/Repository.testStatisticsContributors.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/stats/contributors +/repos/PyGithub/PyGithub/stats/contributors {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 202 @@ -13,7 +13,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/stats/contributors +/repos/PyGithub/PyGithub/stats/contributors {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testStatisticsParticipation.txt b/tests/ReplayData/Repository.testStatisticsParticipation.txt index 04140574db..5ed3e92bbe 100644 --- a/tests/ReplayData/Repository.testStatisticsParticipation.txt +++ b/tests/ReplayData/Repository.testStatisticsParticipation.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/stats/participation +/repos/PyGithub/PyGithub/stats/participation {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 202 @@ -13,7 +13,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/stats/participation +/repos/PyGithub/PyGithub/stats/participation {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testStatisticsPunchCard.txt b/tests/ReplayData/Repository.testStatisticsPunchCard.txt index db8f298e40..45e9265157 100644 --- a/tests/ReplayData/Repository.testStatisticsPunchCard.txt +++ b/tests/ReplayData/Repository.testStatisticsPunchCard.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/stats/punch_card +/repos/PyGithub/PyGithub/stats/punch_card {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 202 @@ -13,7 +13,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/stats/punch_card +/repos/PyGithub/PyGithub/stats/punch_card {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Repository.testSubscribePubSubHubbub.txt b/tests/ReplayData/Repository.testSubscribePubSubHubbub.txt index d1699f2c01..4438d8ee49 100644 --- a/tests/ReplayData/Repository.testSubscribePubSubHubbub.txt +++ b/tests/ReplayData/Repository.testSubscribePubSubHubbub.txt @@ -4,6 +4,6 @@ api.github.com None /hub {'Content-Type': 'multipart/form-data; boundary=----------------------------3c3ba8b523b2', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.callback"http://requestb.in/1bc1sc61------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.topic"https://github.com/jacquev6/PyGithub/events/push------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.mode"subscribe------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.secret"my_secret------------------------------3c3ba8b523b2-- +------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.callback"http://requestb.in/1bc1sc61------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.topic"https://github.com/PyGithub/PyGithub/events/push------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.mode"subscribe------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.secret"my_secret------------------------------3c3ba8b523b2-- 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4997'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('cache-control', ''), ('date', 'Tue, 05 Feb 2013 18:57:27 GMT')] diff --git a/tests/ReplayData/Repository.testTransferOwnership.txt b/tests/ReplayData/Repository.testTransferOwnership.txt new file mode 100644 index 0000000000..b88ac9c9af --- /dev/null +++ b/tests/ReplayData/Repository.testTransferOwnership.txt @@ -0,0 +1,10 @@ +https +POST +api.github.com +None +/repos/PyGithub/PyGithub/transfer +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"new_owner": "An-Nie-Tan-99", "new_name": "PyGithub-test"} +202 +[('Date', 'Tue, 17 Dec 2024 04:20:13 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '4196'), ('X-OAuth-Scopes', 'admin:org, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2024-12-23 03:25:37 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4930'), ('X-RateLimit-Reset', '1734410505'), ('X-RateLimit-Used', '70'), ('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'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A1E8:314675:28EA74F:2E80731:6760FBFD')] +{"id":901269070,"node_id":"R_kgDONbhGTg","name":"PyGithub","full_name":"tanannie22/PyGithub","owner":{"login":"tanannie22","id":121005973,"node_id":"U_kgDOBzZnlQ","avatar_url":"https://avatars.githubusercontent.com/u/121005973?v=4","gravatar_id":"","url":"https://api.github.com/users/tanannie22","html_url":"https://github.com/tanannie22","followers_url":"https://api.github.com/users/tanannie22/followers","following_url":"https://api.github.com/users/tanannie22/following{/other_user}","gists_url":"https://api.github.com/users/tanannie22/gists{/gist_id}","starred_url":"https://api.github.com/users/tanannie22/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tanannie22/subscriptions","organizations_url":"https://api.github.com/users/tanannie22/orgs","repos_url":"https://api.github.com/users/tanannie22/repos","events_url":"https://api.github.com/users/tanannie22/events{/privacy}","received_events_url":"https://api.github.com/users/tanannie22/received_events","type":"User","user_view_type":"public","site_admin":false},"private":false,"html_url":"https://github.com/tanannie22/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/tanannie22/PyGithub","topics":[],"forks_url":"https://api.github.com/repos/tanannie22/PyGithub/forks","keys_url":"https://api.github.com/repos/tanannie22/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tanannie22/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tanannie22/PyGithub/teams","hooks_url":"https://api.github.com/repos/tanannie22/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/tanannie22/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/tanannie22/PyGithub/events","assignees_url":"https://api.github.com/repos/tanannie22/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/tanannie22/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/tanannie22/PyGithub/tags","blobs_url":"https://api.github.com/repos/tanannie22/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tanannie22/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tanannie22/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/tanannie22/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tanannie22/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/tanannie22/PyGithub/languages","stargazers_url":"https://api.github.com/repos/tanannie22/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/tanannie22/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/tanannie22/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/tanannie22/PyGithub/subscription","commits_url":"https://api.github.com/repos/tanannie22/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/tanannie22/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/tanannie22/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/tanannie22/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/tanannie22/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/tanannie22/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tanannie22/PyGithub/merges","archive_url":"https://api.github.com/repos/tanannie22/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tanannie22/PyGithub/downloads","issues_url":"https://api.github.com/repos/tanannie22/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/tanannie22/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/tanannie22/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/tanannie22/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tanannie22/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/tanannie22/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/tanannie22/PyGithub/deployments"} diff --git a/tests/ReplayData/Repository.testTransferOwnershipInvalidOwner.txt b/tests/ReplayData/Repository.testTransferOwnershipInvalidOwner.txt new file mode 100644 index 0000000000..e117ca99dd --- /dev/null +++ b/tests/ReplayData/Repository.testTransferOwnershipInvalidOwner.txt @@ -0,0 +1,10 @@ +https +POST +api.github.com +None +/repos/PyGithub/PyGithub/transfer +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"new_owner": "new_owner"} +422 +[('Date', 'Tue, 17 Dec 2024 04:11:17 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '131'), ('X-OAuth-Scopes', 'admin:org, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2024-12-23 03:25:37 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4947'), ('X-RateLimit-Reset', '1734410505'), ('X-RateLimit-Used', '53'), ('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'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '80E6:155D4B:D7C3EC:F32C9E:6760F9E5')] +{"message":"Invalid new_owner","documentation_url":"https://docs.github.com/rest/repos/repos#transfer-a-repository","status":"422"} diff --git a/tests/ReplayData/Repository.testUnsubscribePubSubHubbub.txt b/tests/ReplayData/Repository.testUnsubscribePubSubHubbub.txt index 75ce05269f..acc13a663b 100644 --- a/tests/ReplayData/Repository.testUnsubscribePubSubHubbub.txt +++ b/tests/ReplayData/Repository.testUnsubscribePubSubHubbub.txt @@ -4,6 +4,6 @@ api.github.com None /hub {'Content-Type': 'multipart/form-data; boundary=----------------------------3c3ba8b523b2', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.callback"http://requestb.in/1bc1sc61------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.topic"https://github.com/jacquev6/PyGithub/events/push------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.mode"unsubscribe------------------------------3c3ba8b523b2-- +------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.callback"http://requestb.in/1bc1sc61------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.topic"https://github.com/PyGithub/PyGithub/events/push------------------------------3c3ba8b523b2Content-Disposition: form-data; name="hub.mode"unsubscribe------------------------------3c3ba8b523b2-- 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4991'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('cache-control', ''), ('date', 'Tue, 05 Feb 2013 18:58:12 GMT')] diff --git a/tests/ReplayData/Repository.testUpdateCustomProperties.txt b/tests/ReplayData/Repository.testUpdateCustomProperties.txt index d12021f125..36fe1c24fa 100644 --- a/tests/ReplayData/Repository.testUpdateCustomProperties.txt +++ b/tests/ReplayData/Repository.testUpdateCustomProperties.txt @@ -2,7 +2,7 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub/properties/values +/repos/PyGithub/PyGithub/properties/values {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"properties": [{"property_name": "foo", "value": "bar"}]} 204 diff --git a/tests/ReplayData/Repository.testUpdateFile.txt b/tests/ReplayData/Repository.testUpdateFile.txt index 6c802c1dab..7371684deb 100644 --- a/tests/ReplayData/Repository.testUpdateFile.txt +++ b/tests/ReplayData/Repository.testUpdateFile.txt @@ -2,20 +2,20 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/contents/doc/testCreateUpdateDeleteFile.md +/repos/PyGithub/PyGithub/contents/doc/testCreateUpdateDeleteFile.md {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('content-length', '16'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4997'), ('server', 'nginx/1.0.13'), ('last-modified', 'Wed, 05 Sep 2012 17:54:40 GMT'), ('connection', 'keep-alive'), ('etag', '"71786feb5f476112c5a8aa894ee7ca6c"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Sat, 08 Sep 2012 10:43:48 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"type":"file","sha":"5628799a7d517a4aaa0c1a7004d07569cd154df0","path":"doc/testCreateUpdateDeleteFile.md","encoding":"base64","_links":{"self":"https://api.github.com/repos/jacquev6/PyGithub/contents/doc/testCreateUpdateDeleteFile.md","html":"https://github.com/jacquev6/PyGithub/blob/master/doc/testCreateUpdateDeleteFile.md","git":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/5628799a7d517a4aaa0c1a7004d07569cd154df0"},"content":"SGVsbG8gd29ybGQ=","size":16,"name":"doc/testCreateUpdateDeleteFile.md"} +{"type":"file","sha":"5628799a7d517a4aaa0c1a7004d07569cd154df0","path":"doc/testCreateUpdateDeleteFile.md","encoding":"base64","_links":{"self":"https://api.github.com/repos/PyGithub/PyGithub/contents/doc/testCreateUpdateDeleteFile.md","html":"https://github.com/PyGithub/PyGithub/blob/master/doc/testCreateUpdateDeleteFile.md","git":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/5628799a7d517a4aaa0c1a7004d07569cd154df0"},"content":"SGVsbG8gd29ybGQ=","size":16,"name":"doc/testCreateUpdateDeleteFile.md"} https PUT api.github.com None -/repos/jacquev6/PyGithub/contents/doc/testCreateUpdateDeleteFile.md +/repos/PyGithub/PyGithub/contents/doc/testCreateUpdateDeleteFile.md {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"author": {"date": "2016-01-15T16:13:30+12:00", "email": "enix223@163.com", "name": "Enix Yu"}, "branch": "master", "committer": {"date": "2016-01-15T16:13:30+12:00", "email": "enix223@163.com", "name": "Enix Yu"}, "content": "SGVsbG8gV29ybGQ=", "message": "Update file for testUpdateFile", "sha": "5628799a7d517a4aaa0c1a7004d07569cd154df0"} 200 [('status', '200 OK'), ('content-length', '16'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4997'), ('server', 'nginx/1.0.13'), ('last-modified', 'Wed, 05 Sep 2012 17:54:40 GMT'), ('connection', 'keep-alive'), ('etag', '"71786feb5f476112c5a8aa894ee7ca6c"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Sat, 08 Sep 2012 10:43:48 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"content": {"name": "testCreateUpdateDeleteFile.md", "url": "https://api.github.com/repos/jacquev6/PyGithub/contents/doc/testCreateUpdateDeleteFile.md", "html_url": "https://github.com/jacquev6/PyGithub/blob/master/doc/testCreateUpdateDeleteFile.md", "download_url": "https://raw.githubusercontent.com/jacquev6/PyGithub/master/doc/testCreateUpdateDeleteFile.md", "sha": "95b966ae1c166bd92f8ae7d1c313e738c731dfc3", "_links": {"self": "https://api.github.com/repos/jacquev6/PyGithub/contents/doc/testCreateUpdateDeleteFile.md", "git": "https://api.github.com/repos/jacquev6/PyGithub/git/blobs/95b966ae1c166bd92f8ae7d1c313e738c731dfc3", "html": "https://github.com/jacquev6/PyGithub/blob/master/doc/testCreateUpdateDeleteFile.md"}, "git_url": "https://api.github.com/repos/jacquev6/PyGithub/git/blobs/95b966ae1c166bd92f8ae7d1c313e738c731dfc3", "path": "doc/testCreateUpdateDeleteFile.md", "type": "file", "size": 9}, "commit": {"committer": {"date": "2016-01-15T16:13:30+12:00", "name": "Enix Yu", "email": "enix223@gmail.com"}, "author": {"date": "2016-01-15T16:13:30+12:00", "name": "Enix Yu", "email": "enix223@gmail.com"}, "url": "https://api.github.com/repos/jacquev6/PyGithub/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", "tree": {"url": "https://api.github.com/repos/jacquev6/PyGithub/git/trees/691272480426f78a0138979dd3ce63b77f706feb", "sha": "691272480426f78a0138979dd3ce63b77f706feb"}, "html_url": "https://github.com/jacquev6/PyGithub/git/commit/7638417db6d59f3c431d3e1f261cc637155684cd", "sha": "7638417db6d59f3c431d3e1f261cc637155684cd", "parents": [{"url": "https://api.github.com/repos/jacquev6/PyGithub/git/commits/1acc419d4d6a9ce985db7be48c6349a0475975b5", "sha": "1acc419d4d6a9ce985db7be48c6349a0475975b5", "html_url": "https://github.com/jacquev6/PyGithub/git/commit/1acc419d4d6a9ce985db7be48c6349a0475975b5"}], "message": "my commit message"}} +{"content": {"name": "testCreateUpdateDeleteFile.md", "url": "https://api.github.com/repos/PyGithub/PyGithub/contents/doc/testCreateUpdateDeleteFile.md", "html_url": "https://github.com/PyGithub/PyGithub/blob/master/doc/testCreateUpdateDeleteFile.md", "download_url": "https://raw.githubusercontent.com/PyGithub/PyGithub/master/doc/testCreateUpdateDeleteFile.md", "sha": "95b966ae1c166bd92f8ae7d1c313e738c731dfc3", "_links": {"self": "https://api.github.com/repos/PyGithub/PyGithub/contents/doc/testCreateUpdateDeleteFile.md", "git": "https://api.github.com/repos/PyGithub/PyGithub/git/blobs/95b966ae1c166bd92f8ae7d1c313e738c731dfc3", "html": "https://github.com/PyGithub/PyGithub/blob/master/doc/testCreateUpdateDeleteFile.md"}, "git_url": "https://api.github.com/repos/PyGithub/PyGithub/git/blobs/95b966ae1c166bd92f8ae7d1c313e738c731dfc3", "path": "doc/testCreateUpdateDeleteFile.md", "type": "file", "size": 9}, "commit": {"committer": {"date": "2016-01-15T16:13:30+12:00", "name": "Enix Yu", "email": "enix223@gmail.com"}, "author": {"date": "2016-01-15T16:13:30+12:00", "name": "Enix Yu", "email": "enix223@gmail.com"}, "url": "https://api.github.com/repos/PyGithub/PyGithub/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", "tree": {"url": "https://api.github.com/repos/PyGithub/PyGithub/git/trees/691272480426f78a0138979dd3ce63b77f706feb", "sha": "691272480426f78a0138979dd3ce63b77f706feb"}, "html_url": "https://github.com/PyGithub/PyGithub/git/commit/7638417db6d59f3c431d3e1f261cc637155684cd", "sha": "7638417db6d59f3c431d3e1f261cc637155684cd", "parents": [{"url": "https://api.github.com/repos/PyGithub/PyGithub/git/commits/1acc419d4d6a9ce985db7be48c6349a0475975b5", "sha": "1acc419d4d6a9ce985db7be48c6349a0475975b5", "html_url": "https://github.com/PyGithub/PyGithub/git/commit/1acc419d4d6a9ce985db7be48c6349a0475975b5"}], "message": "my commit message"}} diff --git a/tests/ReplayData/Search.testPaginateSearchCommits.txt b/tests/ReplayData/Search.testPaginateSearchCommits.txt deleted file mode 100644 index 1589af5d6e..0000000000 --- a/tests/ReplayData/Search.testPaginateSearchCommits.txt +++ /dev/null @@ -1,10 +0,0 @@ -https -GET -api.github.com -None -/search/commits?q=hash%3A5b0224e868cc9242c9450ef02efbe3097abd7ba2&per_page=1 -{'Authorization': 'Basic login_and_password_removed', 'Accept': 'application/vnd.github.cloak-preview', 'User-Agent': 'PyGithub/Python'} -null -200 -[('status', '200 OK'), ('expect-ct', 'max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"'), ('content-length', '23047'), ('x-github-media-type', 'github.cloak-preview'), ('x-content-type-options', 'nosniff'), ('content-security-policy', "default-src 'none'"), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', 'DBAB:2E787:E63C94:1BF20B2:59EB4575'), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('x-ratelimit-remaining', '29'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '30'), ('x-runtime-rack', '0.191850'), ('x-xss-protection', '1; mode=block'), ('cache-control', 'no-cache'), ('date', 'Sat, 21 Oct 2017 13:02:45 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-frame-options', 'deny'), ('x-ratelimit-reset', '1508591025')] -{"total_count":3,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/jayfk/pygithub-future/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","html_url":"https://github.com/jayfk/pygithub-future/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/jayfk/pygithub-future/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/jayfk/pygithub-future/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/jayfk/pygithub-future/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"avatar_url":"https://avatars3.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"avatar_url":"https://avatars3.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","site_admin":false},"parents":[{"url":"https://api.github.com/repos/jayfk/pygithub-future/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/jayfk/pygithub-future/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"id":80414706,"name":"pygithub-future","full_name":"jayfk/pygithub-future","owner":{"login":"jayfk","id":2930472,"avatar_url":"https://avatars2.githubusercontent.com/u/2930472?v=4","gravatar_id":"","url":"https://api.github.com/users/jayfk","html_url":"https://github.com/jayfk","followers_url":"https://api.github.com/users/jayfk/followers","following_url":"https://api.github.com/users/jayfk/following{/other_user}","gists_url":"https://api.github.com/users/jayfk/gists{/gist_id}","starred_url":"https://api.github.com/users/jayfk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jayfk/subscriptions","organizations_url":"https://api.github.com/users/jayfk/orgs","repos_url":"https://api.github.com/users/jayfk/repos","events_url":"https://api.github.com/users/jayfk/events{/privacy}","received_events_url":"https://api.github.com/users/jayfk/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jayfk/pygithub-future","description":null,"fork":false,"url":"https://api.github.com/repos/jayfk/pygithub-future","forks_url":"https://api.github.com/repos/jayfk/pygithub-future/forks","keys_url":"https://api.github.com/repos/jayfk/pygithub-future/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jayfk/pygithub-future/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jayfk/pygithub-future/teams","hooks_url":"https://api.github.com/repos/jayfk/pygithub-future/hooks","issue_events_url":"https://api.github.com/repos/jayfk/pygithub-future/issues/events{/number}","events_url":"https://api.github.com/repos/jayfk/pygithub-future/events","assignees_url":"https://api.github.com/repos/jayfk/pygithub-future/assignees{/user}","branches_url":"https://api.github.com/repos/jayfk/pygithub-future/branches{/branch}","tags_url":"https://api.github.com/repos/jayfk/pygithub-future/tags","blobs_url":"https://api.github.com/repos/jayfk/pygithub-future/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jayfk/pygithub-future/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jayfk/pygithub-future/git/refs{/sha}","trees_url":"https://api.github.com/repos/jayfk/pygithub-future/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jayfk/pygithub-future/statuses/{sha}","languages_url":"https://api.github.com/repos/jayfk/pygithub-future/languages","stargazers_url":"https://api.github.com/repos/jayfk/pygithub-future/stargazers","contributors_url":"https://api.github.com/repos/jayfk/pygithub-future/contributors","subscribers_url":"https://api.github.com/repos/jayfk/pygithub-future/subscribers","subscription_url":"https://api.github.com/repos/jayfk/pygithub-future/subscription","commits_url":"https://api.github.com/repos/jayfk/pygithub-future/commits{/sha}","git_commits_url":"https://api.github.com/repos/jayfk/pygithub-future/git/commits{/sha}","comments_url":"https://api.github.com/repos/jayfk/pygithub-future/comments{/number}","issue_comment_url":"https://api.github.com/repos/jayfk/pygithub-future/issues/comments{/number}","contents_url":"https://api.github.com/repos/jayfk/pygithub-future/contents/{+path}","compare_url":"https://api.github.com/repos/jayfk/pygithub-future/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jayfk/pygithub-future/merges","archive_url":"https://api.github.com/repos/jayfk/pygithub-future/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jayfk/pygithub-future/downloads","issues_url":"https://api.github.com/repos/jayfk/pygithub-future/issues{/number}","pulls_url":"https://api.github.com/repos/jayfk/pygithub-future/pulls{/number}","milestones_url":"https://api.github.com/repos/jayfk/pygithub-future/milestones{/number}","notifications_url":"https://api.github.com/repos/jayfk/pygithub-future/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jayfk/pygithub-future/labels{/name}","releases_url":"https://api.github.com/repos/jayfk/pygithub-future/releases{/id}","deployments_url":"https://api.github.com/repos/jayfk/pygithub-future/deployments"},"score":1.0},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","html_url":"https://github.com/PyGithub/PyGithub/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"avatar_url":"https://avatars3.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"avatar_url":"https://avatars3.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","site_admin":false},"parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/PyGithub/PyGithub/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"id":3544490,"name":"PyGithub","full_name":"PyGithub/PyGithub","owner":{"login":"PyGithub","id":11288996,"avatar_url":"https://avatars0.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},"private":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"},"score":1.0},{"url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","html_url":"https://github.com/GitHubClassroomTestCMPUT229/resource_pygithub/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"avatar_url":"https://avatars3.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"avatar_url":"https://avatars3.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","site_admin":false},"parents":[{"url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/GitHubClassroomTestCMPUT229/resource_pygithub/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"id":90642726,"name":"resource_pygithub","full_name":"GitHubClassroomTestCMPUT229/resource_pygithub","owner":{"login":"GitHubClassroomTestCMPUT229","id":28269390,"avatar_url":"https://avatars3.githubusercontent.com/u/28269390?v=4","gravatar_id":"","url":"https://api.github.com/users/GitHubClassroomTestCMPUT229","html_url":"https://github.com/GitHubClassroomTestCMPUT229","followers_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/followers","following_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/following{/other_user}","gists_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/gists{/gist_id}","starred_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/subscriptions","organizations_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/orgs","repos_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/repos","events_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/events{/privacy}","received_events_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/GitHubClassroomTestCMPUT229/resource_pygithub","description":null,"fork":false,"url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub","forks_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/forks","keys_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/teams","hooks_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/hooks","issue_events_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/issues/events{/number}","events_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/events","assignees_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/assignees{/user}","branches_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/branches{/branch}","tags_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/tags","blobs_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/statuses/{sha}","languages_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/languages","stargazers_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/stargazers","contributors_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/contributors","subscribers_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/subscribers","subscription_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/subscription","commits_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/contents/{+path}","compare_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/merges","archive_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/downloads","issues_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/issues{/number}","pulls_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/pulls{/number}","milestones_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/milestones{/number}","notifications_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/labels{/name}","releases_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/releases{/id}","deployments_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/deployments"},"score":1.0}]} diff --git a/tests/ReplayData/Search.testSearchCommits.txt b/tests/ReplayData/Search.testSearchCommits.txt index 5c2bf2a6b3..f2964f1412 100644 --- a/tests/ReplayData/Search.testSearchCommits.txt +++ b/tests/ReplayData/Search.testSearchCommits.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/search/commits?sort=author-date&order=asc&q=hash%3A1265747e992ba7d34a469b6b2f527809f8bf7067+merge%3Afalse&per_page=1 +/search/commits?q=hash%3A5b0224e868cc9242c9450ef02efbe3097abd7ba2 {'Accept': 'application/vnd.github.cloak-preview', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 21 Oct 2021 04:54:24 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'no-cache'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; param=cloak-preview'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '30'), ('X-RateLimit-Remaining', '28'), ('X-RateLimit-Reset', '1634792071'), ('X-RateLimit-Used', '2'), ('X-RateLimit-Resource', 'search'), ('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, 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', 'DB8E:3107:5AE85E:63CFBA:6170F280')] -{"total_count":2,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1265747e992ba7d34a469b6b2f527809f8bf7067","sha":"1265747e992ba7d34a469b6b2f527809f8bf7067","node_id":"MDY6Q29tbWl0MzU0NDQ5MDoxMjY1NzQ3ZTk5MmJhN2QzNGE0NjliNmIyZjUyNzgwOWY4YmY3MDY3","html_url":"https://github.com/PyGithub/PyGithub/commit/1265747e992ba7d34a469b6b2f527809f8bf7067","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1265747e992ba7d34a469b6b2f527809f8bf7067/comments","commit":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/1265747e992ba7d34a469b6b2f527809f8bf7067","author":{"date":"2021-06-02T15:00:00.000+10:00","name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"date":"2021-06-02T15:00:00.000+10:00","name":"GitHub","email":"noreply@github.com"},"message":"Do not transform requestHeaders when logging (#1965)\n\nRequester.__log() sanitizes the headers of the request so that\r\nauthentication details are not logged, but this has the side effect of\r\nmeaning that future requests that use the same Requester object will\r\nfail. Usually, this is perfectly fine, since almost every method will\r\nonly make one request -- where this falls down is when we make another\r\nafter a redirect. Make a copy of the requestHeaders, and sanitize those.\r\n\r\nFixes #1959","tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/6e5b9e20c26a6b3ba8c5481a8e2896bb72a91bbb","sha":"6e5b9e20c26a6b3ba8c5481a8e2896bb72a91bbb"},"comment_count":0},"author":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","site_admin":false},"parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a","html_url":"https://github.com/PyGithub/PyGithub/commit/ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a","sha":"ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a"}],"repository":{"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"},"score":1.0}]} +[('Date', 'Tue, 07 Jan 2025 19:43:06 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'no-cache'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=cloak-preview'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '30'), ('X-RateLimit-Remaining', '29'), ('X-RateLimit-Reset', '1736279046'), ('X-RateLimit-Used', '1'), ('X-RateLimit-Resource', 'search'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '8318:3D5310:3CE698C:3E243B3:677D83C9')] +{"total_count":12,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/justForMyData/myPyGithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","node_id":"MDY6Q29tbWl0MjUzMzkwNjA4OjViMDIyNGU4NjhjYzkyNDJjOTQ1MGVmMDJlZmJlMzA5N2FiZDdiYTI=","html_url":"https://github.com/justForMyData/myPyGithub/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/justForMyData/myPyGithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/justForMyData/myPyGithub/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/justForMyData/myPyGithub/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/justForMyData/myPyGithub/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/justForMyData/myPyGithub/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"id":253390608,"node_id":"MDEwOlJlcG9zaXRvcnkyNTMzOTA2MDg=","name":"myPyGithub","full_name":"justForMyData/myPyGithub","private":false,"owner":{"login":"justForMyData","id":63220758,"node_id":"MDQ6VXNlcjYzMjIwNzU4","avatar_url":"https://avatars.githubusercontent.com/u/63220758?v=4","gravatar_id":"","url":"https://api.github.com/users/justForMyData","html_url":"https://github.com/justForMyData","followers_url":"https://api.github.com/users/justForMyData/followers","following_url":"https://api.github.com/users/justForMyData/following{/other_user}","gists_url":"https://api.github.com/users/justForMyData/gists{/gist_id}","starred_url":"https://api.github.com/users/justForMyData/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justForMyData/subscriptions","organizations_url":"https://api.github.com/users/justForMyData/orgs","repos_url":"https://api.github.com/users/justForMyData/repos","events_url":"https://api.github.com/users/justForMyData/events{/privacy}","received_events_url":"https://api.github.com/users/justForMyData/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/justForMyData/myPyGithub","description":null,"fork":false,"url":"https://api.github.com/repos/justForMyData/myPyGithub","forks_url":"https://api.github.com/repos/justForMyData/myPyGithub/forks","keys_url":"https://api.github.com/repos/justForMyData/myPyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/justForMyData/myPyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/justForMyData/myPyGithub/teams","hooks_url":"https://api.github.com/repos/justForMyData/myPyGithub/hooks","issue_events_url":"https://api.github.com/repos/justForMyData/myPyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/justForMyData/myPyGithub/events","assignees_url":"https://api.github.com/repos/justForMyData/myPyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/justForMyData/myPyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/justForMyData/myPyGithub/tags","blobs_url":"https://api.github.com/repos/justForMyData/myPyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/justForMyData/myPyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/justForMyData/myPyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/justForMyData/myPyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/justForMyData/myPyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/justForMyData/myPyGithub/languages","stargazers_url":"https://api.github.com/repos/justForMyData/myPyGithub/stargazers","contributors_url":"https://api.github.com/repos/justForMyData/myPyGithub/contributors","subscribers_url":"https://api.github.com/repos/justForMyData/myPyGithub/subscribers","subscription_url":"https://api.github.com/repos/justForMyData/myPyGithub/subscription","commits_url":"https://api.github.com/repos/justForMyData/myPyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/justForMyData/myPyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/justForMyData/myPyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/justForMyData/myPyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/justForMyData/myPyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/justForMyData/myPyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/justForMyData/myPyGithub/merges","archive_url":"https://api.github.com/repos/justForMyData/myPyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/justForMyData/myPyGithub/downloads","issues_url":"https://api.github.com/repos/justForMyData/myPyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/justForMyData/myPyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/justForMyData/myPyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/justForMyData/myPyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/justForMyData/myPyGithub/labels{/name}","releases_url":"https://api.github.com/repos/justForMyData/myPyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/justForMyData/myPyGithub/deployments"},"score":1.0},{"url":"https://api.github.com/repos/testsyren/MyPygitHub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","node_id":"MDY6Q29tbWl0MzAxNzA0NTI1OjViMDIyNGU4NjhjYzkyNDJjOTQ1MGVmMDJlZmJlMzA5N2FiZDdiYTI=","html_url":"https://github.com/testsyren/MyPygitHub/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/testsyren/MyPygitHub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/testsyren/MyPygitHub/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/testsyren/MyPygitHub/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/testsyren/MyPygitHub/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/testsyren/MyPygitHub/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"id":301704525,"node_id":"MDEwOlJlcG9zaXRvcnkzMDE3MDQ1MjU=","name":"MyPygitHub","full_name":"testsyren/MyPygitHub","private":false,"owner":{"login":"testsyren","id":71063261,"node_id":"MDQ6VXNlcjcxMDYzMjYx","avatar_url":"https://avatars.githubusercontent.com/u/71063261?v=4","gravatar_id":"","url":"https://api.github.com/users/testsyren","html_url":"https://github.com/testsyren","followers_url":"https://api.github.com/users/testsyren/followers","following_url":"https://api.github.com/users/testsyren/following{/other_user}","gists_url":"https://api.github.com/users/testsyren/gists{/gist_id}","starred_url":"https://api.github.com/users/testsyren/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/testsyren/subscriptions","organizations_url":"https://api.github.com/users/testsyren/orgs","repos_url":"https://api.github.com/users/testsyren/repos","events_url":"https://api.github.com/users/testsyren/events{/privacy}","received_events_url":"https://api.github.com/users/testsyren/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/testsyren/MyPygitHub","description":null,"fork":false,"url":"https://api.github.com/repos/testsyren/MyPygitHub","forks_url":"https://api.github.com/repos/testsyren/MyPygitHub/forks","keys_url":"https://api.github.com/repos/testsyren/MyPygitHub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/testsyren/MyPygitHub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/testsyren/MyPygitHub/teams","hooks_url":"https://api.github.com/repos/testsyren/MyPygitHub/hooks","issue_events_url":"https://api.github.com/repos/testsyren/MyPygitHub/issues/events{/number}","events_url":"https://api.github.com/repos/testsyren/MyPygitHub/events","assignees_url":"https://api.github.com/repos/testsyren/MyPygitHub/assignees{/user}","branches_url":"https://api.github.com/repos/testsyren/MyPygitHub/branches{/branch}","tags_url":"https://api.github.com/repos/testsyren/MyPygitHub/tags","blobs_url":"https://api.github.com/repos/testsyren/MyPygitHub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/testsyren/MyPygitHub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/testsyren/MyPygitHub/git/refs{/sha}","trees_url":"https://api.github.com/repos/testsyren/MyPygitHub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/testsyren/MyPygitHub/statuses/{sha}","languages_url":"https://api.github.com/repos/testsyren/MyPygitHub/languages","stargazers_url":"https://api.github.com/repos/testsyren/MyPygitHub/stargazers","contributors_url":"https://api.github.com/repos/testsyren/MyPygitHub/contributors","subscribers_url":"https://api.github.com/repos/testsyren/MyPygitHub/subscribers","subscription_url":"https://api.github.com/repos/testsyren/MyPygitHub/subscription","commits_url":"https://api.github.com/repos/testsyren/MyPygitHub/commits{/sha}","git_commits_url":"https://api.github.com/repos/testsyren/MyPygitHub/git/commits{/sha}","comments_url":"https://api.github.com/repos/testsyren/MyPygitHub/comments{/number}","issue_comment_url":"https://api.github.com/repos/testsyren/MyPygitHub/issues/comments{/number}","contents_url":"https://api.github.com/repos/testsyren/MyPygitHub/contents/{+path}","compare_url":"https://api.github.com/repos/testsyren/MyPygitHub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/testsyren/MyPygitHub/merges","archive_url":"https://api.github.com/repos/testsyren/MyPygitHub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/testsyren/MyPygitHub/downloads","issues_url":"https://api.github.com/repos/testsyren/MyPygitHub/issues{/number}","pulls_url":"https://api.github.com/repos/testsyren/MyPygitHub/pulls{/number}","milestones_url":"https://api.github.com/repos/testsyren/MyPygitHub/milestones{/number}","notifications_url":"https://api.github.com/repos/testsyren/MyPygitHub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/testsyren/MyPygitHub/labels{/name}","releases_url":"https://api.github.com/repos/testsyren/MyPygitHub/releases{/id}","deployments_url":"https://api.github.com/repos/testsyren/MyPygitHub/deployments"},"score":1.0},{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","node_id":"MDY6Q29tbWl0MzU0NDQ5MDo1YjAyMjRlODY4Y2M5MjQyYzk0NTBlZjAyZWZiZTMwOTdhYmQ3YmEy","html_url":"https://github.com/PyGithub/PyGithub/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/PyGithub/PyGithub/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"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","user_view_type":"public","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"},"score":1.0},{"url":"https://api.github.com/repos/alice-sieve/PyGithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","node_id":"MDY6Q29tbWl0MTk5ODc1MjM1OjViMDIyNGU4NjhjYzkyNDJjOTQ1MGVmMDJlZmJlMzA5N2FiZDdiYTI=","html_url":"https://github.com/alice-sieve/PyGithub/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/alice-sieve/PyGithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/alice-sieve/PyGithub/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/alice-sieve/PyGithub/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/alice-sieve/PyGithub/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/alice-sieve/PyGithub/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"id":199875235,"node_id":"MDEwOlJlcG9zaXRvcnkxOTk4NzUyMzU=","name":"PyGithub","full_name":"alice-sieve/PyGithub","private":false,"owner":{"login":"alice-sieve","id":50160942,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUwMTYwOTQy","avatar_url":"https://avatars.githubusercontent.com/u/50160942?v=4","gravatar_id":"","url":"https://api.github.com/users/alice-sieve","html_url":"https://github.com/alice-sieve","followers_url":"https://api.github.com/users/alice-sieve/followers","following_url":"https://api.github.com/users/alice-sieve/following{/other_user}","gists_url":"https://api.github.com/users/alice-sieve/gists{/gist_id}","starred_url":"https://api.github.com/users/alice-sieve/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alice-sieve/subscriptions","organizations_url":"https://api.github.com/users/alice-sieve/orgs","repos_url":"https://api.github.com/users/alice-sieve/repos","events_url":"https://api.github.com/users/alice-sieve/events{/privacy}","received_events_url":"https://api.github.com/users/alice-sieve/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/alice-sieve/PyGithub","description":null,"fork":false,"url":"https://api.github.com/repos/alice-sieve/PyGithub","forks_url":"https://api.github.com/repos/alice-sieve/PyGithub/forks","keys_url":"https://api.github.com/repos/alice-sieve/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alice-sieve/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alice-sieve/PyGithub/teams","hooks_url":"https://api.github.com/repos/alice-sieve/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/alice-sieve/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/alice-sieve/PyGithub/events","assignees_url":"https://api.github.com/repos/alice-sieve/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/alice-sieve/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/alice-sieve/PyGithub/tags","blobs_url":"https://api.github.com/repos/alice-sieve/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alice-sieve/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alice-sieve/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/alice-sieve/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alice-sieve/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/alice-sieve/PyGithub/languages","stargazers_url":"https://api.github.com/repos/alice-sieve/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/alice-sieve/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/alice-sieve/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/alice-sieve/PyGithub/subscription","commits_url":"https://api.github.com/repos/alice-sieve/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/alice-sieve/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/alice-sieve/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/alice-sieve/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/alice-sieve/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/alice-sieve/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alice-sieve/PyGithub/merges","archive_url":"https://api.github.com/repos/alice-sieve/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alice-sieve/PyGithub/downloads","issues_url":"https://api.github.com/repos/alice-sieve/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/alice-sieve/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/alice-sieve/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/alice-sieve/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alice-sieve/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/alice-sieve/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/alice-sieve/PyGithub/deployments"},"score":1.0},{"url":"https://api.github.com/repos/testsyren/PyGitHub1/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","node_id":"MDY6Q29tbWl0MzAxOTQ2NDQxOjViMDIyNGU4NjhjYzkyNDJjOTQ1MGVmMDJlZmJlMzA5N2FiZDdiYTI=","html_url":"https://github.com/testsyren/PyGitHub1/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/testsyren/PyGitHub1/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/testsyren/PyGitHub1/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/testsyren/PyGitHub1/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/testsyren/PyGitHub1/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/testsyren/PyGitHub1/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"id":301946441,"node_id":"MDEwOlJlcG9zaXRvcnkzMDE5NDY0NDE=","name":"PyGitHub1","full_name":"testsyren/PyGitHub1","private":false,"owner":{"login":"testsyren","id":71063261,"node_id":"MDQ6VXNlcjcxMDYzMjYx","avatar_url":"https://avatars.githubusercontent.com/u/71063261?v=4","gravatar_id":"","url":"https://api.github.com/users/testsyren","html_url":"https://github.com/testsyren","followers_url":"https://api.github.com/users/testsyren/followers","following_url":"https://api.github.com/users/testsyren/following{/other_user}","gists_url":"https://api.github.com/users/testsyren/gists{/gist_id}","starred_url":"https://api.github.com/users/testsyren/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/testsyren/subscriptions","organizations_url":"https://api.github.com/users/testsyren/orgs","repos_url":"https://api.github.com/users/testsyren/repos","events_url":"https://api.github.com/users/testsyren/events{/privacy}","received_events_url":"https://api.github.com/users/testsyren/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/testsyren/PyGitHub1","description":null,"fork":false,"url":"https://api.github.com/repos/testsyren/PyGitHub1","forks_url":"https://api.github.com/repos/testsyren/PyGitHub1/forks","keys_url":"https://api.github.com/repos/testsyren/PyGitHub1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/testsyren/PyGitHub1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/testsyren/PyGitHub1/teams","hooks_url":"https://api.github.com/repos/testsyren/PyGitHub1/hooks","issue_events_url":"https://api.github.com/repos/testsyren/PyGitHub1/issues/events{/number}","events_url":"https://api.github.com/repos/testsyren/PyGitHub1/events","assignees_url":"https://api.github.com/repos/testsyren/PyGitHub1/assignees{/user}","branches_url":"https://api.github.com/repos/testsyren/PyGitHub1/branches{/branch}","tags_url":"https://api.github.com/repos/testsyren/PyGitHub1/tags","blobs_url":"https://api.github.com/repos/testsyren/PyGitHub1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/testsyren/PyGitHub1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/testsyren/PyGitHub1/git/refs{/sha}","trees_url":"https://api.github.com/repos/testsyren/PyGitHub1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/testsyren/PyGitHub1/statuses/{sha}","languages_url":"https://api.github.com/repos/testsyren/PyGitHub1/languages","stargazers_url":"https://api.github.com/repos/testsyren/PyGitHub1/stargazers","contributors_url":"https://api.github.com/repos/testsyren/PyGitHub1/contributors","subscribers_url":"https://api.github.com/repos/testsyren/PyGitHub1/subscribers","subscription_url":"https://api.github.com/repos/testsyren/PyGitHub1/subscription","commits_url":"https://api.github.com/repos/testsyren/PyGitHub1/commits{/sha}","git_commits_url":"https://api.github.com/repos/testsyren/PyGitHub1/git/commits{/sha}","comments_url":"https://api.github.com/repos/testsyren/PyGitHub1/comments{/number}","issue_comment_url":"https://api.github.com/repos/testsyren/PyGitHub1/issues/comments{/number}","contents_url":"https://api.github.com/repos/testsyren/PyGitHub1/contents/{+path}","compare_url":"https://api.github.com/repos/testsyren/PyGitHub1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/testsyren/PyGitHub1/merges","archive_url":"https://api.github.com/repos/testsyren/PyGitHub1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/testsyren/PyGitHub1/downloads","issues_url":"https://api.github.com/repos/testsyren/PyGitHub1/issues{/number}","pulls_url":"https://api.github.com/repos/testsyren/PyGitHub1/pulls{/number}","milestones_url":"https://api.github.com/repos/testsyren/PyGitHub1/milestones{/number}","notifications_url":"https://api.github.com/repos/testsyren/PyGitHub1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/testsyren/PyGitHub1/labels{/name}","releases_url":"https://api.github.com/repos/testsyren/PyGitHub1/releases{/id}","deployments_url":"https://api.github.com/repos/testsyren/PyGitHub1/deployments"},"score":1.0},{"url":"https://api.github.com/repos/kumudraj/pyTest/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","node_id":"MDY6Q29tbWl0MTI5MTEyMTIxOjViMDIyNGU4NjhjYzkyNDJjOTQ1MGVmMDJlZmJlMzA5N2FiZDdiYTI=","html_url":"https://github.com/kumudraj/pyTest/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/kumudraj/pyTest/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/kumudraj/pyTest/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/kumudraj/pyTest/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/kumudraj/pyTest/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/kumudraj/pyTest/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"id":129112121,"node_id":"MDEwOlJlcG9zaXRvcnkxMjkxMTIxMjE=","name":"pyTest","full_name":"kumudraj/pyTest","private":false,"owner":{"login":"kumudraj","id":38290886,"node_id":"MDQ6VXNlcjM4MjkwODg2","avatar_url":"https://avatars.githubusercontent.com/u/38290886?v=4","gravatar_id":"","url":"https://api.github.com/users/kumudraj","html_url":"https://github.com/kumudraj","followers_url":"https://api.github.com/users/kumudraj/followers","following_url":"https://api.github.com/users/kumudraj/following{/other_user}","gists_url":"https://api.github.com/users/kumudraj/gists{/gist_id}","starred_url":"https://api.github.com/users/kumudraj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kumudraj/subscriptions","organizations_url":"https://api.github.com/users/kumudraj/orgs","repos_url":"https://api.github.com/users/kumudraj/repos","events_url":"https://api.github.com/users/kumudraj/events{/privacy}","received_events_url":"https://api.github.com/users/kumudraj/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/kumudraj/pyTest","description":null,"fork":false,"url":"https://api.github.com/repos/kumudraj/pyTest","forks_url":"https://api.github.com/repos/kumudraj/pyTest/forks","keys_url":"https://api.github.com/repos/kumudraj/pyTest/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kumudraj/pyTest/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kumudraj/pyTest/teams","hooks_url":"https://api.github.com/repos/kumudraj/pyTest/hooks","issue_events_url":"https://api.github.com/repos/kumudraj/pyTest/issues/events{/number}","events_url":"https://api.github.com/repos/kumudraj/pyTest/events","assignees_url":"https://api.github.com/repos/kumudraj/pyTest/assignees{/user}","branches_url":"https://api.github.com/repos/kumudraj/pyTest/branches{/branch}","tags_url":"https://api.github.com/repos/kumudraj/pyTest/tags","blobs_url":"https://api.github.com/repos/kumudraj/pyTest/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kumudraj/pyTest/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kumudraj/pyTest/git/refs{/sha}","trees_url":"https://api.github.com/repos/kumudraj/pyTest/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kumudraj/pyTest/statuses/{sha}","languages_url":"https://api.github.com/repos/kumudraj/pyTest/languages","stargazers_url":"https://api.github.com/repos/kumudraj/pyTest/stargazers","contributors_url":"https://api.github.com/repos/kumudraj/pyTest/contributors","subscribers_url":"https://api.github.com/repos/kumudraj/pyTest/subscribers","subscription_url":"https://api.github.com/repos/kumudraj/pyTest/subscription","commits_url":"https://api.github.com/repos/kumudraj/pyTest/commits{/sha}","git_commits_url":"https://api.github.com/repos/kumudraj/pyTest/git/commits{/sha}","comments_url":"https://api.github.com/repos/kumudraj/pyTest/comments{/number}","issue_comment_url":"https://api.github.com/repos/kumudraj/pyTest/issues/comments{/number}","contents_url":"https://api.github.com/repos/kumudraj/pyTest/contents/{+path}","compare_url":"https://api.github.com/repos/kumudraj/pyTest/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kumudraj/pyTest/merges","archive_url":"https://api.github.com/repos/kumudraj/pyTest/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kumudraj/pyTest/downloads","issues_url":"https://api.github.com/repos/kumudraj/pyTest/issues{/number}","pulls_url":"https://api.github.com/repos/kumudraj/pyTest/pulls{/number}","milestones_url":"https://api.github.com/repos/kumudraj/pyTest/milestones{/number}","notifications_url":"https://api.github.com/repos/kumudraj/pyTest/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kumudraj/pyTest/labels{/name}","releases_url":"https://api.github.com/repos/kumudraj/pyTest/releases{/id}","deployments_url":"https://api.github.com/repos/kumudraj/pyTest/deployments"},"score":1.0},{"url":"https://api.github.com/repos/gquesnell/test3/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","node_id":"MDY6Q29tbWl0NDA0ODg5Mzg1OjViMDIyNGU4NjhjYzkyNDJjOTQ1MGVmMDJlZmJlMzA5N2FiZDdiYTI=","html_url":"https://github.com/gquesnell/test3/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/gquesnell/test3/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/gquesnell/test3/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/gquesnell/test3/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/gquesnell/test3/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/gquesnell/test3/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"id":404889385,"node_id":"MDEwOlJlcG9zaXRvcnk0MDQ4ODkzODU=","name":"test3","full_name":"gquesnell/test3","private":false,"owner":{"login":"gquesnell","id":68558303,"node_id":"MDQ6VXNlcjY4NTU4MzAz","avatar_url":"https://avatars.githubusercontent.com/u/68558303?v=4","gravatar_id":"","url":"https://api.github.com/users/gquesnell","html_url":"https://github.com/gquesnell","followers_url":"https://api.github.com/users/gquesnell/followers","following_url":"https://api.github.com/users/gquesnell/following{/other_user}","gists_url":"https://api.github.com/users/gquesnell/gists{/gist_id}","starred_url":"https://api.github.com/users/gquesnell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gquesnell/subscriptions","organizations_url":"https://api.github.com/users/gquesnell/orgs","repos_url":"https://api.github.com/users/gquesnell/repos","events_url":"https://api.github.com/users/gquesnell/events{/privacy}","received_events_url":"https://api.github.com/users/gquesnell/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/gquesnell/test3","description":"test3 description","fork":false,"url":"https://api.github.com/repos/gquesnell/test3","forks_url":"https://api.github.com/repos/gquesnell/test3/forks","keys_url":"https://api.github.com/repos/gquesnell/test3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gquesnell/test3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gquesnell/test3/teams","hooks_url":"https://api.github.com/repos/gquesnell/test3/hooks","issue_events_url":"https://api.github.com/repos/gquesnell/test3/issues/events{/number}","events_url":"https://api.github.com/repos/gquesnell/test3/events","assignees_url":"https://api.github.com/repos/gquesnell/test3/assignees{/user}","branches_url":"https://api.github.com/repos/gquesnell/test3/branches{/branch}","tags_url":"https://api.github.com/repos/gquesnell/test3/tags","blobs_url":"https://api.github.com/repos/gquesnell/test3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gquesnell/test3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gquesnell/test3/git/refs{/sha}","trees_url":"https://api.github.com/repos/gquesnell/test3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gquesnell/test3/statuses/{sha}","languages_url":"https://api.github.com/repos/gquesnell/test3/languages","stargazers_url":"https://api.github.com/repos/gquesnell/test3/stargazers","contributors_url":"https://api.github.com/repos/gquesnell/test3/contributors","subscribers_url":"https://api.github.com/repos/gquesnell/test3/subscribers","subscription_url":"https://api.github.com/repos/gquesnell/test3/subscription","commits_url":"https://api.github.com/repos/gquesnell/test3/commits{/sha}","git_commits_url":"https://api.github.com/repos/gquesnell/test3/git/commits{/sha}","comments_url":"https://api.github.com/repos/gquesnell/test3/comments{/number}","issue_comment_url":"https://api.github.com/repos/gquesnell/test3/issues/comments{/number}","contents_url":"https://api.github.com/repos/gquesnell/test3/contents/{+path}","compare_url":"https://api.github.com/repos/gquesnell/test3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gquesnell/test3/merges","archive_url":"https://api.github.com/repos/gquesnell/test3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gquesnell/test3/downloads","issues_url":"https://api.github.com/repos/gquesnell/test3/issues{/number}","pulls_url":"https://api.github.com/repos/gquesnell/test3/pulls{/number}","milestones_url":"https://api.github.com/repos/gquesnell/test3/milestones{/number}","notifications_url":"https://api.github.com/repos/gquesnell/test3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gquesnell/test3/labels{/name}","releases_url":"https://api.github.com/repos/gquesnell/test3/releases{/id}","deployments_url":"https://api.github.com/repos/gquesnell/test3/deployments"},"score":1.0},{"url":"https://api.github.com/repos/anaduque13/Technical-Take-home/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","node_id":"MDY6Q29tbWl0NTAzOTIxMTkzOjViMDIyNGU4NjhjYzkyNDJjOTQ1MGVmMDJlZmJlMzA5N2FiZDdiYTI=","html_url":"https://github.com/anaduque13/Technical-Take-home/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/anaduque13/Technical-Take-home/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/anaduque13/Technical-Take-home/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/anaduque13/Technical-Take-home/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/anaduque13/Technical-Take-home/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"id":503921193,"node_id":"R_kgDOHgk6KQ","name":"Technical-Take-home","full_name":"anaduque13/Technical-Take-home","private":false,"owner":{"login":"anaduque13","id":107579908,"node_id":"U_kgDOBmmKBA","avatar_url":"https://avatars.githubusercontent.com/u/107579908?v=4","gravatar_id":"","url":"https://api.github.com/users/anaduque13","html_url":"https://github.com/anaduque13","followers_url":"https://api.github.com/users/anaduque13/followers","following_url":"https://api.github.com/users/anaduque13/following{/other_user}","gists_url":"https://api.github.com/users/anaduque13/gists{/gist_id}","starred_url":"https://api.github.com/users/anaduque13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anaduque13/subscriptions","organizations_url":"https://api.github.com/users/anaduque13/orgs","repos_url":"https://api.github.com/users/anaduque13/repos","events_url":"https://api.github.com/users/anaduque13/events{/privacy}","received_events_url":"https://api.github.com/users/anaduque13/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/anaduque13/Technical-Take-home","description":null,"fork":false,"url":"https://api.github.com/repos/anaduque13/Technical-Take-home","forks_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/forks","keys_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/keys{/key_id}","collaborators_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/teams","hooks_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/hooks","issue_events_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/issues/events{/number}","events_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/events","assignees_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/assignees{/user}","branches_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/branches{/branch}","tags_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/tags","blobs_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/git/refs{/sha}","trees_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/git/trees{/sha}","statuses_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/statuses/{sha}","languages_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/languages","stargazers_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/stargazers","contributors_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/contributors","subscribers_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/subscribers","subscription_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/subscription","commits_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/commits{/sha}","git_commits_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/git/commits{/sha}","comments_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/comments{/number}","issue_comment_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/issues/comments{/number}","contents_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/contents/{+path}","compare_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/compare/{base}...{head}","merges_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/merges","archive_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/downloads","issues_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/issues{/number}","pulls_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/pulls{/number}","milestones_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/milestones{/number}","notifications_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/labels{/name}","releases_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/releases{/id}","deployments_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/deployments"},"score":1.0},{"url":"https://api.github.com/repos/rsumner33/PyGithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","node_id":"MDY6Q29tbWl0MTMxNTEyMzUzOjViMDIyNGU4NjhjYzkyNDJjOTQ1MGVmMDJlZmJlMzA5N2FiZDdiYTI=","html_url":"https://github.com/rsumner33/PyGithub/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/rsumner33/PyGithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/rsumner33/PyGithub/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/rsumner33/PyGithub/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/rsumner33/PyGithub/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/rsumner33/PyGithub/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"id":131512353,"node_id":"MDEwOlJlcG9zaXRvcnkxMzE1MTIzNTM=","name":"PyGithub","full_name":"rsumner33/PyGithub","private":false,"owner":{"login":"rsumner33","id":38535389,"node_id":"MDQ6VXNlcjM4NTM1Mzg5","avatar_url":"https://avatars.githubusercontent.com/u/38535389?v=4","gravatar_id":"","url":"https://api.github.com/users/rsumner33","html_url":"https://github.com/rsumner33","followers_url":"https://api.github.com/users/rsumner33/followers","following_url":"https://api.github.com/users/rsumner33/following{/other_user}","gists_url":"https://api.github.com/users/rsumner33/gists{/gist_id}","starred_url":"https://api.github.com/users/rsumner33/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsumner33/subscriptions","organizations_url":"https://api.github.com/users/rsumner33/orgs","repos_url":"https://api.github.com/users/rsumner33/repos","events_url":"https://api.github.com/users/rsumner33/events{/privacy}","received_events_url":"https://api.github.com/users/rsumner33/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/rsumner33/PyGithub","description":null,"fork":false,"url":"https://api.github.com/repos/rsumner33/PyGithub","forks_url":"https://api.github.com/repos/rsumner33/PyGithub/forks","keys_url":"https://api.github.com/repos/rsumner33/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rsumner33/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rsumner33/PyGithub/teams","hooks_url":"https://api.github.com/repos/rsumner33/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/rsumner33/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/rsumner33/PyGithub/events","assignees_url":"https://api.github.com/repos/rsumner33/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/rsumner33/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/rsumner33/PyGithub/tags","blobs_url":"https://api.github.com/repos/rsumner33/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rsumner33/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rsumner33/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/rsumner33/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rsumner33/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/rsumner33/PyGithub/languages","stargazers_url":"https://api.github.com/repos/rsumner33/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/rsumner33/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/rsumner33/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/rsumner33/PyGithub/subscription","commits_url":"https://api.github.com/repos/rsumner33/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/rsumner33/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/rsumner33/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/rsumner33/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/rsumner33/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/rsumner33/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rsumner33/PyGithub/merges","archive_url":"https://api.github.com/repos/rsumner33/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rsumner33/PyGithub/downloads","issues_url":"https://api.github.com/repos/rsumner33/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/rsumner33/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/rsumner33/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/rsumner33/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rsumner33/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/rsumner33/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/rsumner33/PyGithub/deployments"},"score":1.0},{"url":"https://api.github.com/repos/Natthavee16/PyGithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","node_id":"MDY6Q29tbWl0NjY2NzA2MzYxOjViMDIyNGU4NjhjYzkyNDJjOTQ1MGVmMDJlZmJlMzA5N2FiZDdiYTI=","html_url":"https://github.com/Natthavee16/PyGithub/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/Natthavee16/PyGithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/Natthavee16/PyGithub/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/Natthavee16/PyGithub/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/Natthavee16/PyGithub/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/Natthavee16/PyGithub/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"id":666706361,"node_id":"R_kgDOJ70huQ","name":"PyGithub","full_name":"Natthavee16/PyGithub","private":false,"owner":{"login":"Natthavee16","id":139619947,"node_id":"U_kgDOCFJuaw","avatar_url":"https://avatars.githubusercontent.com/u/139619947?v=4","gravatar_id":"","url":"https://api.github.com/users/Natthavee16","html_url":"https://github.com/Natthavee16","followers_url":"https://api.github.com/users/Natthavee16/followers","following_url":"https://api.github.com/users/Natthavee16/following{/other_user}","gists_url":"https://api.github.com/users/Natthavee16/gists{/gist_id}","starred_url":"https://api.github.com/users/Natthavee16/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Natthavee16/subscriptions","organizations_url":"https://api.github.com/users/Natthavee16/orgs","repos_url":"https://api.github.com/users/Natthavee16/repos","events_url":"https://api.github.com/users/Natthavee16/events{/privacy}","received_events_url":"https://api.github.com/users/Natthavee16/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/Natthavee16/PyGithub","description":null,"fork":false,"url":"https://api.github.com/repos/Natthavee16/PyGithub","forks_url":"https://api.github.com/repos/Natthavee16/PyGithub/forks","keys_url":"https://api.github.com/repos/Natthavee16/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Natthavee16/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Natthavee16/PyGithub/teams","hooks_url":"https://api.github.com/repos/Natthavee16/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/Natthavee16/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/Natthavee16/PyGithub/events","assignees_url":"https://api.github.com/repos/Natthavee16/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/Natthavee16/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/Natthavee16/PyGithub/tags","blobs_url":"https://api.github.com/repos/Natthavee16/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Natthavee16/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Natthavee16/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/Natthavee16/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Natthavee16/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/Natthavee16/PyGithub/languages","stargazers_url":"https://api.github.com/repos/Natthavee16/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/Natthavee16/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/Natthavee16/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/Natthavee16/PyGithub/subscription","commits_url":"https://api.github.com/repos/Natthavee16/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/Natthavee16/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/Natthavee16/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/Natthavee16/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/Natthavee16/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/Natthavee16/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Natthavee16/PyGithub/merges","archive_url":"https://api.github.com/repos/Natthavee16/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Natthavee16/PyGithub/downloads","issues_url":"https://api.github.com/repos/Natthavee16/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/Natthavee16/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/Natthavee16/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/Natthavee16/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Natthavee16/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/Natthavee16/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/Natthavee16/PyGithub/deployments"},"score":1.0},{"url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","node_id":"MDY6Q29tbWl0OTA2NDI3MjY6NWIwMjI0ZTg2OGNjOTI0MmM5NDUwZWYwMmVmYmUzMDk3YWJkN2JhMg==","html_url":"https://github.com/GitHubClassroomTestCMPUT229/resource_pygithub/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/GitHubClassroomTestCMPUT229/resource_pygithub/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"id":90642726,"node_id":"MDEwOlJlcG9zaXRvcnk5MDY0MjcyNg==","name":"resource_pygithub","full_name":"GitHubClassroomTestCMPUT229/resource_pygithub","private":false,"owner":{"login":"GitHubClassroomTestCMPUT229","id":28269390,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MjY5Mzkw","avatar_url":"https://avatars.githubusercontent.com/u/28269390?v=4","gravatar_id":"","url":"https://api.github.com/users/GitHubClassroomTestCMPUT229","html_url":"https://github.com/GitHubClassroomTestCMPUT229","followers_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/followers","following_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/following{/other_user}","gists_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/gists{/gist_id}","starred_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/subscriptions","organizations_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/orgs","repos_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/repos","events_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/events{/privacy}","received_events_url":"https://api.github.com/users/GitHubClassroomTestCMPUT229/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/GitHubClassroomTestCMPUT229/resource_pygithub","description":null,"fork":false,"url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub","forks_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/forks","keys_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/teams","hooks_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/hooks","issue_events_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/issues/events{/number}","events_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/events","assignees_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/assignees{/user}","branches_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/branches{/branch}","tags_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/tags","blobs_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/statuses/{sha}","languages_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/languages","stargazers_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/stargazers","contributors_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/contributors","subscribers_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/subscribers","subscription_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/subscription","commits_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/contents/{+path}","compare_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/merges","archive_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/downloads","issues_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/issues{/number}","pulls_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/pulls{/number}","milestones_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/milestones{/number}","notifications_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/labels{/name}","releases_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/releases{/id}","deployments_url":"https://api.github.com/repos/GitHubClassroomTestCMPUT229/resource_pygithub/deployments"},"score":1.0},{"url":"https://api.github.com/repos/edggge/PyGithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","sha":"5b0224e868cc9242c9450ef02efbe3097abd7ba2","node_id":"MDY6Q29tbWl0MjY2OTIwMjQxOjViMDIyNGU4NjhjYzkyNDJjOTQ1MGVmMDJlZmJlMzA5N2FiZDdiYTI=","html_url":"https://github.com/edggge/PyGithub/commit/5b0224e868cc9242c9450ef02efbe3097abd7ba2","comments_url":"https://api.github.com/repos/edggge/PyGithub/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2/comments","commit":{"url":"https://api.github.com/repos/edggge/PyGithub/git/commits/5b0224e868cc9242c9450ef02efbe3097abd7ba2","author":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"committer":{"date":"2016-12-19T15:26:35.000Z","name":"James Broadhead","email":"jamesbroadhead@gmail.com"},"message":"Fix README instructions","tree":{"url":"https://api.github.com/repos/edggge/PyGithub/git/trees/b3ec599c419218eadc376e74520fae62a0cc5f60","sha":"b3ec599c419218eadc376e74520fae62a0cc5f60"},"comment_count":0},"author":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"jamesbroadhead","id":1382141,"node_id":"MDQ6VXNlcjEzODIxNDE=","avatar_url":"https://avatars.githubusercontent.com/u/1382141?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesbroadhead","html_url":"https://github.com/jamesbroadhead","followers_url":"https://api.github.com/users/jamesbroadhead/followers","following_url":"https://api.github.com/users/jamesbroadhead/following{/other_user}","gists_url":"https://api.github.com/users/jamesbroadhead/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesbroadhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesbroadhead/subscriptions","organizations_url":"https://api.github.com/users/jamesbroadhead/orgs","repos_url":"https://api.github.com/users/jamesbroadhead/repos","events_url":"https://api.github.com/users/jamesbroadhead/events{/privacy}","received_events_url":"https://api.github.com/users/jamesbroadhead/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/edggge/PyGithub/commits/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","html_url":"https://github.com/edggge/PyGithub/commit/77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e","sha":"77fc4e0f9ca22246951e3ec439e02b5d3ad6e93e"}],"repository":{"id":266920241,"node_id":"MDEwOlJlcG9zaXRvcnkyNjY5MjAyNDE=","name":"PyGithub","full_name":"edggge/PyGithub","private":false,"owner":{"login":"edggge","id":64116391,"node_id":"MDQ6VXNlcjY0MTE2Mzkx","avatar_url":"https://avatars.githubusercontent.com/u/64116391?v=4","gravatar_id":"","url":"https://api.github.com/users/edggge","html_url":"https://github.com/edggge","followers_url":"https://api.github.com/users/edggge/followers","following_url":"https://api.github.com/users/edggge/following{/other_user}","gists_url":"https://api.github.com/users/edggge/gists{/gist_id}","starred_url":"https://api.github.com/users/edggge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edggge/subscriptions","organizations_url":"https://api.github.com/users/edggge/orgs","repos_url":"https://api.github.com/users/edggge/repos","events_url":"https://api.github.com/users/edggge/events{/privacy}","received_events_url":"https://api.github.com/users/edggge/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/edggge/PyGithub","description":null,"fork":false,"url":"https://api.github.com/repos/edggge/PyGithub","forks_url":"https://api.github.com/repos/edggge/PyGithub/forks","keys_url":"https://api.github.com/repos/edggge/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/edggge/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/edggge/PyGithub/teams","hooks_url":"https://api.github.com/repos/edggge/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/edggge/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/edggge/PyGithub/events","assignees_url":"https://api.github.com/repos/edggge/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/edggge/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/edggge/PyGithub/tags","blobs_url":"https://api.github.com/repos/edggge/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/edggge/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/edggge/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/edggge/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/edggge/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/edggge/PyGithub/languages","stargazers_url":"https://api.github.com/repos/edggge/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/edggge/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/edggge/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/edggge/PyGithub/subscription","commits_url":"https://api.github.com/repos/edggge/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/edggge/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/edggge/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/edggge/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/edggge/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/edggge/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/edggge/PyGithub/merges","archive_url":"https://api.github.com/repos/edggge/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/edggge/PyGithub/downloads","issues_url":"https://api.github.com/repos/edggge/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/edggge/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/edggge/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/edggge/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/edggge/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/edggge/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/edggge/PyGithub/deployments"},"score":1.0}]} diff --git a/tests/ReplayData/Search.testSearchCommitsOrder.txt b/tests/ReplayData/Search.testSearchCommitsOrder.txt new file mode 100644 index 0000000000..fef6f6a95f --- /dev/null +++ b/tests/ReplayData/Search.testSearchCommitsOrder.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/search/commits?sort=author-date&order=asc&q=hash%3A1265747e992ba7d34a469b6b2f527809f8bf7067+merge%3Afalse +{'Accept': 'application/vnd.github.cloak-preview', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Tue, 07 Jan 2025 19:43:12 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'no-cache'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; param=cloak-preview'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '30'), ('X-RateLimit-Remaining', '27'), ('X-RateLimit-Reset', '1736279046'), ('X-RateLimit-Used', '3'), ('X-RateLimit-Resource', 'search'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', '8326:3E1E16:366DEA5:37AB976:677D83D0')] +{"total_count":4,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1265747e992ba7d34a469b6b2f527809f8bf7067","sha":"1265747e992ba7d34a469b6b2f527809f8bf7067","node_id":"MDY6Q29tbWl0MzU0NDQ5MDoxMjY1NzQ3ZTk5MmJhN2QzNGE0NjliNmIyZjUyNzgwOWY4YmY3MDY3","html_url":"https://github.com/PyGithub/PyGithub/commit/1265747e992ba7d34a469b6b2f527809f8bf7067","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/1265747e992ba7d34a469b6b2f527809f8bf7067/comments","commit":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/1265747e992ba7d34a469b6b2f527809f8bf7067","author":{"date":"2021-06-02T15:00:00.000+10:00","name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"date":"2021-06-02T15:00:00.000+10:00","name":"GitHub","email":"noreply@github.com"},"message":"Do not transform requestHeaders when logging (#1965)\n\nRequester.__log() sanitizes the headers of the request so that\r\nauthentication details are not logged, but this has the side effect of\r\nmeaning that future requests that use the same Requester object will\r\nfail. Usually, this is perfectly fine, since almost every method will\r\nonly make one request -- where this falls down is when we make another\r\nafter a redirect. Make a copy of the requestHeaders, and sanitize those.\r\n\r\nFixes #1959","tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/6e5b9e20c26a6b3ba8c5481a8e2896bb72a91bbb","sha":"6e5b9e20c26a6b3ba8c5481a8e2896bb72a91bbb"},"comment_count":0},"author":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a","html_url":"https://github.com/PyGithub/PyGithub/commit/ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a","sha":"ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a"}],"repository":{"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","user_view_type":"public","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"},"score":1.0},{"url":"https://api.github.com/repos/gquesnell/test3/commits/1265747e992ba7d34a469b6b2f527809f8bf7067","sha":"1265747e992ba7d34a469b6b2f527809f8bf7067","node_id":"MDY6Q29tbWl0NDA0ODg5Mzg1OjEyNjU3NDdlOTkyYmE3ZDM0YTQ2OWI2YjJmNTI3ODA5ZjhiZjcwNjc=","html_url":"https://github.com/gquesnell/test3/commit/1265747e992ba7d34a469b6b2f527809f8bf7067","comments_url":"https://api.github.com/repos/gquesnell/test3/commits/1265747e992ba7d34a469b6b2f527809f8bf7067/comments","commit":{"url":"https://api.github.com/repos/gquesnell/test3/git/commits/1265747e992ba7d34a469b6b2f527809f8bf7067","author":{"date":"2021-06-02T15:00:00.000+10:00","name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"date":"2021-06-02T15:00:00.000+10:00","name":"GitHub","email":"noreply@github.com"},"message":"Do not transform requestHeaders when logging (#1965)\n\nRequester.__log() sanitizes the headers of the request so that\r\nauthentication details are not logged, but this has the side effect of\r\nmeaning that future requests that use the same Requester object will\r\nfail. Usually, this is perfectly fine, since almost every method will\r\nonly make one request -- where this falls down is when we make another\r\nafter a redirect. Make a copy of the requestHeaders, and sanitize those.\r\n\r\nFixes #1959","tree":{"url":"https://api.github.com/repos/gquesnell/test3/git/trees/6e5b9e20c26a6b3ba8c5481a8e2896bb72a91bbb","sha":"6e5b9e20c26a6b3ba8c5481a8e2896bb72a91bbb"},"comment_count":0},"author":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/gquesnell/test3/commits/ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a","html_url":"https://github.com/gquesnell/test3/commit/ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a","sha":"ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a"}],"repository":{"id":404889385,"node_id":"MDEwOlJlcG9zaXRvcnk0MDQ4ODkzODU=","name":"test3","full_name":"gquesnell/test3","private":false,"owner":{"login":"gquesnell","id":68558303,"node_id":"MDQ6VXNlcjY4NTU4MzAz","avatar_url":"https://avatars.githubusercontent.com/u/68558303?v=4","gravatar_id":"","url":"https://api.github.com/users/gquesnell","html_url":"https://github.com/gquesnell","followers_url":"https://api.github.com/users/gquesnell/followers","following_url":"https://api.github.com/users/gquesnell/following{/other_user}","gists_url":"https://api.github.com/users/gquesnell/gists{/gist_id}","starred_url":"https://api.github.com/users/gquesnell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gquesnell/subscriptions","organizations_url":"https://api.github.com/users/gquesnell/orgs","repos_url":"https://api.github.com/users/gquesnell/repos","events_url":"https://api.github.com/users/gquesnell/events{/privacy}","received_events_url":"https://api.github.com/users/gquesnell/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/gquesnell/test3","description":"test3 description","fork":false,"url":"https://api.github.com/repos/gquesnell/test3","forks_url":"https://api.github.com/repos/gquesnell/test3/forks","keys_url":"https://api.github.com/repos/gquesnell/test3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gquesnell/test3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gquesnell/test3/teams","hooks_url":"https://api.github.com/repos/gquesnell/test3/hooks","issue_events_url":"https://api.github.com/repos/gquesnell/test3/issues/events{/number}","events_url":"https://api.github.com/repos/gquesnell/test3/events","assignees_url":"https://api.github.com/repos/gquesnell/test3/assignees{/user}","branches_url":"https://api.github.com/repos/gquesnell/test3/branches{/branch}","tags_url":"https://api.github.com/repos/gquesnell/test3/tags","blobs_url":"https://api.github.com/repos/gquesnell/test3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gquesnell/test3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gquesnell/test3/git/refs{/sha}","trees_url":"https://api.github.com/repos/gquesnell/test3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gquesnell/test3/statuses/{sha}","languages_url":"https://api.github.com/repos/gquesnell/test3/languages","stargazers_url":"https://api.github.com/repos/gquesnell/test3/stargazers","contributors_url":"https://api.github.com/repos/gquesnell/test3/contributors","subscribers_url":"https://api.github.com/repos/gquesnell/test3/subscribers","subscription_url":"https://api.github.com/repos/gquesnell/test3/subscription","commits_url":"https://api.github.com/repos/gquesnell/test3/commits{/sha}","git_commits_url":"https://api.github.com/repos/gquesnell/test3/git/commits{/sha}","comments_url":"https://api.github.com/repos/gquesnell/test3/comments{/number}","issue_comment_url":"https://api.github.com/repos/gquesnell/test3/issues/comments{/number}","contents_url":"https://api.github.com/repos/gquesnell/test3/contents/{+path}","compare_url":"https://api.github.com/repos/gquesnell/test3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gquesnell/test3/merges","archive_url":"https://api.github.com/repos/gquesnell/test3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gquesnell/test3/downloads","issues_url":"https://api.github.com/repos/gquesnell/test3/issues{/number}","pulls_url":"https://api.github.com/repos/gquesnell/test3/pulls{/number}","milestones_url":"https://api.github.com/repos/gquesnell/test3/milestones{/number}","notifications_url":"https://api.github.com/repos/gquesnell/test3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gquesnell/test3/labels{/name}","releases_url":"https://api.github.com/repos/gquesnell/test3/releases{/id}","deployments_url":"https://api.github.com/repos/gquesnell/test3/deployments"},"score":1.0},{"url":"https://api.github.com/repos/anaduque13/Technical-Take-home/commits/1265747e992ba7d34a469b6b2f527809f8bf7067","sha":"1265747e992ba7d34a469b6b2f527809f8bf7067","node_id":"MDY6Q29tbWl0NTAzOTIxMTkzOjEyNjU3NDdlOTkyYmE3ZDM0YTQ2OWI2YjJmNTI3ODA5ZjhiZjcwNjc=","html_url":"https://github.com/anaduque13/Technical-Take-home/commit/1265747e992ba7d34a469b6b2f527809f8bf7067","comments_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/commits/1265747e992ba7d34a469b6b2f527809f8bf7067/comments","commit":{"url":"https://api.github.com/repos/anaduque13/Technical-Take-home/git/commits/1265747e992ba7d34a469b6b2f527809f8bf7067","author":{"date":"2021-06-02T15:00:00.000+10:00","name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"date":"2021-06-02T15:00:00.000+10:00","name":"GitHub","email":"noreply@github.com"},"message":"Do not transform requestHeaders when logging (#1965)\n\nRequester.__log() sanitizes the headers of the request so that\r\nauthentication details are not logged, but this has the side effect of\r\nmeaning that future requests that use the same Requester object will\r\nfail. Usually, this is perfectly fine, since almost every method will\r\nonly make one request -- where this falls down is when we make another\r\nafter a redirect. Make a copy of the requestHeaders, and sanitize those.\r\n\r\nFixes #1959","tree":{"url":"https://api.github.com/repos/anaduque13/Technical-Take-home/git/trees/6e5b9e20c26a6b3ba8c5481a8e2896bb72a91bbb","sha":"6e5b9e20c26a6b3ba8c5481a8e2896bb72a91bbb"},"comment_count":0},"author":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/anaduque13/Technical-Take-home/commits/ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a","html_url":"https://github.com/anaduque13/Technical-Take-home/commit/ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a","sha":"ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a"}],"repository":{"id":503921193,"node_id":"R_kgDOHgk6KQ","name":"Technical-Take-home","full_name":"anaduque13/Technical-Take-home","private":false,"owner":{"login":"anaduque13","id":107579908,"node_id":"U_kgDOBmmKBA","avatar_url":"https://avatars.githubusercontent.com/u/107579908?v=4","gravatar_id":"","url":"https://api.github.com/users/anaduque13","html_url":"https://github.com/anaduque13","followers_url":"https://api.github.com/users/anaduque13/followers","following_url":"https://api.github.com/users/anaduque13/following{/other_user}","gists_url":"https://api.github.com/users/anaduque13/gists{/gist_id}","starred_url":"https://api.github.com/users/anaduque13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anaduque13/subscriptions","organizations_url":"https://api.github.com/users/anaduque13/orgs","repos_url":"https://api.github.com/users/anaduque13/repos","events_url":"https://api.github.com/users/anaduque13/events{/privacy}","received_events_url":"https://api.github.com/users/anaduque13/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/anaduque13/Technical-Take-home","description":null,"fork":false,"url":"https://api.github.com/repos/anaduque13/Technical-Take-home","forks_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/forks","keys_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/keys{/key_id}","collaborators_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/teams","hooks_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/hooks","issue_events_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/issues/events{/number}","events_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/events","assignees_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/assignees{/user}","branches_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/branches{/branch}","tags_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/tags","blobs_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/git/refs{/sha}","trees_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/git/trees{/sha}","statuses_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/statuses/{sha}","languages_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/languages","stargazers_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/stargazers","contributors_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/contributors","subscribers_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/subscribers","subscription_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/subscription","commits_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/commits{/sha}","git_commits_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/git/commits{/sha}","comments_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/comments{/number}","issue_comment_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/issues/comments{/number}","contents_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/contents/{+path}","compare_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/compare/{base}...{head}","merges_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/merges","archive_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/downloads","issues_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/issues{/number}","pulls_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/pulls{/number}","milestones_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/milestones{/number}","notifications_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/labels{/name}","releases_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/releases{/id}","deployments_url":"https://api.github.com/repos/anaduque13/Technical-Take-home/deployments"},"score":1.0},{"url":"https://api.github.com/repos/Natthavee16/PyGithub/commits/1265747e992ba7d34a469b6b2f527809f8bf7067","sha":"1265747e992ba7d34a469b6b2f527809f8bf7067","node_id":"MDY6Q29tbWl0NjY2NzA2MzYxOjEyNjU3NDdlOTkyYmE3ZDM0YTQ2OWI2YjJmNTI3ODA5ZjhiZjcwNjc=","html_url":"https://github.com/Natthavee16/PyGithub/commit/1265747e992ba7d34a469b6b2f527809f8bf7067","comments_url":"https://api.github.com/repos/Natthavee16/PyGithub/commits/1265747e992ba7d34a469b6b2f527809f8bf7067/comments","commit":{"url":"https://api.github.com/repos/Natthavee16/PyGithub/git/commits/1265747e992ba7d34a469b6b2f527809f8bf7067","author":{"date":"2021-06-02T15:00:00.000+10:00","name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"date":"2021-06-02T15:00:00.000+10:00","name":"GitHub","email":"noreply@github.com"},"message":"Do not transform requestHeaders when logging (#1965)\n\nRequester.__log() sanitizes the headers of the request so that\r\nauthentication details are not logged, but this has the side effect of\r\nmeaning that future requests that use the same Requester object will\r\nfail. Usually, this is perfectly fine, since almost every method will\r\nonly make one request -- where this falls down is when we make another\r\nafter a redirect. Make a copy of the requestHeaders, and sanitize those.\r\n\r\nFixes #1959","tree":{"url":"https://api.github.com/repos/Natthavee16/PyGithub/git/trees/6e5b9e20c26a6b3ba8c5481a8e2896bb72a91bbb","sha":"6e5b9e20c26a6b3ba8c5481a8e2896bb72a91bbb"},"comment_count":0},"author":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars.githubusercontent.com/u/15225059?v=4","gravatar_id":"","url":"https://api.github.com/users/s-t-e-v-e-n-k","html_url":"https://github.com/s-t-e-v-e-n-k","followers_url":"https://api.github.com/users/s-t-e-v-e-n-k/followers","following_url":"https://api.github.com/users/s-t-e-v-e-n-k/following{/other_user}","gists_url":"https://api.github.com/users/s-t-e-v-e-n-k/gists{/gist_id}","starred_url":"https://api.github.com/users/s-t-e-v-e-n-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s-t-e-v-e-n-k/subscriptions","organizations_url":"https://api.github.com/users/s-t-e-v-e-n-k/orgs","repos_url":"https://api.github.com/users/s-t-e-v-e-n-k/repos","events_url":"https://api.github.com/users/s-t-e-v-e-n-k/events{/privacy}","received_events_url":"https://api.github.com/users/s-t-e-v-e-n-k/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"url":"https://api.github.com/repos/Natthavee16/PyGithub/commits/ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a","html_url":"https://github.com/Natthavee16/PyGithub/commit/ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a","sha":"ed7d0fe94f063d228a7dd95b7df5ae1bedb0707a"}],"repository":{"id":666706361,"node_id":"R_kgDOJ70huQ","name":"PyGithub","full_name":"Natthavee16/PyGithub","private":false,"owner":{"login":"Natthavee16","id":139619947,"node_id":"U_kgDOCFJuaw","avatar_url":"https://avatars.githubusercontent.com/u/139619947?v=4","gravatar_id":"","url":"https://api.github.com/users/Natthavee16","html_url":"https://github.com/Natthavee16","followers_url":"https://api.github.com/users/Natthavee16/followers","following_url":"https://api.github.com/users/Natthavee16/following{/other_user}","gists_url":"https://api.github.com/users/Natthavee16/gists{/gist_id}","starred_url":"https://api.github.com/users/Natthavee16/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Natthavee16/subscriptions","organizations_url":"https://api.github.com/users/Natthavee16/orgs","repos_url":"https://api.github.com/users/Natthavee16/repos","events_url":"https://api.github.com/users/Natthavee16/events{/privacy}","received_events_url":"https://api.github.com/users/Natthavee16/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/Natthavee16/PyGithub","description":null,"fork":false,"url":"https://api.github.com/repos/Natthavee16/PyGithub","forks_url":"https://api.github.com/repos/Natthavee16/PyGithub/forks","keys_url":"https://api.github.com/repos/Natthavee16/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Natthavee16/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Natthavee16/PyGithub/teams","hooks_url":"https://api.github.com/repos/Natthavee16/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/Natthavee16/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/Natthavee16/PyGithub/events","assignees_url":"https://api.github.com/repos/Natthavee16/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/Natthavee16/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/Natthavee16/PyGithub/tags","blobs_url":"https://api.github.com/repos/Natthavee16/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Natthavee16/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Natthavee16/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/Natthavee16/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Natthavee16/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/Natthavee16/PyGithub/languages","stargazers_url":"https://api.github.com/repos/Natthavee16/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/Natthavee16/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/Natthavee16/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/Natthavee16/PyGithub/subscription","commits_url":"https://api.github.com/repos/Natthavee16/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/Natthavee16/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/Natthavee16/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/Natthavee16/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/Natthavee16/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/Natthavee16/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Natthavee16/PyGithub/merges","archive_url":"https://api.github.com/repos/Natthavee16/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Natthavee16/PyGithub/downloads","issues_url":"https://api.github.com/repos/Natthavee16/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/Natthavee16/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/Natthavee16/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/Natthavee16/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Natthavee16/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/Natthavee16/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/Natthavee16/PyGithub/deployments"},"score":1.0}]} diff --git a/tests/ReplayData/SecurityAndAnalysis.setUp.txt b/tests/ReplayData/SecurityAndAnalysis.setUp.txt index f59db74f51..7fa9324ab4 100644 --- a/tests/ReplayData/SecurityAndAnalysis.setUp.txt +++ b/tests/ReplayData/SecurityAndAnalysis.setUp.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/transmission-web-control/transmission-web-control +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00: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/"60d4519044dda2b5c9593f4aa02b569a78ec686f39aa039dd00455707d723d9f"'), ('Last-Modified', 'Thu, 01 Jun 2023 07:39:48 GMT'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4680'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '320'), ('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', 'EB88:1556:436041:46EAA0:64785E28')] -{"id":631628708,"node_id":"R_kgDOJaXjpA","name":"transmission-web-control","full_name":"transmission-web-control/transmission-web-control","private":false,"owner":{"login":"transmission-web-control","id":131607464,"node_id":"O_kgDOB9grqA","avatar_url":"https://avatars.githubusercontent.com/u/131607464?v=4","gravatar_id":"","url":"https://api.github.com/users/transmission-web-control","html_url":"https://github.com/transmission-web-control","followers_url":"https://api.github.com/users/transmission-web-control/followers","following_url":"https://api.github.com/users/transmission-web-control/following{/other_user}","gists_url":"https://api.github.com/users/transmission-web-control/gists{/gist_id}","starred_url":"https://api.github.com/users/transmission-web-control/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/transmission-web-control/subscriptions","organizations_url":"https://api.github.com/users/transmission-web-control/orgs","repos_url":"https://api.github.com/users/transmission-web-control/repos","events_url":"https://api.github.com/users/transmission-web-control/events{/privacy}","received_events_url":"https://api.github.com/users/transmission-web-control/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/transmission-web-control/transmission-web-control","description":"maintained fork of ronggang/transmission-web-control","fork":false,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control","forks_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/forks","keys_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/keys{/key_id}","collaborators_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/teams","hooks_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/hooks","issue_events_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/issues/events{/number}","events_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/events","assignees_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/assignees{/user}","branches_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/branches{/branch}","tags_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/tags","blobs_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/git/refs{/sha}","trees_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/git/trees{/sha}","statuses_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/statuses/{sha}","languages_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/languages","stargazers_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/stargazers","contributors_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/contributors","subscribers_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/subscribers","subscription_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/subscription","commits_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/commits{/sha}","git_commits_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/git/commits{/sha}","comments_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/comments{/number}","issue_comment_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/issues/comments{/number}","contents_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/contents/{+path}","compare_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/compare/{base}...{head}","merges_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/merges","archive_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/downloads","issues_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/issues{/number}","pulls_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/pulls{/number}","milestones_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/milestones{/number}","notifications_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/labels{/name}","releases_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/releases{/id}","deployments_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/deployments","created_at":"2023-04-23T16:14:17Z","updated_at":"2023-06-01T07:39:48Z","pushed_at":"2023-05-31T22:12:53Z","git_url":"git://github.com/transmission-web-control/transmission-web-control.git","ssh_url":"git@github.com:transmission-web-control/transmission-web-control.git","clone_url":"https://github.com/transmission-web-control/transmission-web-control.git","svn_url":"https://github.com/transmission-web-control/transmission-web-control","homepage":"","size":28072,"stargazers_count":79,"watchers_count":79,"language":"CSS","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":6,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":9,"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":["transmission","transmission-web-control"],"visibility":"public","forks":6,"open_issues":9,"watchers":79,"default_branch":"master","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"BLANK","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","organization":{"login":"transmission-web-control","id":131607464,"node_id":"O_kgDOB9grqA","avatar_url":"https://avatars.githubusercontent.com/u/131607464?v=4","gravatar_id":"","url":"https://api.github.com/users/transmission-web-control","html_url":"https://github.com/transmission-web-control","followers_url":"https://api.github.com/users/transmission-web-control/followers","following_url":"https://api.github.com/users/transmission-web-control/following{/other_user}","gists_url":"https://api.github.com/users/transmission-web-control/gists{/gist_id}","starred_url":"https://api.github.com/users/transmission-web-control/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/transmission-web-control/subscriptions","organizations_url":"https://api.github.com/users/transmission-web-control/orgs","repos_url":"https://api.github.com/users/transmission-web-control/repos","events_url":"https://api.github.com/users/transmission-web-control/events{/privacy}","received_events_url":"https://api.github.com/users/transmission-web-control/received_events","type":"Organization","site_admin":false},"security_and_analysis": {"advanced_security": {"status": "disabled"}, "secret_scanning": {"status": "disabled"}, "secret_scanning_push_protection": {"status": "disabled"}, "dependabot_security_updates": {"status": "disabled"}, "secret_scanning_non_provider_patterns": {"status": "disabled"}, "secret_scanning_validity_checks": {"status": "disabled"}},"network_count":6,"subscribers_count":3} +[('Date', 'Tue, 07 Jan 2025 08:54:00 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"37ea58577585c38f93634ef43114c657de2581286eb6976ec18c274de296eff0"'), ('Last-Modified', 'Mon, 06 Jan 2025 21:35:40 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1736243610'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'E7D6:3EE039:1381942:1418241:677CEBA8')] +{"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","user_view_type":"public","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":"2025-01-06T21:35:40Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7122,"watchers_count":7122,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":357,"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":1793,"open_issues":357,"watchers":7122,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"PR_BODY","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"enabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":111} diff --git a/tests/ReplayData/Tag.setUp.txt b/tests/ReplayData/Tag.setUp.txt index 2907948893..34ce40c83c 100644 --- a/tests/ReplayData/Tag.setUp.txt +++ b/tests/ReplayData/Tag.setUp.txt @@ -2,31 +2,20 @@ https GET api.github.com None -/user +/repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4999'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"9de15de3e62b82f61ccc4ffeadea7f9f"'), ('date', 'Sat, 19 May 2012 04:49:44 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"collaborators":0,"type":"User","public_gists":1,"company":"Criteo","url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","total_private_repos":5,"private_gists":5,"plan":{"collaborators":1,"private_repos":5,"name":"micro","space":614400},"public_repos":11,"followers":13,"owned_private_repos":5,"hireable":false,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","blog":"http://vincent-jacques.net","email":"vincent@vincent-jacques.net","bio":"","disk_usage":16768,"html_url":"https://github.com/jacquev6","name":"Vincent Jacques","created_at":"2010-07-09T06:10:06Z","location":"Paris, France","id":327146,"following":24} +[('Date', 'Tue, 07 Jan 2025 09:17:07 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"37ea58577585c38f93634ef43114c657de2581286eb6976ec18c274de296eff0"'), ('Last-Modified', 'Mon, 06 Jan 2025 21:35:40 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4992'), ('X-RateLimit-Reset', '1736243610'), ('X-RateLimit-Used', '8'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'E546:1705F:14A20EF:153E971:677CF113')] +{"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","user_view_type":"public","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":"2025-01-06T21:35:40Z","pushed_at":"2024-12-19T12:01:11Z","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":16425,"stargazers_count":7122,"watchers_count":7122,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":357,"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":1793,"open_issues":357,"watchers":7122,"default_branch":"main","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":false,"allow_auto_merge":false,"delete_branch_on_merge":true,"allow_update_branch":true,"use_squash_pr_title_as_default":true,"squash_merge_commit_message":"PR_BODY","squash_merge_commit_title":"PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","custom_properties":{},"organization":{"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","user_view_type":"public","site_admin":false},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"enabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":111} https GET api.github.com None -/repos/jacquev6/PyGithub +/repos/PyGithub/PyGithub/tags {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4998'), ('content-length', '1097'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"168623303cdf933a5eda91a18bb2ad76"'), ('date', 'Sat, 19 May 2012 04:49:44 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"mirror_url":null,"svn_url":"https://github.com/jacquev6/PyGithub","has_wiki":false,"has_issues":true,"git_url":"git://github.com/jacquev6/PyGithub.git","updated_at":"2012-05-18T20:30:15Z","forks":2,"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","open_issues":17,"fork":false,"ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-18T20:30:14Z","size":220,"private":false,"has_downloads":true,"watchers":13,"html_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"name":"PyGithub","permissions":{"pull":true,"admin":true,"push":true},"language":"Python","description":"Python library implementing the full Github API v3","created_at":"2012-02-25T12:53:47Z","id":3544490} - -https -GET -api.github.com -None -/repos/jacquev6/PyGithub/tags -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4997'), ('content-length', '1873'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d43a1ebbb23a4f99f4fbac19caadc4af"'), ('date', 'Sat, 19 May 2012 04:49:45 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"zipball_url":"https://github.com/jacquev6/PyGithub/zipball/v0.3","tarball_url":"https://github.com/jacquev6/PyGithub/tarball/v0.3","name":"v0.3","commit":{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/636e6112deb72277b3bffcc3303cd7e8a7431a5d","sha":"636e6112deb72277b3bffcc3303cd7e8a7431a5d"}},{"zipball_url":"https://github.com/jacquev6/PyGithub/zipball/v0.4","tarball_url":"https://github.com/jacquev6/PyGithub/tarball/v0.4","name":"v0.4","commit":{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a3be28756101370fbc689eec3a7825c4c385a6c9","sha":"a3be28756101370fbc689eec3a7825c4c385a6c9"}},{"zipball_url":"https://github.com/jacquev6/PyGithub/zipball/v0.5","tarball_url":"https://github.com/jacquev6/PyGithub/tarball/v0.5","name":"v0.5","commit":{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","sha":"936f4a97f1a86392637ec002bbf89ff036a5062d"}},{"zipball_url":"https://github.com/jacquev6/PyGithub/zipball/v0.6","tarball_url":"https://github.com/jacquev6/PyGithub/tarball/v0.6","name":"v0.6","commit":{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"}},{"zipball_url":"https://github.com/jacquev6/PyGithub/zipball/v0.1","tarball_url":"https://github.com/jacquev6/PyGithub/tarball/v0.1","name":"v0.1","commit":{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dbdcda3591980de42617814f792969126e6402c3","sha":"dbdcda3591980de42617814f792969126e6402c3"}},{"zipball_url":"https://github.com/jacquev6/PyGithub/zipball/v0.2","tarball_url":"https://github.com/jacquev6/PyGithub/tarball/v0.2","name":"v0.2","commit":{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/9f0b05161f9d1962b9156e6c91fc04f382028240","sha":"9f0b05161f9d1962b9156e6c91fc04f382028240"}}] +[('Date', 'Tue, 07 Jan 2025 09:17:07 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"7c11b3f5a19186a7adac381c31badaa3371d9141659ffe0774df39cb990e4c4c"'), ('Last-Modified', 'Mon, 06 Jan 2025 21:35:40 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4991'), ('X-RateLimit-Reset', '1736243610'), ('X-RateLimit-Used', '9'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'E552:17154:14F975C:1596001:677CF113')] +[{"name":"v2.5.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.5.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.5.0","commit":{"sha":"19ddb9f4fd996e99a5010d271b3c2e76dd280fb5","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/19ddb9f4fd996e99a5010d271b3c2e76dd280fb5"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuNS4w"},{"name":"v2.4.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.4.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.4.0","commit":{"sha":"85087354078e426125dbbf88041bbaa6f35d8199","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/85087354078e426125dbbf88041bbaa6f35d8199"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuNC4w"},{"name":"v2.3.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.3.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.3.0","commit":{"sha":"7266e812ed2976ea36a4303edecfe5d75522343f","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/7266e812ed2976ea36a4303edecfe5d75522343f"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuMy4w"},{"name":"v2.2.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.2.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.2.0","commit":{"sha":"7e7653fb7cb054d3b03dd5f89dea1a2a79350827","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/7e7653fb7cb054d3b03dd5f89dea1a2a79350827"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuMi4w"},{"name":"v2.1.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.1.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.1.1","commit":{"sha":"e584a90f6706c3b590a20e1c9caac7874ba6b122","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e584a90f6706c3b590a20e1c9caac7874ba6b122"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuMS4x"},{"name":"v2.1.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.1.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.1.0","commit":{"sha":"467e0268eac67d0635948f1f3e0313365fb242a1","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/467e0268eac67d0635948f1f3e0313365fb242a1"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuMS4w"},{"name":"v2.1.0.post0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.1.0.post0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.1.0.post0","commit":{"sha":"035c88f1aae81df6c4cb91c4fb22ccd268a8b335","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/035c88f1aae81df6c4cb91c4fb22ccd268a8b335"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuMS4wLnBvc3Qw"},{"name":"v2.0.1-preview","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.0.1-preview","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.0.1-preview","commit":{"sha":"50299c92f4a0fdde3e66900e9fbdb75cb3c4d559","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/50299c92f4a0fdde3e66900e9fbdb75cb3c4d559"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuMC4xLXByZXZpZXc="},{"name":"v2.0.0-preview.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.0.0-preview.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.0.0-preview.1","commit":{"sha":"62436e6f54be85cd800a5bf4aacd8e34ddac9232","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/62436e6f54be85cd800a5bf4aacd8e34ddac9232"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuMC4wLXByZXZpZXcuMQ=="},{"name":"v2.0.0-preview","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.0.0-preview","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.0.0-preview","commit":{"sha":"bc68626941368d6350a6b5bca3321d2143151c01","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/bc68626941368d6350a6b5bca3321d2143151c01"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuMC4wLXByZXZpZXc="},{"name":"v2.0.0-alpha.4","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.0.0-alpha.4","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.0.0-alpha.4","commit":{"sha":"c5a2bb0934ffc04fcd42d0b55e1fec7810bd95b7","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c5a2bb0934ffc04fcd42d0b55e1fec7810bd95b7"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuMC4wLWFscGhhLjQ="},{"name":"v2.0.0.-alpha.3","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.0.0.-alpha.3","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.0.0.-alpha.3","commit":{"sha":"d737ccbe2ab54c747374d2a8f1bc9268aa25372d","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d737ccbe2ab54c747374d2a8f1bc9268aa25372d"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuMC4wLi1hbHBoYS4z"},{"name":"v2.0.0-alpha.2","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.0.0-alpha.2","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.0.0-alpha.2","commit":{"sha":"4d4c2ed3c79e4fe4e58b0a7b9dbd976cb92b22bb","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4d4c2ed3c79e4fe4e58b0a7b9dbd976cb92b22bb"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuMC4wLWFscGhhLjI="},{"name":"v2.0.0-alpha.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.0.0-alpha.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.0.0-alpha.1","commit":{"sha":"a27948a3c5ad70f2818379ae07953405fcee9d0d","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a27948a3c5ad70f2818379ae07953405fcee9d0d"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuMC4wLWFscGhhLjE="},{"name":"v1.59.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.59.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.59.1","commit":{"sha":"8c60234954be68c666417690cfee0463401af7c0","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8c60234954be68c666417690cfee0463401af7c0"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTkuMQ=="},{"name":"v1.59.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.59.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.59.0","commit":{"sha":"14ae2cad4ceeefe9a0f70916af03f0a2017ca213","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/14ae2cad4ceeefe9a0f70916af03f0a2017ca213"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTkuMA=="},{"name":"v1.58.2","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.58.2","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.58.2","commit":{"sha":"c2b1db917bbadf9137e0113e97cee1f241319597","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c2b1db917bbadf9137e0113e97cee1f241319597"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTguMg=="},{"name":"v1.58.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.58.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.58.1","commit":{"sha":"dbc26d05d46b5a98693052303da2d1ceaed1516c","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/dbc26d05d46b5a98693052303da2d1ceaed1516c"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTguMQ=="},{"name":"v1.58.0","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.58.0","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.58.0","commit":{"sha":"5d1d1612ad4e624b9958e42afe769fc3b3c36503","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/5d1d1612ad4e624b9958e42afe769fc3b3c36503"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTguMA=="},{"name":"v1.57","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.57","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.57","commit":{"sha":"948edc5bb370af5a1d0f4925dea2b17f68ef4927","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/948edc5bb370af5a1d0f4925dea2b17f68ef4927"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTc="},{"name":"v1.56","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.56","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.56","commit":{"sha":"c677ced98d157e98015ef85644f8f465af2fa3a3","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/c677ced98d157e98015ef85644f8f465af2fa3a3"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTY="},{"name":"v1.55","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.55","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.55","commit":{"sha":"31538337faaa61e104afede75a5fac802c9a1ab3","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/31538337faaa61e104afede75a5fac802c9a1ab3"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTU="},{"name":"v1.54.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.54.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.54.1","commit":{"sha":"34d097ce473601624722b90fc5d0396011dd3acb","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/34d097ce473601624722b90fc5d0396011dd3acb"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTQuMQ=="},{"name":"v1.54.0.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.54.0.1","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.54.0.1","commit":{"sha":"069e94dc4da5051ec4adb59a3f2a6ad51862c39f","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/069e94dc4da5051ec4adb59a3f2a6ad51862c39f"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTQuMC4x"},{"name":"v1.54","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.54","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.54","commit":{"sha":"951fcdf23f8c657b525dee78086bc4dfd42ef810","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/951fcdf23f8c657b525dee78086bc4dfd42ef810"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTQ="},{"name":"v1.53","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.53","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.53","commit":{"sha":"743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTM="},{"name":"v1.52","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.52","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.52","commit":{"sha":"707246519e38ac61c39a482542034b03dc316bba","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/707246519e38ac61c39a482542034b03dc316bba"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTI="},{"name":"v1.51","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.51","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.51","commit":{"sha":"0ca534ee1c0d6c6ddcf5f238ffe1838d75a8e082","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/0ca534ee1c0d6c6ddcf5f238ffe1838d75a8e082"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTE="},{"name":"v1.50","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.50","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.50","commit":{"sha":"a9f174bd1d6da6cf4053e09349e7e22b0d8fee09","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/a9f174bd1d6da6cf4053e09349e7e22b0d8fee09"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNTA="},{"name":"v1.47","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v1.47","tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v1.47","commit":{"sha":"afb1259a4e52d7bbee8415a523d78c3a428968a8","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/afb1259a4e52d7bbee8415a523d78c3a428968a8"},"node_id":"MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjEuNDc="}] diff --git a/tests/ReplayData/Team.setUp.txt b/tests/ReplayData/Team.setUp.txt index 870faac819..813378fb39 100644 --- a/tests/ReplayData/Team.setUp.txt +++ b/tests/ReplayData/Team.setUp.txt @@ -6,16 +6,16 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4976'), ('content-length', '716'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4862bcec9fa538316e2fcd73be37b846"'), ('date', 'Sat, 26 May 2012 21:09:52 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"public_gists":0,"type":"Organization","disk_usage":112,"private_gists":0,"public_repos":2,"url":"https://api.github.com/orgs/BeaverSoftware","total_private_repos":0,"plan":{"private_repos":0,"name":"free","space":307200},"blog":null,"avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","owned_private_repos":0,"collaborators":0,"company":null,"login":"BeaverSoftware","email":null,"followers":0,"name":null,"created_at":"2012-02-09T19:20:12Z","location":"Paris, France","id":1424031,"billing_email":"BeaverSoftware@vincent-jacques.net","following":0,"html_url":"https://github.com/BeaverSoftware"} +[('Date', 'Tue, 07 Jan 2025 09:31:29 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"f93b5f0e7c6e49aeed8ad94226b513de97f9a4198a40ad97004144298f9cc205"'), ('Last-Modified', 'Tue, 20 Aug 2024 08:44:26 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'admin:org, read:org, repo, user, write:org'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4986'), ('X-RateLimit-Reset', '1736243610'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A432:3F0E31:17360F4:17D648A:677CF470')] +{"login":"BeaverSoftware","id":1234567,"node_id":"AbCdEfG","url":"https://api.github.com/orgs/BeaverSoftware","repos_url":"https://api.github.com/orgs/BeaverSoftware/repos","events_url":"https://api.github.com/orgs/BeaverSoftware/events","hooks_url":"https://api.github.com/orgs/BeaverSoftware/hooks","issues_url":"https://api.github.com/orgs/BeaverSoftware/issues","members_url":"https://api.github.com/orgs/BeaverSoftware/members{/member}","public_members_url":"https://api.github.com/orgs/BeaverSoftware/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/1234567?v=4","description":"DESCRIPTION","name":"BeaverSoftware","company":null,"blog":"https://www.beaversoftware.com","location":"Earth","email":"mail@example.com","twitter_username":null,"is_verified":false,"has_organization_projects":true,"has_repository_projects":true,"public_repos":121,"public_gists":0,"followers":130,"following":0,"html_url":"https://github.com/BeaverSoftware","created_at":"2024-08-30T16:16:41Z","updated_at":"2024-08-20T08:44:26Z","archived_at":null,"type":"Organization","total_private_repos":176,"owned_private_repos":191,"private_gists":null,"disk_usage":null,"collaborators":null,"billing_email":null,"default_repository_permission":null,"members_can_create_repositories":false,"two_factor_requirement_enabled":null,"members_allowed_repository_creation_type":"none","members_can_create_public_repositories":false,"members_can_create_private_repositories":false,"members_can_create_internal_repositories":false,"members_can_create_pages":true,"members_can_fork_private_repositories":false,"web_commit_signoff_required":false,"deploy_keys_enabled_for_repositories":true,"members_can_create_public_pages":true,"members_can_create_private_pages":true,"plan":{"name":"enterprise","space":123456789,"private_repos":999999,"filled_seats":643,"seats":1024}} https GET api.github.com None -/teams/189850 +/teams/12345678 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4975'), ('content-length', '145'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"03555a65309084f36bcf959063a39d35"'), ('date', 'Sat, 26 May 2012 21:09:52 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"repos_count":0,"url":"https://api.github.com/teams/189850","members_count":0,"name":"Team created by PyGithub","slug": "pygithub","privacy":"closed","permission":"pull","id":189850,"organization":{"login":"BeaverSoftware","id":1424031,"url":"https://api.github.com/orgs/BeaverSoftware"},"html_url":"https://github.com/orgs/BeaverSoftware/teams/core"} +[('Date', 'Tue, 07 Jan 2025 09:31:29 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"355c12f28bc29a53548177de8b9c54554a9cd66c3b85ee09559047f197ddc28d"'), ('Last-Modified', 'Tue, 18 Jun 2024 10:27:23 GMT'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', 'admin:org, read:org, repo, user, write:org'), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Deprecation', 'Sat, 01 Feb 2020 00:00:00 GMT'), ('Sunset', 'Mon, 01 Feb 2021 00:00:00 GMT'), ('Link', '; rel="deprecation"; type="text/html", ; rel="alternate"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4985'), ('X-RateLimit-Reset', '1736243610'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'A436:3DA53A:1630C54:16D0FEF:677CF471')] +{"name":"Team","id":12345678,"node_id":"AbCdEfG","slug":"team-slug","description":"a team","privacy":"closed","notification_setting":"notifications_disabled","url":"https://api.github.com/organizations/1234567/team/12345678","html_url":"https://github.com/orgs/BeaverSoftware/teams/team-slug","members_url":"https://api.github.com/organizations/1234567/team/12345678/members{/member}","repositories_url":"https://api.github.com/organizations/1234567/team/12345678/repos","permission":"pull","created_at":"2024-06-18T10:27:23Z","updated_at":"2024-06-18T10:27:23Z","members_count":1,"repos_count":0,"organization":{"login":"BeaverSoftware","id":1234567,"node_id":"AbCdEfG","url":"https://api.github.com/orgs/BeaverSoftware","repos_url":"https://api.github.com/orgs/BeaverSoftware/repos","events_url":"https://api.github.com/orgs/BeaverSoftware/events","hooks_url":"https://api.github.com/orgs/BeaverSoftware/hooks","issues_url":"https://api.github.com/orgs/BeaverSoftware/issues","members_url":"https://api.github.com/orgs/BeaverSoftware/members{/member}","public_members_url":"https://api.github.com/orgs/BeaverSoftware/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/1234567?v=4","description":"DESCRIPTION","name":"BeaverSoftware","company":null,"blog":"https://www.beaversoftware.com","location":"Earth","email":"mail@example.com","twitter_username":null,"is_verified":false,"has_organization_projects":true,"has_repository_projects":true,"public_repos":121,"public_gists":0,"followers":130,"following":0,"html_url":"https://github.com/BeaverSoftware","created_at":"2016-08-30T16:16:41Z","updated_at":"2024-08-20T08:44:26Z","archived_at":null,"type":"Organization"},"parent":null} diff --git a/tests/ReplayData/Team.testDelete.txt b/tests/ReplayData/Team.testDelete.txt index 1886a7dd5c..da15f242d0 100644 --- a/tests/ReplayData/Team.testDelete.txt +++ b/tests/ReplayData/Team.testDelete.txt @@ -2,7 +2,7 @@ https DELETE api.github.com None -/teams/189850 +/organizations/1234567/team/12345678 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/Team.testDiscussions.txt b/tests/ReplayData/Team.testDiscussions.txt index 07c5995573..8963afd002 100644 --- a/tests/ReplayData/Team.testDiscussions.txt +++ b/tests/ReplayData/Team.testDiscussions.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/teams/189850/discussions +/organizations/1234567/team/12345678/discussions {'Accept': 'application/vnd.github.echo-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4974'), ('content-length', '1595'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"03555a65309084f36bcf959063a39d35"'), ('date', 'Sat, 26 May 2012 21:09:52 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"author":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"body":"BODY","body_html":"

BODY

","body_version":"bedf0740b01d2d758cff9873c2387817","comments_count":0,"comments_url":"https://api.github.com/teams/189850/discussions/1/comments","created_at":"2019-10-08T21:03:36Z","last_edited_at":null,"html_url":"https://github.com/orgs/BeaverSoftware/teams/Team/discussions/1","node_id":"MDE0OlRlYW1EaXNjdXNzaW9uMzA=","number":1,"pinned":true,"private":false,"team_url":"https://api.github.com/teams/189850","title":"TITLE","updated_at":"2019-10-08T21:03:36Z","url":"https://api.github.com/teams/189850/discussions/1"}] +[{"author":{"login":"jacquev6","id":327146,"node_id":"MDQ6VXNlcjMyNzE0Ng==","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"body":"BODY","body_html":"

BODY

","body_version":"bedf0740b01d2d758cff9873c2387817","comments_count":0,"comments_url":"https://api.github.com/organizations/1234567/team/12345678/discussions/1/comments","created_at":"2019-10-08T21:03:36Z","last_edited_at":null,"html_url":"https://github.com/orgs/BeaverSoftware/teams/Team/discussions/1","node_id":"MDE0OlRlYW1EaXNjdXNzaW9uMzA=","number":1,"pinned":true,"private":false,"team_url":"https://api.github.com/organizations/1234567/team/12345678","title":"TITLE","updated_at":"2019-10-08T21:03:36Z","url":"https://api.github.com/organizations/1234567/team/12345678/discussions/1"}] diff --git a/tests/ReplayData/Team.testEditWithAllArguments.txt b/tests/ReplayData/Team.testEditWithAllArguments.txt index f9550bf04b..d40d6c8270 100644 --- a/tests/ReplayData/Team.testEditWithAllArguments.txt +++ b/tests/ReplayData/Team.testEditWithAllArguments.txt @@ -13,9 +13,9 @@ https PATCH api.github.com None -/teams/189850 +/organizations/1234567/team/12345678 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"name": "Name edited twice by PyGithub", "permission": "admin", "privacy": "secret", "description": "Description edited by PyGithub", "parent_team_id": 141496, "notification_setting": "notifications_disabled"} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4949'), ('content-length', '170'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"8856425cedbdf3075576e823f39fc3d6"'), ('date', 'Sat, 26 May 2012 21:14:46 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"permission":"admin","members_count":0,"url":"https://api.github.com/teams/189850","repos_count":0,"privacy":"secret","name":"Name edited twice by PyGithub","id":189850, "description": "Description edited by PyGithub", "notification_setting": "notifications_disabled", "parent": {"repos_count":1,"permission":"push","url":"https://api.github.com/teams/141496","name":"Members","id":141496,"members_count":1}} +{"permission":"admin","members_count":0,"url":"https://api.github.com/organizations/1234567/team/12345678","repos_count":0,"privacy":"secret","name":"Name edited twice by PyGithub","id":189850, "description": "Description edited by PyGithub", "notification_setting": "notifications_disabled", "parent": {"repos_count":1,"permission":"push","url":"https://api.github.com/teams/141496","name":"Members","id":141496,"members_count":1}} diff --git a/tests/ReplayData/Team.testEditWithoutArguments.txt b/tests/ReplayData/Team.testEditWithoutArguments.txt index 17e2770771..276f79a554 100644 --- a/tests/ReplayData/Team.testEditWithoutArguments.txt +++ b/tests/ReplayData/Team.testEditWithoutArguments.txt @@ -2,9 +2,9 @@ https PATCH api.github.com None -/teams/189850 +/organizations/1234567/team/12345678 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"name": "Name edited by PyGithub"} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4952'), ('content-length', '144'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"843001aba6d35f27320c0788c9ff64b1"'), ('date', 'Sat, 26 May 2012 21:14:39 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"permission":"pull","members_count":0,"url":"https://api.github.com/teams/189850","repos_count":0,"name":"Name edited by PyGithub","id":189850} +{"permission":"pull","members_count":0,"url":"https://api.github.com/organizations/1234567/team/12345678","repos_count":0,"name":"Name edited by PyGithub","id":189850} diff --git a/tests/ReplayData/Team.testGetTeams.txt b/tests/ReplayData/Team.testGetTeams.txt index 3cef18aac4..9f33c932d9 100644 --- a/tests/ReplayData/Team.testGetTeams.txt +++ b/tests/ReplayData/Team.testGetTeams.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/teams/189850/teams +/organizations/1234567/team/12345678/teams {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4973'), ('content-length', '150'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"43d7c883d1cb7d50a08d2c189550023c"'), ('date', 'Sun, 27 May 2012 05:13:46 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"name":"DummyTeam1","id":189851,"parent":{"name":"Team created by PyGithub","id":189850}},{"name":"DummyTeam2","id":189852,"parent":{"name":"Team created by PyGithub","id":189850}},{"name":"DummyTeam3","id":189853,"parent":{"name":"Team created by PyGithub","id":189850}}] +[{"name":"DummyTeam1","id":12345679,"parent":{"name":"Team","id":12345678}},{"name":"DummyTeam2","id":12345680,"parent":{"name":"Team","id":12345678}},{"name":"DummyTeam3","id":12345681,"parent":{"name":"Team","id":12345678}}] diff --git a/tests/ReplayData/Team.testMembers.txt b/tests/ReplayData/Team.testMembers.txt index 568cc05b6c..4ecfef3e68 100644 --- a/tests/ReplayData/Team.testMembers.txt +++ b/tests/ReplayData/Team.testMembers.txt @@ -13,7 +13,7 @@ https GET api.github.com None -/teams/189850/members +/organizations/1234567/team/12345678/members {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -24,7 +24,7 @@ https GET api.github.com None -/teams/189850/members/jacquev6 +/organizations/1234567/team/12345678/members/jacquev6 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 404 @@ -35,7 +35,7 @@ https PUT api.github.com None -/teams/189850/members/jacquev6 +/organizations/1234567/team/12345678/members/jacquev6 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -46,7 +46,7 @@ https GET api.github.com None -/teams/189850/members +/organizations/1234567/team/12345678/members {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -57,7 +57,7 @@ https GET api.github.com None -/teams/189850/members/jacquev6 +/organizations/1234567/team/12345678/members/jacquev6 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -68,7 +68,7 @@ https DELETE api.github.com None -/teams/189850/members/jacquev6 +/organizations/1234567/team/12345678/members/jacquev6 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -79,7 +79,7 @@ https GET api.github.com None -/teams/189850/members +/organizations/1234567/team/12345678/members {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -90,7 +90,7 @@ https GET api.github.com None -/teams/189850/members/jacquev6 +/organizations/1234567/team/12345678/members/jacquev6 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 404 @@ -101,7 +101,7 @@ https PUT api.github.com None -/teams/189850/memberships/jacquev6 +/organizations/1234567/team/12345678/memberships/jacquev6 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"role": "maintainer"} 200 @@ -112,7 +112,7 @@ https DELETE api.github.com None -/teams/189850/memberships/jacquev6 +/organizations/1234567/team/12345678/memberships/jacquev6 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 diff --git a/tests/ReplayData/Team.testRepoPermission.txt b/tests/ReplayData/Team.testRepoPermission.txt index 610aec12e3..4a9776e301 100644 --- a/tests/ReplayData/Team.testRepoPermission.txt +++ b/tests/ReplayData/Team.testRepoPermission.txt @@ -13,9 +13,8 @@ https PUT api.github.com None -/teams/189850/repos/BeaverSoftware/FatherBeaver +/organizations/1234567/team/12345678/repos/BeaverSoftware/FatherBeaver {"Authorization": "Basic login_and_password_removed", "Content-Type": "application/json", "User-Agent": "PyGithub/Python"} {"permission": "admin"} 204 [] -{} diff --git a/tests/ReplayData/Team.testRepos.txt b/tests/ReplayData/Team.testRepos.txt index e9fd6b7d26..af8ffd0aba 100644 --- a/tests/ReplayData/Team.testRepos.txt +++ b/tests/ReplayData/Team.testRepos.txt @@ -13,7 +13,7 @@ https GET api.github.com None -/teams/189850/repos +/organizations/1234567/team/12345678/repos {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -24,7 +24,7 @@ https GET api.github.com None -/teams/189850/repos/BeaverSoftware/FatherBeaver +/organizations/1234567/team/12345678/repos/BeaverSoftware/FatherBeaver {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 404 @@ -35,7 +35,7 @@ https GET api.github.com None -/teams/189850/repos/BeaverSoftware/FatherBeaver +/organizations/1234567/team/12345678/repos/BeaverSoftware/FatherBeaver {'Accept': 'application/vnd.github.v3.repository+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 404 @@ -46,7 +46,7 @@ https PUT api.github.com None -/teams/189850/repos/BeaverSoftware/FatherBeaver +/organizations/1234567/team/12345678/repos/BeaverSoftware/FatherBeaver {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -57,7 +57,7 @@ https GET api.github.com None -/teams/189850/repos +/organizations/1234567/team/12345678/repos {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -68,7 +68,7 @@ https GET api.github.com None -/teams/189850/repos/BeaverSoftware/FatherBeaver +/organizations/1234567/team/12345678/repos/BeaverSoftware/FatherBeaver {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -79,7 +79,7 @@ https GET api.github.com None -/teams/189850/repos/BeaverSoftware/FatherBeaver +/organizations/1234567/team/12345678/repos/BeaverSoftware/FatherBeaver {'Accept': 'application/vnd.github.v3.repository+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -90,7 +90,7 @@ https DELETE api.github.com None -/teams/189850/repos/BeaverSoftware/FatherBeaver +/organizations/1234567/team/12345678/repos/BeaverSoftware/FatherBeaver {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -101,7 +101,7 @@ https GET api.github.com None -/teams/189850/repos +/organizations/1234567/team/12345678/repos {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -112,7 +112,7 @@ https GET api.github.com None -/teams/189850/repos/BeaverSoftware/FatherBeaver +/organizations/1234567/team/12345678/repos/BeaverSoftware/FatherBeaver {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 404 diff --git a/tests/ReplayData/Team.testTeamMembership.txt b/tests/ReplayData/Team.testTeamMembership.txt index bea3e5f9d8..c60ef21fc9 100644 --- a/tests/ReplayData/Team.testTeamMembership.txt +++ b/tests/ReplayData/Team.testTeamMembership.txt @@ -13,7 +13,7 @@ https GET api.github.com None -/teams/189850/members +/organizations/1234567/team/12345678/members {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -24,7 +24,7 @@ https GET api.github.com None -/teams/189850/members/jacquev6 +/organizations/1234567/team/12345678/members/jacquev6 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 404 @@ -35,7 +35,7 @@ https PUT api.github.com None -/teams/189850/memberships/jacquev6 +/organizations/1234567/team/12345678/memberships/jacquev6 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"role": "member"} 200 @@ -46,7 +46,7 @@ https GET api.github.com None -/teams/189850/members +/organizations/1234567/team/12345678/members {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -57,7 +57,7 @@ https GET api.github.com None -/teams/189850/members/jacquev6 +/organizations/1234567/team/12345678/members/jacquev6 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -68,7 +68,7 @@ https GET api.github.com None -/teams/189850/memberships/jacquev6 +/organizations/1234567/team/12345678/memberships/jacquev6 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 diff --git a/tests/ReplayData/Team.testUpdateTeamRepository.txt b/tests/ReplayData/Team.testUpdateTeamRepository.txt index ac5918dc72..0ab057b97f 100644 --- a/tests/ReplayData/Team.testUpdateTeamRepository.txt +++ b/tests/ReplayData/Team.testUpdateTeamRepository.txt @@ -13,7 +13,7 @@ https PUT api.github.com None -/orgs/BeaverSoftware/teams/pygithub/repos/BeaverSoftware/FatherBeaver +/orgs/BeaverSoftware/teams/team-slug/repos/BeaverSoftware/FatherBeaver {"Authorization": "Basic login_and_password_removed", "Content-Type": "application/json", "User-Agent": "PyGithub/Python"} {"permission": "admin"} 204 diff --git a/tests/ReplayData/Topic.setUp.txt b/tests/ReplayData/Topic.setUp.txt index 388cf5c850..46476f5ec7 100644 --- a/tests/ReplayData/Topic.setUp.txt +++ b/tests/ReplayData/Topic.setUp.txt @@ -6,5 +6,5 @@ None {'Accept': 'application/vnd.github.mercy-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Wed, 09 Oct 2019 20:35:32 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '10'), ('X-RateLimit-Remaining', '8'), ('X-RateLimit-Reset', '1570653381'), ('Cache-Control', 'no-cache'), ('X-GitHub-Media-Type', 'github.mercy-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '6D0E:2F82:4C1DED:8F5E09:5D9E4493')] -{"total_count":30,"incomplete_results":false,"items":[{"name":"python","display_name":"Python","short_description":"Python is a dynamically typed programming language.","description":"Python is a dynamically typed programming language designed by Guido van Rossum. Much like the programming language Ruby, Python was designed to be easily read by programmers. Because of its large following and many libraries, Python can be implemented and used to do anything from webpages to scientific research.","created_by":"Guido van Rossum","released":"February 20, 1991","created_at":"2016-12-07T00:07:02Z","updated_at":"2019-10-09T20:33:49Z","featured":true,"curated":true,"score":7576.306},{"name":"django","display_name":"Django","short_description":"Django is a web application framework for Python.","description":"Django is a web application framework for Python. It is designed to prioritize principles of reusability and rapid development.","created_by":"Adrian Holovaty, Simon Willison","released":"21 July 2005","created_at":"2017-01-31T20:40:48Z","updated_at":"2019-10-09T20:23:15Z","featured":true,"curated":true,"score":595.4404},{"name":"flask","display_name":"Flask","short_description":"Flask is a web framework for Python based on the Werkzeug toolkit.","description":"Flask is a web framework for Python, based on the Werkzeug toolkit.","created_by":"Armin Ronacher","released":"April 1, 2010","created_at":"2016-12-25T23:31:26Z","updated_at":"2019-10-09T19:46:51Z","featured":true,"curated":true,"score":421.1786},{"name":"python-script","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-01-31T22:02:14Z","updated_at":"2019-10-01T04:14:22Z","featured":false,"curated":false,"score":281.18207},{"name":"python36","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-01T23:01:53Z","updated_at":"2019-09-21T01:04:39Z","featured":false,"curated":false,"score":278.21628},{"name":"opencv-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-03T23:16:55Z","updated_at":"2019-10-05T19:20:25Z","featured":false,"curated":false,"score":277.7204},{"name":"ruby","display_name":"Ruby","short_description":"Ruby is a scripting language designed for simplified object-oriented programming.","description":"Ruby was developed by Yukihiro \"Matz\" Matsumoto in 1995 with the intent of having an easily readable programming language. It is used by the Rails framework to create dynamic web-applications. Ruby's syntax is similar to that of Perl and Python.","created_by":"Yukihiro Matsumoto","released":"December 21, 1995","created_at":"2016-11-28T22:03:59Z","updated_at":"2019-10-09T19:48:54Z","featured":true,"curated":true,"score":275.5379},{"name":"python-library","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-01-31T21:48:51Z","updated_at":"2019-10-08T23:36:08Z","featured":false,"curated":false,"score":261.92603},{"name":"scikit-learn","display_name":"scikit-learn","short_description":"scikit-learn is a Python module for machine learning.","description":"scikit-learn is a widely-used Python module for classic machine learning. It is built on top of SciPy.","created_by":"David Cournapeau","released":"January 05, 2010","created_at":"2017-01-31T21:47:19Z","updated_at":"2019-10-09T19:48:58Z","featured":true,"curated":true,"score":219.94424},{"name":"python37","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-09-23T08:49:36Z","updated_at":"2019-09-21T01:04:46Z","featured":false,"curated":false,"score":193.36407},{"name":"selenium-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-06-26T19:02:26Z","updated_at":"2019-09-26T07:00:36Z","featured":false,"curated":false,"score":139.28319},{"name":"sublime-text","display_name":"Sublime Text","short_description":"A cross-platform source code editor with a Python API.","description":"A sophisticated text editor for code, markup and prose.\nIt has many powerful features for file and project navigation, build systems, integration with other tools and customization in the form of plugins, themes, and syntax styles.","created_by":"Jon Skinner, Sublime HQ Pty Ltd","released":"January 18, 2008","created_at":"2017-01-31T21:46:43Z","updated_at":"2019-10-09T18:41:58Z","featured":false,"curated":true,"score":137.15933},{"name":"leetcode-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-23T02:45:43Z","updated_at":"2019-09-26T07:00:33Z","featured":false,"curated":false,"score":135.47691},{"name":"learning-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-01-31T21:48:06Z","updated_at":"2019-09-26T07:00:38Z","featured":false,"curated":false,"score":133.5331},{"name":"tkinter-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-12-03T11:05:03Z","updated_at":"2019-09-21T07:52:50Z","featured":false,"curated":false,"score":114.56412},{"name":"python35","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-01T23:01:48Z","updated_at":"2019-07-16T10:23:26Z","featured":false,"curated":false,"score":110.58241},{"name":"machinelearning-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2018-04-05T05:04:13Z","updated_at":"2019-10-06T06:07:15Z","featured":false,"curated":false,"score":107.01233},{"name":"python-flask","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-03T17:08:17Z","updated_at":"2019-09-26T07:00:42Z","featured":false,"curated":false,"score":95.38638},{"name":"python-package","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-08T20:03:49Z","updated_at":"2019-10-07T23:32:33Z","featured":false,"curated":false,"score":89.152504},{"name":"python-telegram-bot","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-01T10:35:51Z","updated_at":"2019-07-16T10:23:34Z","featured":false,"curated":false,"score":88.10426},{"name":"python-wrapper","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-01-31T23:11:56Z","updated_at":"2019-07-16T10:23:29Z","featured":false,"curated":false,"score":85.25486},{"name":"python3-6","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-04-04T03:37:08Z","updated_at":"2019-07-16T10:23:31Z","featured":false,"curated":false,"score":85.05672},{"name":"opencv3-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-05-27T14:02:09Z","updated_at":"2019-09-11T11:41:26Z","featured":false,"curated":false,"score":77.88265},{"name":"hackerrank-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-03T11:31:38Z","updated_at":"2019-07-16T10:23:37Z","featured":false,"curated":false,"score":77.88265},{"name":"python-api","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-01T06:57:54Z","updated_at":"2019-09-19T00:43:28Z","featured":false,"curated":false,"score":76.52807},{"name":"python2-7","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-04T21:58:13Z","updated_at":"2019-07-16T10:23:38Z","featured":false,"curated":false,"score":76.32909},{"name":"pythonista","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-01-31T21:45:53Z","updated_at":"2019-09-12T11:21:27Z","featured":false,"curated":false,"score":73.33462},{"name":"haxe","display_name":"Haxe","short_description":"A metalanguage resembling ECMAScript which can be transpiled into a variety of languages.","description":"A language resembling ECMAScript much which can be transpiled into ActionScript3, JavaScript, Java, C++, C#, PHP, Python, and Lua.","created_by":"Nicolas Cannasse, Haxe Foundation","released":"2005","created_at":"2017-01-31T22:12:57Z","updated_at":"2019-09-21T01:01:40Z","featured":false,"curated":true,"score":72.71997},{"name":"python-requests","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-03T07:19:24Z","updated_at":"2019-07-16T10:23:43Z","featured":false,"curated":false,"score":71.219284},{"name":"python-2-7","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-02T19:25:09Z","updated_at":"2019-07-16T10:23:40Z","featured":false,"curated":false,"score":71.11855}]} +[('Date', 'Tue, 07 Jan 2025 09:56:04 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'no-cache'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('X-OAuth-Scopes', 'read:discussion, repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2025-02-04 16:42:10 UTC'), ('X-GitHub-Media-Type', 'github.mercy-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '30'), ('X-RateLimit-Remaining', '29'), ('X-RateLimit-Reset', '1736243824'), ('X-RateLimit-Used', '1'), ('X-RateLimit-Resource', 'search'), ('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'), ('Transfer-Encoding', 'chunked'), ('Server', 'github.com'), ('X-GitHub-Request-Id', 'ACD6:3DA53A:178CF39:1833803:677CFA34')] +{"total_count":7719,"incomplete_results":false,"items":[{"name":"python","display_name":"Python","short_description":"Python is a dynamically typed programming language.","description":"Python is a dynamically-typed garbage-collected programming language developed by Guido van Rossum in the late 80s to replace ABC. Much like the programming language Ruby, Python was designed to be easily read by programmers. Because of its large following and many libraries, Python can be implemented and used to do anything from webpages to scientific research.","created_by":"Guido van Rossum","released":"February 20, 1991","created_at":"2016-12-07T00:07:02Z","updated_at":"2025-01-07T09:22:52Z","featured":true,"curated":true,"score":1.0},{"name":"django","display_name":"Django","short_description":"Django is a web application framework for Python.","description":"Django is a web application framework for Python. It is designed to prioritize principles of reusability and rapid development.","created_by":"Adrian Holovaty, Simon Willison","released":"21 July 2005","created_at":"2017-01-31T20:40:48Z","updated_at":"2025-01-07T06:58:09Z","featured":true,"curated":true,"score":1.0},{"name":"hacktoberfest","display_name":"Hacktoberfest","short_description":"Hacktoberfest is a month-long celebration of open source projects, their maintainers, and the entire community of contributors.","description":"**Hacktoberfest** is a month-long celebration of open source projects, their maintainers, and the entire community of contributors. Each October, open source maintainers give new contributors extra attention as they guide developers through their first pull requests on GitHub.\n\n# By programming language\n[JavaScript](https://github.com/topics/hacktoberfest?l=javascript) • [Python](https://github.com/topics/hacktoberfest?l=python) • [Java](https://github.com/topics/hacktoberfest?l=java)","created_by":"DigitalOcean and GitHub","released":"October 2014","created_at":"2017-02-02T18:01:06Z","updated_at":"2025-01-07T07:52:01Z","featured":true,"curated":true,"score":1.0},{"name":"flask","display_name":"Flask","short_description":"Flask is a web framework for Python based on the Werkzeug toolkit.","description":"Flask is a web framework for Python, based on the Werkzeug toolkit.","created_by":"Armin Ronacher","released":"April 1, 2010","created_at":"2016-12-25T23:31:26Z","updated_at":"2025-01-07T07:51:46Z","featured":true,"curated":true,"score":1.0},{"name":"python-script","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-01-31T22:02:14Z","updated_at":"2025-01-02T08:34:59Z","featured":false,"curated":false,"score":1.0},{"name":"opencv-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-03T23:16:55Z","updated_at":"2024-12-18T13:40:07Z","featured":false,"curated":false,"score":1.0},{"name":"numpy","display_name":"NumPy","short_description":"The fundamental package for scientific computing with Python.","description":"NumPy is an open source library for the Python programming language, adding support for large, multidimensional arrays, and matrices, along with a large collection of high-level mathematical functions to operate on these arrays.","created_by":"Travis Oliphant","released":null,"created_at":"2017-01-31T21:42:40Z","updated_at":"2024-12-26T15:36:11Z","featured":false,"curated":true,"score":1.0},{"name":"backend","display_name":"Back end","short_description":"Back end is the programming that handles the behind-the-scenes of a website or application that people do not see.","description":"Back end is the programming that handles the behind-the-scenes of a website or application that people do not see, such as the server and database. Programming languages such as Python, Ruby, and PHP is used for back-end development.","created_by":null,"released":null,"created_at":"2017-01-31T21:30:13Z","updated_at":"2024-12-25T02:30:37Z","featured":false,"curated":true,"score":1.0},{"name":"fastapi","display_name":"FastAPI","short_description":"FastAPI is a modern & fast web framework for building APIs with Python 3.7+ based on standard Python type hints.","description":"FastAPI is a high performance, easy to learn, fast to code, and ready for production Python 3.7+ framework. Its performance is on par with NodeJS and Go (thanks to Starlette and Pydantic). It's intuitive and standards-based (based on API standards like OpenAPI (previously known as Swagger) and JSON Schema).","created_by":"Sebastián Ramírez","released":null,"created_at":"2018-12-23T13:21:08Z","updated_at":"2025-01-06T04:26:47Z","featured":false,"curated":true,"score":1.0},{"name":"ruby","display_name":"Ruby","short_description":"Ruby is a scripting language designed for simplified object-oriented programming.","description":"Ruby was developed by Yukihiro \"Matz\" Matsumoto in 1995 with the intent of having an easily readable programming language. It is used by the Rails framework to create dynamic web-applications. Ruby's syntax is similar to that of Perl and Python.","created_by":"Yukihiro Matsumoto","released":"December 21, 1995","created_at":"2016-11-28T22:03:59Z","updated_at":"2025-01-07T06:58:09Z","featured":true,"curated":true,"score":1.0},{"name":"python-library","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-01-31T21:48:51Z","updated_at":"2024-12-27T12:56:04Z","featured":false,"curated":false,"score":1.0},{"name":"keras","display_name":"Keras","short_description":"Keras is an open source neural network library written in Python.","description":"Keras is an open source, cross platform, and user friendly neural network library written in Python. It is capable of running on top of TensorFlow, Microsoft Cognitive Toolkit, R, Theano, and PlaidML.","created_by":"François Chollet","released":"March 27, 2015","created_at":"2017-01-31T21:58:47Z","updated_at":"2024-12-26T15:33:16Z","featured":false,"curated":true,"score":1.0},{"name":"selenium-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-06-26T19:02:26Z","updated_at":"2024-10-07T17:06:27Z","featured":false,"curated":false,"score":1.0},{"name":"tkinter-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-12-03T11:05:03Z","updated_at":"2024-12-16T23:44:09Z","featured":false,"curated":false,"score":1.0},{"name":"scikit-learn","display_name":"scikit-learn","short_description":"scikit-learn is a Python module for machine learning.","description":"scikit-learn is a widely-used Python module for classic machine learning. It is built on top of SciPy.","created_by":"David Cournapeau","released":"January 05, 2010","created_at":"2017-01-31T21:47:19Z","updated_at":"2025-01-07T07:06:50Z","featured":true,"curated":true,"score":1.0},{"name":"pandas-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2018-03-04T19:26:13Z","updated_at":"2025-01-04T07:55:58Z","featured":false,"curated":false,"score":1.0},{"name":"streamlit","display_name":"Streamlit","short_description":"Streamlit is an open source Python library that makes it easy to create custom web apps for machine learning and data science.","description":"Streamlit is an open source Python library that makes it easy to create and share beautiful, custom web apps for machine learning and data science.\nTurn your data scripts into shareable web apps in minutes, without requiring any front-end web experience.","created_by":"Adrien Treuille, Amanda Kelly, Thiago Teixeira","released":"March 27, 2018","created_at":"2019-10-02T23:15:16Z","updated_at":"2024-12-26T15:38:18Z","featured":false,"curated":true,"score":1.0},{"name":"leetcode-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-23T02:45:43Z","updated_at":"2024-04-10T15:11:20Z","featured":false,"curated":false,"score":1.0},{"name":"python36","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-01T23:01:53Z","updated_at":"2024-10-03T20:04:08Z","featured":false,"curated":false,"score":1.0},{"name":"machinelearning-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2018-04-05T05:04:13Z","updated_at":"2024-11-20T17:45:14Z","featured":false,"curated":false,"score":1.0},{"name":"nltk-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2018-04-20T22:48:27Z","updated_at":"2023-09-25T18:14:47Z","featured":false,"curated":false,"score":1.0},{"name":"data-analysis-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2018-01-20T23:05:42Z","updated_at":"2024-08-17T11:30:21Z","featured":false,"curated":false,"score":1.0},{"name":"micropython","display_name":"MicroPython","short_description":"MicroPython is a lean and efficient implementation of Python, optimised to run on microcontrollers.","description":"MicroPython is an implementation of the Python 3 programming language. It includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments.","created_by":"Damien P. George","released":"May 3, 2014","created_at":"2017-01-31T21:34:11Z","updated_at":"2025-01-02T16:46:02Z","featured":false,"curated":true,"score":1.0},{"name":"python37","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-09-23T08:49:36Z","updated_at":"2023-10-07T10:16:06Z","featured":false,"curated":false,"score":1.0},{"name":"langchain-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2023-04-01T20:25:28Z","updated_at":"2024-08-24T14:56:36Z","featured":false,"curated":false,"score":1.0},{"name":"learning-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-01-31T21:48:06Z","updated_at":"2025-01-04T19:26:41Z","featured":false,"curated":false,"score":1.0},{"name":"oops-in-python","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-08-01T06:51:13Z","updated_at":"2023-03-26T15:35:53Z","featured":false,"curated":false,"score":1.0},{"name":"python-telegram-bot","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-01T10:35:51Z","updated_at":"2024-09-14T08:15:36Z","featured":false,"curated":false,"score":1.0},{"name":"python-package","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-02-08T20:03:49Z","updated_at":"2024-08-23T07:14:43Z","featured":false,"curated":false,"score":1.0},{"name":"python-project","display_name":null,"short_description":null,"description":null,"created_by":null,"released":null,"created_at":"2017-05-14T15:33:04Z","updated_at":"2025-01-07T08:28:45Z","featured":false,"curated":false,"score":1.0}]} diff --git a/tests/ReplayData/UserKey.setUp.txt b/tests/ReplayData/UserKey.setUp.txt index 7a6fbd61da..1687b0118a 100644 --- a/tests/ReplayData/UserKey.setUp.txt +++ b/tests/ReplayData/UserKey.setUp.txt @@ -7,4 +7,4 @@ None None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4983'), ('content-length', '505'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7261ec55c886d6bf42e48d5bf9544586"'), ('date', 'Sat, 26 May 2012 19:53:21 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"url":"https://api.github.com/user/keys/2626650","key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw==","verified":true,"title":"Key added through PyGithub","id":2626650} +{"url":"https://api.github.com/user/keys/2626650","key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw==","created_at":"2024-12-23T12:34:56Z","read_only":true,"verified":true,"title":"Key added through PyGithub","id":2626650} diff --git a/tests/ReplayData/Workflow.testDisable.txt b/tests/ReplayData/Workflow.testDisable.txt new file mode 100644 index 0000000000..4d42d750ed --- /dev/null +++ b/tests/ReplayData/Workflow.testDisable.txt @@ -0,0 +1,31 @@ +https +GET +api.github.com +None +/repos/nickrmcclorey/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Sat, 07 Dec 2024 02:51:13 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"56ffc753ee94d9b7593858e35c96fedbb0cd4b1a0a2c489935d170d5018cb47f"'), ('Last-Modified', 'Sat, 07 Dec 2024 02:17:32 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, audit_log, codespace, delete:packages, gist, notifications, project, repo, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2024-12-14 02:28:22 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4864'), ('X-RateLimit-Reset', '1733542572'), ('X-RateLimit-Used', '136'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', '97FE:220364:2CC37F4:588747E:6753B821'), ('Server', 'github.com')] +{"id":899780383,"node_id":"R_kgDONaGPHw","name":"PyGithub","full_name":"nickrmcclorey/PyGithub","private":false,"owner":{"login":"nickrmcclorey","id":32378821,"node_id":"MDQ6VXNlcjMyMzc4ODIx","avatar_url":"https://avatars.githubusercontent.com/u/32378821?v=4","gravatar_id":"","url":"https://api.github.com/users/nickrmcclorey","html_url":"https://github.com/nickrmcclorey","followers_url":"https://api.github.com/users/nickrmcclorey/followers","following_url":"https://api.github.com/users/nickrmcclorey/following{/other_user}","gists_url":"https://api.github.com/users/nickrmcclorey/gists{/gist_id}","starred_url":"https://api.github.com/users/nickrmcclorey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nickrmcclorey/subscriptions","organizations_url":"https://api.github.com/users/nickrmcclorey/orgs","repos_url":"https://api.github.com/users/nickrmcclorey/repos","events_url":"https://api.github.com/users/nickrmcclorey/events{/privacy}","received_events_url":"https://api.github.com/users/nickrmcclorey/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/nickrmcclorey/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/nickrmcclorey/PyGithub","forks_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/forks","keys_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/teams","hooks_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/events","assignees_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/tags","blobs_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/languages","stargazers_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/subscription","commits_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/merges","archive_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/downloads","issues_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/deployments","created_at":"2024-12-07T02:17:32Z","updated_at":"2024-12-07T02:17:32Z","pushed_at":"2024-12-04T08:56:01Z","git_url":"git://github.com/nickrmcclorey/PyGithub.git","ssh_url":"git@github.com:nickrmcclorey/PyGithub.git","clone_url":"https://github.com/nickrmcclorey/PyGithub.git","svn_url":"https://github.com/nickrmcclorey/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":16298,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"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":0,"watchers":0,"default_branch":"main","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","user_view_type":"public","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":"2024-12-06T08:32:51Z","pushed_at":"2024-12-04T08:56:01Z","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":16298,"stargazers_count":7064,"watchers_count":7064,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":352,"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":1793,"open_issues":352,"watchers":7064,"default_branch":"main"},"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","user_view_type":"public","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":"2024-12-06T08:32:51Z","pushed_at":"2024-12-04T08:56:01Z","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":16298,"stargazers_count":7064,"watchers_count":7064,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":352,"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":1793,"open_issues":352,"watchers":7064,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"enabled"},"secret_scanning_push_protection":{"status":"enabled"},"dependabot_security_updates":{"status":"disabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":0} + +https +GET +api.github.com +None +/repos/nickrmcclorey/PyGithub/actions/workflows/ci.yml +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Sat, 07 Dec 2024 02:51:14 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"7faef501e224482ccf99d9c52acb03fbef456c4b77c4747d6cc7d137e61d1ace"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, audit_log, codespace, delete:packages, gist, notifications, project, repo, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2024-12-14 02:28:22 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4863'), ('X-RateLimit-Reset', '1733542572'), ('X-RateLimit-Used', '137'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', '9800:34870:2AE05A4:54B8168:6753B821'), ('Server', 'github.com')] +{"id":131874881,"node_id":"W_kwDONaGPH84H3EBB","name":"CI","path":".github/workflows/ci.yml","state":"active","created_at":"2024-12-06T21:17:46.000-05:00","updated_at":"2024-12-06T21:50:35.000-05:00","url":"https://api.github.com/repos/nickrmcclorey/PyGithub/actions/workflows/131874881","html_url":"https://github.com/nickrmcclorey/PyGithub/blob/main/.github/workflows/ci.yml","badge_url":"https://github.com/nickrmcclorey/PyGithub/workflows/CI/badge.svg"} + +https +PUT +api.github.com +None +/repos/nickrmcclorey/PyGithub/actions/workflows/131874881/disable +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Date', 'Sat, 07 Dec 2024 02:51:14 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, audit_log, codespace, delete:packages, gist, notifications, project, repo, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2024-12-14 02:28:22 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4862'), ('X-RateLimit-Reset', '1733542572'), ('X-RateLimit-Used', '138'), ('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', '9802:998E1:29C1A79:52B1A51:6753B822'), ('Server', 'github.com')] diff --git a/tests/ReplayData/Workflow.testDisabledWhenAlreadyDisabled.txt b/tests/ReplayData/Workflow.testDisabledWhenAlreadyDisabled.txt new file mode 100644 index 0000000000..8919460cfc --- /dev/null +++ b/tests/ReplayData/Workflow.testDisabledWhenAlreadyDisabled.txt @@ -0,0 +1,32 @@ +https +GET +api.github.com +None +/repos/nickrmcclorey/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Sat, 07 Dec 2024 02:51:15 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"56ffc753ee94d9b7593858e35c96fedbb0cd4b1a0a2c489935d170d5018cb47f"'), ('Last-Modified', 'Sat, 07 Dec 2024 02:17:32 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, audit_log, codespace, delete:packages, gist, notifications, project, repo, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2024-12-14 02:28:22 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4859'), ('X-RateLimit-Reset', '1733542572'), ('X-RateLimit-Used', '141'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', '9828:1C6A78:2BADAFD:5653AB3:6753B823'), ('Server', 'github.com')] +{"id":899780383,"node_id":"R_kgDONaGPHw","name":"PyGithub","full_name":"nickrmcclorey/PyGithub","private":false,"owner":{"login":"nickrmcclorey","id":32378821,"node_id":"MDQ6VXNlcjMyMzc4ODIx","avatar_url":"https://avatars.githubusercontent.com/u/32378821?v=4","gravatar_id":"","url":"https://api.github.com/users/nickrmcclorey","html_url":"https://github.com/nickrmcclorey","followers_url":"https://api.github.com/users/nickrmcclorey/followers","following_url":"https://api.github.com/users/nickrmcclorey/following{/other_user}","gists_url":"https://api.github.com/users/nickrmcclorey/gists{/gist_id}","starred_url":"https://api.github.com/users/nickrmcclorey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nickrmcclorey/subscriptions","organizations_url":"https://api.github.com/users/nickrmcclorey/orgs","repos_url":"https://api.github.com/users/nickrmcclorey/repos","events_url":"https://api.github.com/users/nickrmcclorey/events{/privacy}","received_events_url":"https://api.github.com/users/nickrmcclorey/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/nickrmcclorey/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/nickrmcclorey/PyGithub","forks_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/forks","keys_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/teams","hooks_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/events","assignees_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/tags","blobs_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/languages","stargazers_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/subscription","commits_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/merges","archive_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/downloads","issues_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/deployments","created_at":"2024-12-07T02:17:32Z","updated_at":"2024-12-07T02:17:32Z","pushed_at":"2024-12-04T08:56:01Z","git_url":"git://github.com/nickrmcclorey/PyGithub.git","ssh_url":"git@github.com:nickrmcclorey/PyGithub.git","clone_url":"https://github.com/nickrmcclorey/PyGithub.git","svn_url":"https://github.com/nickrmcclorey/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":16298,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"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":0,"watchers":0,"default_branch":"main","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","user_view_type":"public","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":"2024-12-06T08:32:51Z","pushed_at":"2024-12-04T08:56:01Z","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":16298,"stargazers_count":7064,"watchers_count":7064,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":352,"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":1793,"open_issues":352,"watchers":7064,"default_branch":"main"},"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","user_view_type":"public","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":"2024-12-06T08:32:51Z","pushed_at":"2024-12-04T08:56:01Z","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":16298,"stargazers_count":7064,"watchers_count":7064,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":352,"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":1793,"open_issues":352,"watchers":7064,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"enabled"},"secret_scanning_push_protection":{"status":"enabled"},"dependabot_security_updates":{"status":"disabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":0} + +https +GET +api.github.com +None +/repos/nickrmcclorey/PyGithub/actions/workflows/ci.yml +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Sat, 07 Dec 2024 02:51:15 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"456542a697db966667cc2b698c23e673b908e1ae52c758b44f8a983ba30d1788"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, audit_log, codespace, delete:packages, gist, notifications, project, repo, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2024-12-14 02:28:22 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4858'), ('X-RateLimit-Reset', '1733542572'), ('X-RateLimit-Used', '142'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', '9832:191A7:2A9FE60:54671E2:6753B823'), ('Server', 'github.com')] +{"id":131874881,"node_id":"W_kwDONaGPH84H3EBB","name":"CI","path":".github/workflows/ci.yml","state":"disabled_manually","created_at":"2024-12-06T21:17:46.000-05:00","updated_at":"2024-12-06T21:51:14.000-05:00","url":"https://api.github.com/repos/nickrmcclorey/PyGithub/actions/workflows/131874881","html_url":"https://github.com/nickrmcclorey/PyGithub/blob/main/.github/workflows/ci.yml","badge_url":"https://github.com/nickrmcclorey/PyGithub/workflows/CI/badge.svg"} + +https +PUT +api.github.com +None +/repos/nickrmcclorey/PyGithub/actions/workflows/131874881/disable +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +403 +[('Date', 'Sat, 07 Dec 2024 02:51:15 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, audit_log, codespace, delete:packages, gist, notifications, project, repo, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2024-12-14 02:28:22 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4857'), ('X-RateLimit-Reset', '1733542572'), ('X-RateLimit-Used', '143'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', '9840:8AF0D:2C76030:57DB17C:6753B823'), ('Server', 'github.com')] +{"message":"Unable to disable a workflow that is not active.","documentation_url":"https://docs.github.com/rest/actions/workflows#disable-a-workflow","status":"403"} diff --git a/tests/ReplayData/Workflow.testEnable.txt b/tests/ReplayData/Workflow.testEnable.txt new file mode 100644 index 0000000000..129c4c69f9 --- /dev/null +++ b/tests/ReplayData/Workflow.testEnable.txt @@ -0,0 +1,31 @@ +https +GET +api.github.com +None +/repos/nickrmcclorey/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Sat, 07 Dec 2024 02:51:16 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"56ffc753ee94d9b7593858e35c96fedbb0cd4b1a0a2c489935d170d5018cb47f"'), ('Last-Modified', 'Sat, 07 Dec 2024 02:17:32 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, audit_log, codespace, delete:packages, gist, notifications, project, repo, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2024-12-14 02:28:22 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4854'), ('X-RateLimit-Reset', '1733542572'), ('X-RateLimit-Used', '146'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', '9858:3E95BD:33FDBF2:66FD1BE:6753B824'), ('Server', 'github.com')] +{"id":899780383,"node_id":"R_kgDONaGPHw","name":"PyGithub","full_name":"nickrmcclorey/PyGithub","private":false,"owner":{"login":"nickrmcclorey","id":32378821,"node_id":"MDQ6VXNlcjMyMzc4ODIx","avatar_url":"https://avatars.githubusercontent.com/u/32378821?v=4","gravatar_id":"","url":"https://api.github.com/users/nickrmcclorey","html_url":"https://github.com/nickrmcclorey","followers_url":"https://api.github.com/users/nickrmcclorey/followers","following_url":"https://api.github.com/users/nickrmcclorey/following{/other_user}","gists_url":"https://api.github.com/users/nickrmcclorey/gists{/gist_id}","starred_url":"https://api.github.com/users/nickrmcclorey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nickrmcclorey/subscriptions","organizations_url":"https://api.github.com/users/nickrmcclorey/orgs","repos_url":"https://api.github.com/users/nickrmcclorey/repos","events_url":"https://api.github.com/users/nickrmcclorey/events{/privacy}","received_events_url":"https://api.github.com/users/nickrmcclorey/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/nickrmcclorey/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/nickrmcclorey/PyGithub","forks_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/forks","keys_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/teams","hooks_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/events","assignees_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/tags","blobs_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/languages","stargazers_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/subscription","commits_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/merges","archive_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/downloads","issues_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/deployments","created_at":"2024-12-07T02:17:32Z","updated_at":"2024-12-07T02:17:32Z","pushed_at":"2024-12-04T08:56:01Z","git_url":"git://github.com/nickrmcclorey/PyGithub.git","ssh_url":"git@github.com:nickrmcclorey/PyGithub.git","clone_url":"https://github.com/nickrmcclorey/PyGithub.git","svn_url":"https://github.com/nickrmcclorey/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":16298,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"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":0,"watchers":0,"default_branch":"main","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","user_view_type":"public","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":"2024-12-06T08:32:51Z","pushed_at":"2024-12-04T08:56:01Z","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":16298,"stargazers_count":7064,"watchers_count":7064,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":352,"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":1793,"open_issues":352,"watchers":7064,"default_branch":"main"},"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","user_view_type":"public","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":"2024-12-06T08:32:51Z","pushed_at":"2024-12-04T08:56:01Z","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":16298,"stargazers_count":7064,"watchers_count":7064,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":352,"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":1793,"open_issues":352,"watchers":7064,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"enabled"},"secret_scanning_push_protection":{"status":"enabled"},"dependabot_security_updates":{"status":"disabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":0} + +https +GET +api.github.com +None +/repos/nickrmcclorey/PyGithub/actions/workflows/ci.yml +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Sat, 07 Dec 2024 02:51:17 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"456542a697db966667cc2b698c23e673b908e1ae52c758b44f8a983ba30d1788"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, audit_log, codespace, delete:packages, gist, notifications, project, repo, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2024-12-14 02:28:22 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4853'), ('X-RateLimit-Reset', '1733542572'), ('X-RateLimit-Used', '147'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', '985C:6D2CF:2F7CC65:5E08BCE:6753B824'), ('Server', 'github.com')] +{"id":131874881,"node_id":"W_kwDONaGPH84H3EBB","name":"CI","path":".github/workflows/ci.yml","state":"disabled_manually","created_at":"2024-12-06T21:17:46.000-05:00","updated_at":"2024-12-06T21:51:14.000-05:00","url":"https://api.github.com/repos/nickrmcclorey/PyGithub/actions/workflows/131874881","html_url":"https://github.com/nickrmcclorey/PyGithub/blob/main/.github/workflows/ci.yml","badge_url":"https://github.com/nickrmcclorey/PyGithub/workflows/CI/badge.svg"} + +https +PUT +api.github.com +None +/repos/nickrmcclorey/PyGithub/actions/workflows/131874881/enable +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Date', 'Sat, 07 Dec 2024 02:51:17 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, audit_log, codespace, delete:packages, gist, notifications, project, repo, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2024-12-14 02:28:22 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4852'), ('X-RateLimit-Reset', '1733542572'), ('X-RateLimit-Used', '148'), ('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', '9866:1C6297:2A747D7:53F406D:6753B825'), ('Server', 'github.com')] diff --git a/tests/ReplayData/Workflow.testEnableWhenAlreadyEnabled.txt b/tests/ReplayData/Workflow.testEnableWhenAlreadyEnabled.txt new file mode 100644 index 0000000000..3de6830d58 --- /dev/null +++ b/tests/ReplayData/Workflow.testEnableWhenAlreadyEnabled.txt @@ -0,0 +1,31 @@ +https +GET +api.github.com +None +/repos/nickrmcclorey/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Sat, 07 Dec 2024 02:51:18 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"56ffc753ee94d9b7593858e35c96fedbb0cd4b1a0a2c489935d170d5018cb47f"'), ('Last-Modified', 'Sat, 07 Dec 2024 02:17:32 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, audit_log, codespace, delete:packages, gist, notifications, project, repo, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2024-12-14 02:28:22 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4849'), ('X-RateLimit-Reset', '1733542572'), ('X-RateLimit-Used', '151'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', '987E:100AE7:2B1C4F3:555C669:6753B826'), ('Server', 'github.com')] +{"id":899780383,"node_id":"R_kgDONaGPHw","name":"PyGithub","full_name":"nickrmcclorey/PyGithub","private":false,"owner":{"login":"nickrmcclorey","id":32378821,"node_id":"MDQ6VXNlcjMyMzc4ODIx","avatar_url":"https://avatars.githubusercontent.com/u/32378821?v=4","gravatar_id":"","url":"https://api.github.com/users/nickrmcclorey","html_url":"https://github.com/nickrmcclorey","followers_url":"https://api.github.com/users/nickrmcclorey/followers","following_url":"https://api.github.com/users/nickrmcclorey/following{/other_user}","gists_url":"https://api.github.com/users/nickrmcclorey/gists{/gist_id}","starred_url":"https://api.github.com/users/nickrmcclorey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nickrmcclorey/subscriptions","organizations_url":"https://api.github.com/users/nickrmcclorey/orgs","repos_url":"https://api.github.com/users/nickrmcclorey/repos","events_url":"https://api.github.com/users/nickrmcclorey/events{/privacy}","received_events_url":"https://api.github.com/users/nickrmcclorey/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/nickrmcclorey/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/nickrmcclorey/PyGithub","forks_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/forks","keys_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/teams","hooks_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/events","assignees_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/tags","blobs_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/languages","stargazers_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/subscription","commits_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/merges","archive_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/downloads","issues_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/nickrmcclorey/PyGithub/deployments","created_at":"2024-12-07T02:17:32Z","updated_at":"2024-12-07T02:17:32Z","pushed_at":"2024-12-04T08:56:01Z","git_url":"git://github.com/nickrmcclorey/PyGithub.git","ssh_url":"git@github.com:nickrmcclorey/PyGithub.git","clone_url":"https://github.com/nickrmcclorey/PyGithub.git","svn_url":"https://github.com/nickrmcclorey/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":16298,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"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":0,"watchers":0,"default_branch":"main","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","user_view_type":"public","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":"2024-12-06T08:32:51Z","pushed_at":"2024-12-04T08:56:01Z","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":16298,"stargazers_count":7064,"watchers_count":7064,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":352,"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":1793,"open_issues":352,"watchers":7064,"default_branch":"main"},"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","user_view_type":"public","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":"2024-12-06T08:32:51Z","pushed_at":"2024-12-04T08:56:01Z","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":16298,"stargazers_count":7064,"watchers_count":7064,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1793,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":352,"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":1793,"open_issues":352,"watchers":7064,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"enabled"},"secret_scanning_push_protection":{"status":"enabled"},"dependabot_security_updates":{"status":"disabled"},"secret_scanning_non_provider_patterns":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1793,"subscribers_count":0} + +https +GET +api.github.com +None +/repos/nickrmcclorey/PyGithub/actions/workflows/ci.yml +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Sat, 07 Dec 2024 02:51:18 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"84e643507126be0d7899823de1078d62e7f0903e9542a4ba740fc04d8fe09ce3"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, audit_log, codespace, delete:packages, gist, notifications, project, repo, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2024-12-14 02:28:22 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4848'), ('X-RateLimit-Reset', '1733542572'), ('X-RateLimit-Used', '152'), ('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'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', '988A:06B9:29D44A4:52CA754:6753B826'), ('Server', 'github.com')] +{"id":131874881,"node_id":"W_kwDONaGPH84H3EBB","name":"CI","path":".github/workflows/ci.yml","state":"active","created_at":"2024-12-06T21:17:46.000-05:00","updated_at":"2024-12-06T21:51:17.000-05:00","url":"https://api.github.com/repos/nickrmcclorey/PyGithub/actions/workflows/131874881","html_url":"https://github.com/nickrmcclorey/PyGithub/blob/main/.github/workflows/ci.yml","badge_url":"https://github.com/nickrmcclorey/PyGithub/workflows/CI/badge.svg"} + +https +PUT +api.github.com +None +/repos/nickrmcclorey/PyGithub/actions/workflows/131874881/enable +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Date', 'Sat, 07 Dec 2024 02:51:18 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:org, audit_log, codespace, delete:packages, gist, notifications, project, repo, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2024-12-14 02:28:22 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4847'), ('X-RateLimit-Reset', '1733542572'), ('X-RateLimit-Used', '153'), ('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', '9896:D6B99:290E2A7:513A313:6753B826'), ('Server', 'github.com')] diff --git a/tests/Repository.py b/tests/Repository.py index ae7de1ba09..4b65ac07a1 100644 --- a/tests/Repository.py +++ b/tests/Repository.py @@ -69,9 +69,13 @@ # Copyright 2024 Heitor de Bittencourt # # Copyright 2024 Jacky Lam # # Copyright 2024 Min RK # +# Copyright 2024 Sebastien NICOT # # Copyright 2024 Sebastián Ramírez # # Copyright 2024 Thomas Crowley <15927917+thomascrowley@users.noreply.github.com># # Copyright 2024 jodelasur <34933233+jodelasur@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Mikhail f. Shiryaev # +# Copyright 2025 Tan An Nie <121005973+tanannie22@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -91,6 +95,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import date, datetime, timezone from unittest import mock @@ -102,78 +108,162 @@ class Repository(Framework.TestCase): def setUp(self): super().setUp() - self.user = self.g.get_user() - self.repo = self.user.get_repo("PyGithub") + self.repo = self.g.get_repo("PyGithub/PyGithub") def testAttributes(self): - self.assertEqual(self.repo.clone_url, "https://github.com/jacquev6/PyGithub.git") + self.assertEqual(self.repo.allow_auto_merge, False) + self.assertEqual(self.repo.allow_forking, True) + self.assertEqual(self.repo.allow_merge_commit, False) + self.assertEqual(self.repo.allow_rebase_merge, False) + self.assertEqual(self.repo.allow_squash_merge, True) + self.assertEqual(self.repo.allow_update_branch, True) + self.assertIsNone(self.repo.anonymous_access_enabled) + self.assertEqual(self.repo.archive_url, "https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}") + self.assertEqual(self.repo.archived, False) + self.assertEqual(self.repo.assignees_url, "https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}") + self.assertEqual(self.repo.blobs_url, "https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}") + self.assertEqual(self.repo.branches_url, "https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}") + self.assertEqual(self.repo.clone_url, "https://github.com/PyGithub/PyGithub.git") + self.assertIsNone(self.repo.code_of_conduct) + self.assertEqual( + self.repo.collaborators_url, "https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}" + ) + self.assertEqual(self.repo.comments_url, "https://api.github.com/repos/PyGithub/PyGithub/comments{/number}") + self.assertEqual(self.repo.commits_url, "https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}") + self.assertEqual( + self.repo.compare_url, "https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}" + ) + self.assertEqual(self.repo.contents_url, "https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}") + self.assertEqual(self.repo.contributors_url, "https://api.github.com/repos/PyGithub/PyGithub/contributors") self.assertEqual( self.repo.created_at, datetime(2012, 2, 25, 12, 53, 47, tzinfo=timezone.utc), ) - self.assertEqual(self.repo.description, "Python library implementing the full Github API v3") + self.assertEqual(self.repo.custom_properties, {}) + self.assertEqual(self.repo.default_branch, "main") + self.assertEqual(self.repo.delete_branch_on_merge, True) + self.assertEqual(self.repo.deployments_url, "https://api.github.com/repos/PyGithub/PyGithub/deployments") + self.assertEqual(self.repo.description, "Typed interactions with the GitHub API v3") + self.assertEqual(self.repo.disabled, False) + self.assertEqual(self.repo.downloads_url, "https://api.github.com/repos/PyGithub/PyGithub/downloads") + self.assertEqual(self.repo.events_url, "https://api.github.com/repos/PyGithub/PyGithub/events") self.assertFalse(self.repo.fork) - self.assertEqual(self.repo.forks, 3) - self.assertEqual(self.repo.full_name, "jacquev6/PyGithub") - self.assertEqual(self.repo.git_url, "git://github.com/jacquev6/PyGithub.git") + self.assertEqual(self.repo.forks, 1793) + self.assertEqual(self.repo.forks_count, 1793) + self.assertEqual(self.repo.forks_url, "https://api.github.com/repos/PyGithub/PyGithub/forks") + self.assertEqual(self.repo.full_name, "PyGithub/PyGithub") + self.assertEqual(self.repo.git_commits_url, "https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}") + self.assertEqual(self.repo.git_refs_url, "https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}") + self.assertEqual(self.repo.git_tags_url, "https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}") + self.assertEqual(self.repo.git_url, "git://github.com/PyGithub/PyGithub.git") + self.assertEqual(self.repo.has_discussions, True) self.assertTrue(self.repo.has_downloads) self.assertTrue(self.repo.has_issues) + self.assertEqual(self.repo.deployments_url, "https://api.github.com/repos/PyGithub/PyGithub/deployments") + self.assertFalse(self.repo.has_pages) + self.assertEqual(self.repo.has_projects, True) + self.assertEqual(self.repo.has_wiki, False) + self.assertEqual(self.repo.homepage, "https://pygithub.readthedocs.io/") + self.assertEqual(self.repo.hooks_url, "https://api.github.com/repos/PyGithub/PyGithub/hooks") + self.assertEqual(self.repo.html_url, "https://github.com/PyGithub/PyGithub") + self.assertEqual(self.repo.id, 3544490) + self.assertEqual(self.repo.is_template, False) self.assertEqual( - self.repo.deployments_url, - "https://api.github.com/repos/jacquev6/PyGithub/deployments", + self.repo.issue_comment_url, "https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}" ) - self.assertFalse(self.repo.has_pages) self.assertEqual( - self.repo.releases_url, - "https://api.github.com/repos/jacquev6/PyGithub/releases{/id}", + self.repo.issue_events_url, "https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}" ) + self.assertEqual(self.repo.issues_url, "https://api.github.com/repos/PyGithub/PyGithub/issues{/number}") + self.assertEqual(self.repo.keys_url, "https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}") + self.assertEqual(self.repo.labels_url, "https://api.github.com/repos/PyGithub/PyGithub/labels{/name}") + self.assertEqual(self.repo.language, "Python") + self.assertEqual(self.repo.languages_url, "https://api.github.com/repos/PyGithub/PyGithub/languages") + self.assertEqual(self.repo.license.name, "GNU Lesser General Public License v3.0") + self.assertIsNone(self.repo.master_branch) + self.assertEqual(self.repo.merge_commit_message, "PR_TITLE") + self.assertEqual(self.repo.merge_commit_title, "MERGE_MESSAGE") + self.assertEqual(self.repo.merges_url, "https://api.github.com/repos/PyGithub/PyGithub/merges") + self.assertEqual(self.repo.milestones_url, "https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}") + self.assertIsNone(self.repo.mirror_url) + self.assertEqual(self.repo.name, "PyGithub") + self.assertEqual(self.repo.network_count, 1793) + self.assertEqual(self.repo.node_id, "MDEwOlJlcG9zaXRvcnkzNTQ0NDkw") + self.assertEqual( + self.repo.notifications_url, + "https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}", + ) + self.assertEqual(self.repo.open_issues, 357) + self.assertEqual(self.repo.open_issues_count, 357) + self.assertEqual(self.repo.organization.login, "PyGithub") + self.assertEqual(self.repo.owner.login, "PyGithub") + self.assertIsNone(self.repo.parent) + self.assertEqual(self.repo.permissions.admin, True) + self.assertEqual(self.repo.private, False) + self.assertEqual(self.repo.pulls_url, "https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}") + self.assertEqual(self.repo.pushed_at, datetime(2024, 12, 19, 12, 1, 11, tzinfo=timezone.utc)) + self.assertEqual(self.repo.releases_url, "https://api.github.com/repos/PyGithub/PyGithub/releases{/id}") self.assertFalse(self.repo.has_wiki) - self.assertFalse(self.repo.has_discussions) - self.assertEqual(self.repo.homepage, "http://vincent-jacques.net/PyGithub") - self.assertEqual(self.repo.html_url, "https://github.com/jacquev6/PyGithub") + self.assertTrue(self.repo.has_discussions) + self.assertEqual(self.repo.homepage, "https://pygithub.readthedocs.io/") + self.assertEqual(self.repo.html_url, "https://github.com/PyGithub/PyGithub") self.assertEqual(self.repo.id, 3544490) - self.assertIs(self.repo.is_template, None) + self.assertEqual(self.repo.is_template, False) self.assertEqual(self.repo.language, "Python") self.assertEqual(self.repo.license.spdx_id, "LGPL-3.0") - self.assertEqual(self.repo.master_branch, None) + self.assertIsNone(self.repo.master_branch) self.assertEqual(self.repo.name, "PyGithub") - self.assertEqual(self.repo.open_issues, 16) - self.assertEqual(self.repo.organization, None) - self.assertEqual(self.repo.owner.login, "jacquev6") - self.assertEqual(self.repo.parent, None) - self.assertTrue(self.repo.permissions.admin) - self.assertTrue(self.repo.permissions.pull) - self.assertTrue(self.repo.permissions.push) - self.assertFalse(self.repo.private) - self.assertEqual( - self.repo.pushed_at, - datetime(2012, 5, 27, 6, 0, 28, tzinfo=timezone.utc), - ) - self.assertEqual(self.repo.size, 308) - self.assertEqual(self.repo.source, None) - self.assertEqual(self.repo.ssh_url, "git@github.com:jacquev6/PyGithub.git") - self.assertEqual(self.repo.svn_url, "https://github.com/jacquev6/PyGithub") - self.assertEqual( - self.repo.updated_at, - datetime(2012, 5, 27, 6, 55, 28, tzinfo=timezone.utc), - ) - self.assertEqual(self.repo.url, "https://api.github.com/repos/jacquev6/PyGithub") - self.assertEqual(self.repo.watchers, 15) - self.assertEqual(repr(self.repo), 'Repository(full_name="jacquev6/PyGithub")') - self.assertTrue(self.repo.permissions.admin) - self.assertTrue(self.repo.permissions.push) - self.assertTrue(self.repo.permissions.pull) + self.assertEqual(self.repo.open_issues, 357) + self.assertEqual(self.repo.organization.login, "PyGithub") + self.assertEqual(self.repo.owner.login, "PyGithub") + self.assertIsNone(self.repo.parent) + self.assertEqual(self.repo.permissions.admin, True) + self.assertEqual(self.repo.permissions.pull, True) + self.assertEqual(self.repo.permissions.push, True) + self.assertEqual(self.repo.private, False) + self.assertEqual(self.repo.pushed_at, datetime(2024, 12, 19, 12, 1, 11, tzinfo=timezone.utc)) + self.assertIsNone(self.repo.role_name) + self.assertIsNone(self.repo.security_and_analysis.advanced_security) + self.assertEqual(self.repo.size, 16425) + self.assertIsNone(self.repo.source) + self.assertEqual(self.repo.squash_merge_commit_message, "PR_BODY") + self.assertEqual(self.repo.squash_merge_commit_title, "PR_TITLE") + self.assertEqual(self.repo.ssh_url, "git@github.com:PyGithub/PyGithub.git") + self.assertEqual(self.repo.stargazers_count, 7122) + self.assertEqual(self.repo.stargazers_url, "https://api.github.com/repos/PyGithub/PyGithub/stargazers") + self.assertIsNone(self.repo.starred_at) + self.assertEqual(self.repo.statuses_url, "https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}") + self.assertEqual(self.repo.subscribers_count, 111) + self.assertEqual(self.repo.subscribers_url, "https://api.github.com/repos/PyGithub/PyGithub/subscribers") + self.assertEqual(self.repo.subscription_url, "https://api.github.com/repos/PyGithub/PyGithub/subscription") + self.assertEqual(self.repo.svn_url, "https://github.com/PyGithub/PyGithub") + self.assertEqual(self.repo.tags_url, "https://api.github.com/repos/PyGithub/PyGithub/tags") + self.assertEqual(self.repo.teams_url, "https://api.github.com/repos/PyGithub/PyGithub/teams") + self.assertEqual(self.repo.temp_clone_token, "") + self.assertIsNone(self.repo.template_repository) + self.assertEqual(self.repo.topics, ["github", "github-api", "pygithub", "python"]) + self.assertEqual(self.repo.trees_url, "https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}") + self.assertEqual(self.repo.updated_at, datetime(2025, 1, 6, 21, 35, 40, tzinfo=timezone.utc)) + self.assertEqual(self.repo.url, "https://api.github.com/repos/PyGithub/PyGithub") + self.assertEqual(self.repo.use_squash_pr_title_as_default, True) + self.assertEqual(self.repo.visibility, "public") + self.assertEqual(self.repo.watchers, 7122) + self.assertEqual(repr(self.repo), 'Repository(full_name="PyGithub/PyGithub")') + self.assertEqual(self.repo.permissions.admin, True) + self.assertEqual(self.repo.permissions.push, True) + self.assertEqual(self.repo.permissions.pull, True) # Allow None or any boolean value for backwards compatibility self.assertIn(self.repo.permissions.maintain, [None, False, True]) self.assertIn(self.repo.permissions.triage, [None, False, True]) - self.assertTrue(self.repo.use_squash_pr_title_as_default) + self.assertEqual(self.repo.use_squash_pr_title_as_default, True) self.assertEqual(self.repo.squash_merge_commit_title, "PR_TITLE") - self.assertEqual(self.repo.squash_merge_commit_message, "COMMIT_MESSAGES") - self.assertEqual(self.repo.merge_commit_title, "PR_TITLE") - self.assertEqual(self.repo.merge_commit_message, "PR_BODY") - self.assertTrue(self.repo.web_commit_signoff_required) - self.assertEqual(self.repo.custom_properties, {"foo": "bar"}) + self.assertEqual(self.repo.squash_merge_commit_message, "PR_BODY") + self.assertEqual(self.repo.merge_commit_title, "MERGE_MESSAGE") + self.assertEqual(self.repo.merge_commit_message, "PR_TITLE") + self.assertEqual(self.repo.watchers_count, 7122) + self.assertEqual(self.repo.web_commit_signoff_required, False) + self.assertEqual(self.repo.custom_properties, {}) def testEditWithoutArguments(self): self.repo.edit("PyGithub") @@ -296,7 +386,7 @@ def testCreateLabel(self): self.assertEqual(label.name, "Label with silly name % * + created by PyGithub") self.assertEqual( label.url, - "https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+silly+name+%25+%2A+%2B+created+by+PyGithub", + "https://api.github.com/repos/PyGithub/PyGithub/labels/Label+with+silly+name+%25+%2A+%2B+created+by+PyGithub", ) def testGetLabel(self): @@ -305,7 +395,7 @@ def testGetLabel(self): self.assertEqual(label.name, "Label with silly name % * + created by PyGithub") self.assertEqual( label.url, - "https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+silly+name+%25+%2A+%2B+created+by+PyGithub", + "https://api.github.com/repos/PyGithub/PyGithub/labels/Label+with+silly+name+%25+%2A+%2B+created+by+PyGithub", ) def testCreateHookWithMinimalParameters(self): @@ -324,7 +414,7 @@ def testCreateGitRef(self): ) self.assertEqual( ref.url, - "https://api.github.com/repos/jacquev6/PyGithub/git/refs/heads/BranchCreatedByPyGithub", + "https://api.github.com/repos/PyGithub/PyGithub/git/refs/heads/BranchCreatedByPyGithub", ) def testCreateAutolink(self): @@ -434,6 +524,7 @@ def testCreateGitReleaseWithAllArguments(self): True, False, "da9a285fd8b782461e56cba39ae8d2fa41ca7cdc", + "true", ) self.assertEqual(release.tag_name, "vX.Y.Z-by-PyGithub-acctest2") self.assertEqual(release.title, "vX.Y.Z: PyGithub acctest2") @@ -536,7 +627,7 @@ def testCodeScanAlerts(self): self.assertEqual(codescan_alert.state, "open") self.assertEqual( codescan_alert.url, - "https://api.github.com/repos/jacquev6/PyGithub/code-scanning/alerts/6", + "https://api.github.com/repos/PyGithub/PyGithub/code-scanning/alerts/6", ) self.assertEqual( codescan_alert.created_at, @@ -664,6 +755,7 @@ def testRemoveAutolink(self): def testCollaboratorPermissionNoPushAccess(self): with self.assertRaises(github.GithubException) as raisedexp: self.repo.get_collaborator_permission("lyloa") + self.assertEqual(raisedexp.exception.message, "Must have push access to view collaborator permission.") self.assertEqual(raisedexp.exception.status, 403) self.assertEqual( raisedexp.exception.data, @@ -680,23 +772,23 @@ def testCompare(self): self.assertEqual(comparison.behind_by, 0) self.assertEqual( comparison.diff_url, - "https://github.com/jacquev6/PyGithub/compare/v0.6...v0.7.diff", + "https://github.com/PyGithub/PyGithub/compare/v0.6...v0.7.diff", ) self.assertEqual( comparison.html_url, - "https://github.com/jacquev6/PyGithub/compare/v0.6...v0.7", + "https://github.com/PyGithub/PyGithub/compare/v0.6...v0.7", ) self.assertEqual( comparison.url, - "https://api.github.com/repos/jacquev6/PyGithub/compare/v0.6...v0.7", + "https://api.github.com/repos/PyGithub/PyGithub/compare/v0.6...v0.7", ) self.assertEqual( comparison.patch_url, - "https://github.com/jacquev6/PyGithub/compare/v0.6...v0.7.patch", + "https://github.com/PyGithub/PyGithub/compare/v0.6...v0.7.patch", ) self.assertEqual( comparison.permalink_url, - "https://github.com/jacquev6/PyGithub/compare/jacquev6:4303c5b...jacquev6:ecda065", + "https://github.com/PyGithub/PyGithub/compare/jacquev6:4303c5b...jacquev6:ecda065", ) self.assertEqual(comparison.total_commits, 4) self.assertListKeyEqual( @@ -925,7 +1017,7 @@ def testGetCommitsWithAuthor(self): self.g.per_page = 5 akfish = self.g.get_user("AKFish") self.assertListKeyBegin( - self.repo.get_commits(author=self.user), + self.repo.get_commits(author="jacquev6"), lambda c: c.sha, ["54f718a15770579a37ffbe7ae94ad30003407786"], ) @@ -1023,6 +1115,7 @@ def testGetHookDelivery(self): self.assertEqual(delivery.duration, 0.27) self.assertEqual(delivery.status, "OK") self.assertEqual(delivery.status_code, 200) + self.assertIsNone(delivery.throttled_at) self.assertEqual(delivery.event, "issues") self.assertEqual(delivery.action, "opened") self.assertEqual(delivery.installation_id, 123) @@ -1617,19 +1710,19 @@ def testDeleteFile(self): def testGetArchiveLink(self): self.assertEqual( self.repo.get_archive_link("tarball"), - "https://nodeload.github.com/jacquev6/PyGithub/tarball/master", + "https://nodeload.github.com/PyGithub/PyGithub/tarball/master", ) self.assertEqual( self.repo.get_archive_link("zipball"), - "https://nodeload.github.com/jacquev6/PyGithub/zipball/master", + "https://nodeload.github.com/PyGithub/PyGithub/zipball/master", ) self.assertEqual( self.repo.get_archive_link("zipball", "master"), - "https://nodeload.github.com/jacquev6/PyGithub/zipball/master", + "https://nodeload.github.com/PyGithub/PyGithub/zipball/master", ) self.assertEqual( self.repo.get_archive_link("tarball", "develop"), - "https://nodeload.github.com/jacquev6/PyGithub/tarball/develop", + "https://nodeload.github.com/PyGithub/PyGithub/tarball/develop", ) def testGetBranch(self): @@ -1658,9 +1751,37 @@ def testMergeWithNothingToDo(self): def testMergeWithConflict(self): with self.assertRaises(github.GithubException) as raisedexp: self.repo.merge("branchForBase", "branchForHead") + self.assertEqual(raisedexp.exception.message, "Merge conflict") self.assertEqual(raisedexp.exception.status, 409) self.assertEqual(raisedexp.exception.data, {"message": "Merge conflict"}) + def testMergeUpstreamSuccess(self): + # Use fork for being able to update it + repo = self.g.get_repo("Felixoid/PyGithub") + # First one to sync with upstream + result = repo.merge_upstream("main") + self.assertEqual(result.message, "Successfully fetched and fast-forwarded from upstream PyGithub:main.") + self.assertEqual(result.base_branch, "PyGithub:main") + self.assertEqual(result.merge_type, "fast-forward") + # Second one to check it's already synced + result = repo.merge_upstream("main") + self.assertEqual(result.message, "This branch is not behind the upstream PyGithub:main.") + self.assertEqual(result.base_branch, "PyGithub:main") + self.assertEqual(result.merge_type, "none") + + def testMergeUpstreamFailure(self): + # Use fork for being able to update it + repo = self.g.get_repo("Felixoid/PyGithub") + with self.assertRaises(github.GithubException) as raisedexp: + repo.merge_upstream("doesNotExist") + self.assertEqual(raisedexp.exception.status, 404) + self.assertEqual(raisedexp.exception.message, "Branch not found") + + with self.assertRaises(github.GithubException) as raisedexp: + repo.merge_upstream("merge-conflict") + self.assertEqual(raisedexp.exception.status, 409) + self.assertEqual(raisedexp.exception.message, "There are merge conflicts") + def testGetIssuesComments(self): self.assertListKeyEqual( self.repo.get_issues_comments()[:40], @@ -1820,6 +1941,7 @@ def testSubscribePubSubHubbub(self): def testBadSubscribePubSubHubbub(self): with self.assertRaises(github.GithubException) as raisedexp: self.repo.subscribe_to_hub("non-existing-event", "http://requestb.in/1bc1sc61") + self.assertEqual(raisedexp.exception.message, 'Invalid event: "non-existing-event"') self.assertEqual(raisedexp.exception.status, 422) self.assertEqual(raisedexp.exception.data, {"message": 'Invalid event: "non-existing-event"'}) @@ -2064,12 +2186,28 @@ def testUpdateCustomProperties(self): custom_properties = {"foo": "bar"} self.repo.update_custom_properties(custom_properties) + def testTransferOwnership(self): + status = self.repo.transfer_ownership(new_owner="An-Nie-Tan-99", new_name="PyGithub-test") + self.assertTrue(status) + + def testTransferOwnershipInvalidOwner(self): + with self.assertRaises(github.GithubException) as raisedexp: + self.repo.transfer_ownership("new_owner") + self.assertEqual(raisedexp.exception.status, 422) + self.assertEqual( + raisedexp.exception.data, + { + "message": "Invalid new_owner", + "documentation_url": "https://docs.github.com/rest/repos/repos#transfer-a-repository", + "status": "422", + }, + ) + class LazyRepository(Framework.TestCase): def setUp(self): super().setUp() - self.user = self.g.get_user() - self.repository_name = f"{self.user.login}/PyGithub" + self.repository_name = "PyGithub/PyGithub" def getLazyRepository(self): return self.g.get_repo(self.repository_name, lazy=True) diff --git a/tests/RepositoryAdvisory.py b/tests/RepositoryAdvisory.py index 8370607357..4e4fed0b8e 100644 --- a/tests/RepositoryAdvisory.py +++ b/tests/RepositoryAdvisory.py @@ -3,6 +3,7 @@ # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2023 Jonathan Leitschuh # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -22,6 +23,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone import github.RepositoryAdvisory @@ -42,6 +45,7 @@ def setUp(self): def testAttributes(self): self.assertEqual(self.advisory.author.login, "JLLeitschuh") self.assertEqual(self.advisory.closed_at, None) + self.assertIsNone(self.advisory.collaborating_teams) self.assertEqual( self.advisory.created_at, datetime(2023, 3, 28, 21, 41, 40, tzinfo=timezone.utc), @@ -53,6 +57,8 @@ def testAttributes(self): [("octocat", "analyst")], ) self.assertEqual(self.advisory.cve_id, "CVE-2023-00000") + self.assertEqual(self.advisory.cvss.vector_string, "CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H") + self.assertIsNone(self.advisory.cvss_severities) self.assertListEqual(self.advisory.cwe_ids, ["CWE-400", "CWE-501"]) self.assertListKeyEqual( self.advisory.cwes, @@ -71,9 +77,16 @@ def testAttributes(self): self.advisory.html_url, "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-wmmh-r9w4-hpxx", ) + self.assertEqual( + self.advisory.identifiers, + [{"value": "GHSA-wmmh-r9w4-hpxx", "type": "GHSA"}, {"value": "CVE-2023-00000", "type": "CVE"}], + ) + self.assertIsNone(self.advisory.private_fork) self.assertEqual(self.advisory.published_at, None) + self.assertIsNone(self.advisory.publisher) self.assertEqual(self.advisory.severity, "high") self.assertEqual(self.advisory.state, "draft") + self.assertIsNone(self.advisory.submission) self.assertEqual(self.advisory.summary, "A test creating a GHSA via the API") self.assertEqual( self.advisory.updated_at, diff --git a/tests/RepositoryKey.py b/tests/RepositoryKey.py index 656a3d68f5..d9cb761a99 100644 --- a/tests/RepositoryKey.py +++ b/tests/RepositoryKey.py @@ -18,6 +18,7 @@ # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Enrico Minack # # Copyright 2024 Ramiro Morales # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -37,6 +38,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -52,11 +55,15 @@ def setUp(self): self.yet_unused_key = repo.get_key(98051552) def testAttributes(self): + self.assertEqual(self.key.added_by, "key-admin-user") + self.assertEqual(self.key.created_at, datetime(2017, 2, 22, 8, 16, 23, tzinfo=timezone.utc)) self.assertEqual(self.key.id, 21870881) self.assertEqual( self.key.key, "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLOoLSVPwG1OSgVSeEXNbfIofYdxR5zs3u4PryhnamfFPYwi2vZW3ZxeI1oRcDh2VEdwGvlN5VUduKJNoOWMVzV2jSyR8CeDHH+I0soQCC7kfJVodU96HcPMzZ6MuVwSfD4BFGvKMXyCnBUqzo28BGHFwVQG8Ya9gL6/cTbuWywgM4xaJgMHv1OVcESXBtBkrqOneTJuOgeEmP0RfUnIAK/3/wbg9mfiBq7JV4cmWAg1xNE8GJoAbci59Tdx1dQgVuuqdQGk5jzNusOVneyMtGEB+p7UpPLJsGBW29rsMt7ITUbXM/kl9v11vPtWb+oOUThoFsDYmsWy7fGGP9YAFB", ) + self.assertEqual(self.key.last_used, datetime(2024, 4, 13, 10, 0, 21, tzinfo=timezone.utc)) + self.assertEqual(self.key.read_only, True) self.assertEqual(self.key.title, "PyGithub Test Key") self.assertEqual(self.key.url, "https://api.github.com/repos/lra/mackup/keys/21870881") self.assertEqual( diff --git a/tests/Requester.py b/tests/Requester.py index 3b33f60ed6..a11ce1e2ba 100644 --- a/tests/Requester.py +++ b/tests/Requester.py @@ -5,6 +5,8 @@ # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2023 Trim21 # # Copyright 2024 Enrico Minack # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Timothy Klopotoski # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -66,6 +68,9 @@ class TestAuth(github.Auth.AppAuth): pool_size=5, seconds_between_requests=1.2, seconds_between_writes=3.4, + # v3: this should not be the default value, so if this has been changed in v3, + # change it here is well + lazy=True, ) kwargs = requester.kwargs @@ -84,6 +89,7 @@ class TestAuth(github.Auth.AppAuth): pool_size=5, seconds_between_requests=1.2, seconds_between_writes=3.4, + lazy=True, ), ) @@ -116,6 +122,9 @@ class TestAuth(github.Auth.AppAuth): pool_size=5, seconds_between_requests=1.2, seconds_between_writes=3.4, + # v3: this should not be the default value, so if this has been changed in v3, + # change it here is well + lazy=True, ) # create a copy with different auth @@ -136,6 +145,7 @@ class TestAuth(github.Auth.AppAuth): pool_size=5, seconds_between_requests=1.2, seconds_between_writes=3.4, + lazy=True, ), ) @@ -283,8 +293,12 @@ def testIsSecondaryRateLimitError(self): for message in self.OtherErrors + self.PrimaryRateLimitErrors: self.assertFalse(github.Requester.Requester.isSecondaryRateLimitError(message), message) - def assertException(self, exception, exception_type, status, data, headers, string): + def assertException(self, exception, exception_type, message, status, data, headers, string): self.assertIsInstance(exception, exception_type) + if message is None: + self.assertIsNone(exception.message) + else: + self.assertEqual(exception.message, message) self.assertEqual(exception.status, status) if data is None: self.assertIsNone(exception.data) @@ -298,6 +312,7 @@ def testShouldCreateBadCredentialsException(self): self.assertException( exc, github.BadCredentialsException, + None, 401, {"message": "Bad credentials"}, {"header": "value"}, @@ -316,6 +331,7 @@ def testShouldCreateTwoFactorException(self): self.assertException( exc, github.TwoFactorException, + None, 401, { "message": "Must specify two-factor authentication OTP code.", @@ -334,6 +350,7 @@ def testShouldCreateBadUserAgentException(self): self.assertException( exc, github.BadUserAgentException, + None, 403, {"message": "Missing or invalid User Agent string"}, {"header": "value"}, @@ -347,6 +364,7 @@ def testShouldCreateRateLimitExceededException(self): self.assertException( exc, github.RateLimitExceededException, + None, 403, {"message": message}, {"header": "value"}, @@ -358,12 +376,27 @@ def testShouldCreateUnknownObjectException(self): self.assertException( exc, github.UnknownObjectException, + None, 404, {"message": "Not Found"}, {"header": "value"}, '404 {"message": "Not Found"}', ) + def testShouldCreateUnknownObjectException2(self): + exc = self.g._Github__requester.createException( + 404, {"header": "value"}, {"message": "No object found for the path some-nonexistent-file"} + ) + self.assertException( + exc, + github.UnknownObjectException, + None, + 404, + {"message": "No object found for the path some-nonexistent-file"}, + {"header": "value"}, + '404 {"message": "No object found for the path some-nonexistent-file"}', + ) + def testShouldCreateGithubException(self): for status in range(400, 600): with self.subTest(status=status): @@ -373,23 +406,24 @@ def testShouldCreateGithubException(self): self.assertException( exc, github.GithubException, + "Something unknown", status, {"message": "Something unknown"}, {"header": "value"}, - f'{status} {{"message": "Something unknown"}}', + f'Something unknown: {status} {{"message": "Something unknown"}}', ) def testShouldCreateExceptionWithoutMessage(self): for status in range(400, 600): with self.subTest(status=status): exc = self.g._Github__requester.createException(status, {}, {}) - self.assertException(exc, github.GithubException, status, {}, {}, f"{status} {{}}") + self.assertException(exc, github.GithubException, None, status, {}, {}, f"{status} {{}}") def testShouldCreateExceptionWithoutOutput(self): for status in range(400, 600): with self.subTest(status=status): exc = self.g._Github__requester.createException(status, {}, None) - self.assertException(exc, github.GithubException, status, None, {}, f"{status}") + self.assertException(exc, github.GithubException, None, status, None, {}, f"{status}") class RequesterThrottleTestCase(Framework.TestCase): diff --git a/tests/Retry.py b/tests/Retry.py index 1dce05aeba..03f9ed6f84 100644 --- a/tests/Retry.py +++ b/tests/Retry.py @@ -10,6 +10,8 @@ # Copyright 2021 Amador Pahim # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Maja Massarini <2678400+majamassarini@users.noreply.github.com># # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -30,8 +32,8 @@ ################################################################################ import requests -import urllib3 # type: ignore -from httpretty import httpretty # type: ignore +import responses +import urllib3 import github @@ -52,22 +54,22 @@ def setUp(self): def testShouldNotRetryWhenStatusNotOnList(self): with self.assertRaises(github.GithubException): self.g.get_repo(REPO_NAME) - self.assertEqual(len(httpretty.latest_requests), 1) + self.assertEqual(len(responses.calls), 1) def testReturnsRepoAfter3Retries(self): repository = self.g.get_repo(REPO_NAME) - self.assertEqual(len(httpretty.latest_requests), 4) - for request in httpretty.latest_requests: - self.assertEqual(request.path, "/repos/" + REPO_NAME) + self.assertEqual(len(responses.calls), 4) + for call in responses.calls: + self.assertEqual(call.request.path_url, "/repos/" + REPO_NAME) self.assertIsInstance(repository, github.Repository.Repository) self.assertEqual(repository.full_name, REPO_NAME) def testReturnsRepoAfter1Retry(self): repository = self.g.get_repo(REPO_NAME) - self.assertEqual(len(httpretty.latest_requests), 2) - for request in httpretty.latest_requests: - self.assertEqual(request.path, "/repos/" + REPO_NAME) + self.assertEqual(len(responses.calls), 2) + for call in responses.calls: + self.assertEqual(call.request.path_url, "/repos/" + REPO_NAME) self.assertIsInstance(repository, github.Repository.Repository) self.assertEqual(repository.full_name, REPO_NAME) @@ -75,9 +77,9 @@ def testReturnsRepoAfter1Retry(self): def testRaisesRetryErrorAfterMaxRetries(self): with self.assertRaises(requests.exceptions.RetryError): self.g.get_repo("PyGithub/PyGithub") - self.assertEqual(len(httpretty.latest_requests), 4) - for request in httpretty.latest_requests: - self.assertEqual(request.path, "/repos/PyGithub/PyGithub") + self.assertEqual(len(responses.calls), 4) + for call in responses.calls: + self.assertEqual(call.request.path_url, "/repos/PyGithub/PyGithub") def testReturnsRepoAfterSettingRetryHttp(self): g = github.Github( diff --git a/tests/Search.py b/tests/Search.py index 83cac27957..567cfe9723 100644 --- a/tests/Search.py +++ b/tests/Search.py @@ -16,6 +16,7 @@ # Copyright 2021 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -90,6 +91,7 @@ def testPaginateSearchUsers(self): ], ) self.assertEqual(users.totalCount, 6038) + self.assertEqual(users[0].score, 1.0) def testGetPageOnSearchUsers(self): users = self.g.search_users("", location="Berlin") @@ -195,19 +197,28 @@ def testSearchIssues(self): 23102422, ], ) - - def testPaginateSearchCommits(self): - commits = self.g.search_commits(query="hash:5b0224e868cc9242c9450ef02efbe3097abd7ba2") - self.assertEqual(commits.totalCount, 3) + self.assertEqual(issues[0].score, 0.08252439) def testSearchCommits(self): - commits = self.g.search_commits( + pages = self.g.search_commits(query="hash:5b0224e868cc9242c9450ef02efbe3097abd7ba2") + commits = list(pages) + self.assertEqual(pages.totalCount, 12) + self.assertEqual(commits[0].commit.message, "Fix README instructions") + self.assertEqual(commits[0].score, 1.0) + self.assertEqual(commits[0].sha, "5b0224e868cc9242c9450ef02efbe3097abd7ba2") + + def testSearchCommitsOrder(self): + pages = self.g.search_commits( query="hash:1265747e992ba7d34a469b6b2f527809f8bf7067", sort="author-date", order="asc", merge="false", ) - self.assertEqual(commits.totalCount, 2) + commits = list(pages) + self.assertEqual(pages.totalCount, 4) + self.assertEqual(len(commits[0].commit.message), 490) + self.assertEqual(commits[0].score, 1.0) + self.assertEqual(commits[0].sha, "1265747e992ba7d34a469b6b2f527809f8bf7067") def testSearchTopics(self): topics = self.g.search_topics("python", repositories=">950") @@ -243,6 +254,7 @@ def testSearchCode(self): "ParserTestCase.py", ], ) + self.assertEqual(files[0].score, 0.31651077) self.assertEqual(files[0].repository.full_name, "jacquev6/PyGithub") content = files[0].decoded_content if isinstance(content, bytes): @@ -251,7 +263,32 @@ def testSearchCode(self): def testSearchHighlightingCode(self): files = self.g.search_code("toto", sort="indexed", order="asc", user="jacquev6", highlight=True) - self.assertTrue(files[0].text_matches) + self.assertEqual(files[0].score, 14.030813) + self.assertEqual( + files[0].text_matches, + [ + { + "fragment": ".assertEqual(\n" + " self.recorded.instance_method(42, 43, 44, 45, " + "toto=46, tutu=47", + "matches": [{"indices": [72, 76], "text": "toto"}], + "object_type": "FileContent", + "object_url": "https://api.github.com/repositories/6430524/contents/MockMockMock/tests/record_replay.py?ref=562a55542f55426f6853f3013309c85f402c359e", + "property": "content", + }, + { + "fragment": "),\n" + " \"(42, 43, (44, 45), [('toto', 46), ('tutu', " + '47)])"\n' + " )\n" + " self.assertEqual", + "matches": [{"indices": [38, 42], "text": "toto"}], + "object_type": "FileContent", + "object_url": "https://api.github.com/repositories/6430524/contents/MockMockMock/tests/record_replay.py?ref=562a55542f55426f6853f3013309c85f402c359e", + "property": "content", + }, + ], + ) def testUrlquotingOfQualifiers(self): # Example taken from #236 diff --git a/tests/SecurityAndAnalysis.py b/tests/SecurityAndAnalysis.py index c9dcab8a8c..edd4aa2e01 100644 --- a/tests/SecurityAndAnalysis.py +++ b/tests/SecurityAndAnalysis.py @@ -16,6 +16,7 @@ # Copyright 2023 Enrico Minack # # Copyright 2024 Caleb McCombs # # Copyright 2024 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -35,31 +36,35 @@ # # ################################################################################ +from __future__ import annotations + from . import Framework class SecurityAndAnalysis(Framework.TestCase): def setUp(self): super().setUp() - self.repo = self.g.get_repo("transmission-web-control/transmission-web-control") + self.repo = self.g.get_repo("PyGithub/PyGithub") self.maxDiff = None - def testRepoSecurityAndAnalysisAttributes(self): - self.assertEqual(self.repo.security_and_analysis.advanced_security.status, "disabled") - self.assertEqual(self.repo.security_and_analysis.dependabot_security_updates.status, "disabled") - self.assertEqual(self.repo.security_and_analysis.secret_scanning.status, "disabled") - self.assertEqual(self.repo.security_and_analysis.secret_scanning_push_protection.status, "disabled") - self.assertEqual(self.repo.security_and_analysis.secret_scanning_non_provider_patterns.status, "disabled") - self.assertEqual(self.repo.security_and_analysis.secret_scanning_validity_checks.status, "disabled") + def testAttributes(self): + security_and_analysis = self.repo.security_and_analysis + self.assertIsNone(security_and_analysis.advanced_security) + self.assertEqual(security_and_analysis.dependabot_security_updates.status, "enabled") + self.assertEqual(security_and_analysis.secret_scanning.status, "disabled") + self.assertIsNone(security_and_analysis.secret_scanning_ai_detection) + self.assertEqual(security_and_analysis.secret_scanning_push_protection.status, "disabled") + self.assertEqual(security_and_analysis.secret_scanning_non_provider_patterns.status, "disabled") + self.assertIsNone(security_and_analysis.secret_scanning_validity_checks) - def testRepoSecurityAndAnalysisRepresentation(self): + def testRepresentation(self): self.assertEqual( repr(self.repo.security_and_analysis), "SecurityAndAnalysis(" - 'secret_scanning_validity_checks="SecurityAndAnalysisFeature(status="disabled")", ' + 'secret_scanning_validity_checks="None", ' 'secret_scanning_push_protection="SecurityAndAnalysisFeature(status="disabled")", ' 'secret_scanning_non_provider_patterns="SecurityAndAnalysisFeature(status="disabled")", ' 'secret_scanning="SecurityAndAnalysisFeature(status="disabled")", ' - 'dependabot_security_updates="SecurityAndAnalysisFeature(status="disabled")", ' - 'advanced_security="SecurityAndAnalysisFeature(status="disabled")")', + 'dependabot_security_updates="SecurityAndAnalysisFeature(status="enabled")", ' + 'advanced_security="None")', ) diff --git a/tests/SelfHostedActionsRunner.py b/tests/SelfHostedActionsRunner.py index 6a71fe94e5..76b5aec0a5 100644 --- a/tests/SelfHostedActionsRunner.py +++ b/tests/SelfHostedActionsRunner.py @@ -13,6 +13,7 @@ # Copyright 2020 Victor Zeng # # Copyright 2023 Enrico Minack # # Copyright 2023 Trim21 # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -32,6 +33,8 @@ # # ################################################################################ +from __future__ import annotations + from . import Framework @@ -43,13 +46,23 @@ def setUp(self): def testAttributes(self): runner = self.repo.get_self_hosted_runner(2217) - self.assertEqual(2217, runner.id) - self.assertEqual("linux", runner.os) - self.assertEqual("4306125c7c84", runner.name) - self.assertEqual("offline", runner.status) self.assertFalse(runner.busy) - labels = runner.labels() - self.assertEqual(3, len(labels)) - self.assertEqual("self-hosted", labels[0]["name"]) - self.assertEqual("X64", labels[1]["name"]) - self.assertEqual("Linux", labels[2]["name"]) + self.assertEqual(runner.id, 2217) + self.assertEqual( + runner.labels, + [ + {"id": 1, "name": "self-hosted", "type": "read-only"}, + {"id": 3, "name": "X64", "type": "read-only"}, + {"id": 4, "name": "Linux", "type": "read-only"}, + ], + ) + self.assertEqual(runner.name, "4306125c7c84") + self.assertEqual(runner.os, "linux") + self.assertEqual(runner.name, "4306125c7c84") + self.assertIsNone(runner.runner_group_id) + self.assertEqual(runner.status, "offline") + labels = runner.labels + self.assertEqual(len(labels), 3) + self.assertEqual(labels[0]["name"], "self-hosted") + self.assertEqual(labels[1]["name"], "X64") + self.assertEqual(labels[2]["name"], "Linux") diff --git a/tests/SourceImport.py b/tests/SourceImport.py index 5a0466ff43..c4f88ae9e1 100644 --- a/tests/SourceImport.py +++ b/tests/SourceImport.py @@ -14,6 +14,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,6 +34,8 @@ # # ################################################################################ +from __future__ import annotations + from . import Framework @@ -49,19 +52,29 @@ def testAttributes(self): self.source_import.authors_url, "https://api.github.com/repos/brix4dayz/source-import-test/import/authors", ) + self.assertIsNone(self.source_import.commit_count) + self.assertIsNone(self.source_import.error_message) + self.assertIsNone(self.source_import.failed_step) self.assertEqual(self.source_import.has_large_files, False) self.assertEqual( self.source_import.html_url, "https://github.com/brix4dayz/source-import-test/import", ) + self.assertIsNone(self.source_import.import_percent) self.assertEqual(self.source_import.large_files_count, 0) self.assertEqual(self.source_import.large_files_size, 0) + self.assertIsNone(self.source_import.message) + self.assertIsNone(self.source_import.project_choices) + self.assertIsNone(self.source_import.push_percent) self.assertEqual( self.source_import.repository_url, "https://api.github.com/repos/brix4dayz/source-import-test", ) self.assertEqual(self.source_import.status, "complete") self.assertEqual(self.source_import.status_text, "Done") + self.assertIsNone(self.source_import.svc_root) + self.assertIsNone(self.source_import.svn_root) + self.assertIsNone(self.source_import.tfvc_project) self.assertEqual( self.source_import.url, "https://api.github.com/repos/brix4dayz/source-import-test/import", diff --git a/tests/Tag.py b/tests/Tag.py index 0d83de3ec5..bc3909bc81 100644 --- a/tests/Tag.py +++ b/tests/Tag.py @@ -13,6 +13,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -32,20 +33,27 @@ # # ################################################################################ +from __future__ import annotations + from . import Framework class Tag(Framework.TestCase): def setUp(self): super().setUp() - self.tag = self.g.get_user().get_repo("PyGithub").get_tags()[0] + self.tag = self.g.get_repo("PyGithub/PyGithub").get_tags()[0] def testAttributes(self): - self.assertEqual(self.tag.commit.sha, "636e6112deb72277b3bffcc3303cd7e8a7431a5d") - self.assertEqual(self.tag.name, "v0.3") - self.assertEqual(self.tag.tarball_url, "https://github.com/jacquev6/PyGithub/tarball/v0.3") - self.assertEqual(self.tag.zipball_url, "https://github.com/jacquev6/PyGithub/zipball/v0.3") + self.assertEqual(self.tag.commit.sha, "19ddb9f4fd996e99a5010d271b3c2e76dd280fb5") + self.assertEqual(self.tag.name, "v2.5.0") + self.assertEqual(self.tag.node_id, "MDM6UmVmMzU0NDQ5MDpyZWZzL3RhZ3MvdjIuNS4w") + self.assertEqual( + self.tag.tarball_url, "https://api.github.com/repos/PyGithub/PyGithub/tarball/refs/tags/v2.5.0" + ) + self.assertEqual( + self.tag.zipball_url, "https://api.github.com/repos/PyGithub/PyGithub/zipball/refs/tags/v2.5.0" + ) self.assertEqual( repr(self.tag), - 'Tag(name="v0.3", commit=Commit(sha="636e6112deb72277b3bffcc3303cd7e8a7431a5d"))', + 'Tag(name="v2.5.0", commit=Commit(sha="19ddb9f4fd996e99a5010d271b3c2e76dd280fb5"))', ) diff --git a/tests/Team.py b/tests/Team.py index fd8f1ecf1f..34c4d8413c 100644 --- a/tests/Team.py +++ b/tests/Team.py @@ -28,6 +28,7 @@ # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # Copyright 2024 Andrii Kezikov # # Copyright 2024 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -48,6 +49,8 @@ ################################################################################ +from __future__ import annotations + import warnings from datetime import datetime, timezone @@ -58,20 +61,36 @@ class Team(Framework.TestCase): def setUp(self): super().setUp() self.org = self.g.get_organization("BeaverSoftware") - self.team = self.org.get_team(189850) + self.team = self.org.get_team(12345678) def testAttributes(self): - self.assertEqual(self.team.id, 189850) - self.assertEqual(self.team.members_count, 0) - self.assertEqual(self.team.name, "Team created by PyGithub") + self.assertEqual(self.team.created_at, datetime(2024, 6, 18, 10, 27, 23, tzinfo=timezone.utc)) + self.assertEqual(self.team.description, "a team") + self.assertEqual(self.team.html_url, "https://github.com/orgs/BeaverSoftware/teams/team-slug") + self.assertEqual(self.team.id, 12345678) + self.assertIsNone(self.team.ldap_dn) + self.assertEqual(self.team.members_count, 1) + self.assertEqual( + self.team.members_url, "https://api.github.com/organizations/1234567/team/12345678/members{/member}" + ) + self.assertEqual(self.team.name, "Team") + self.assertEqual(self.team.node_id, "AbCdEfG") + self.assertEqual(self.team.notification_setting, "notifications_disabled") + self.assertEqual(self.team.organization.login, "BeaverSoftware") + self.assertIsNone(self.team.parent) self.assertEqual(self.team.permission, "pull") + self.assertIsNone(self.team.permissions) + self.assertEqual(self.team.privacy, "closed") self.assertEqual(self.team.repos_count, 0) - self.assertEqual(self.team.url, "https://api.github.com/teams/189850") + self.assertEqual(self.team.repositories_url, "https://api.github.com/organizations/1234567/team/12345678/repos") + self.assertEqual(self.team.slug, "team-slug") + self.assertEqual(self.team.updated_at, datetime(2024, 6, 18, 10, 27, 23, tzinfo=timezone.utc)) + self.assertEqual(self.team.url, "https://api.github.com/organizations/1234567/team/12345678") self.assertEqual(self.team.organization, self.org) self.assertEqual(self.team.privacy, "closed") self.assertEqual(self.team.parent, None) - self.assertEqual(repr(self.team), 'Team(name="Team created by PyGithub", id=189850)') - self.assertEqual(self.team.html_url, "https://github.com/orgs/BeaverSoftware/teams/core") + self.assertEqual(repr(self.team), 'Team(name="Team", id=12345678)') + self.assertEqual(self.team.html_url, "https://github.com/orgs/BeaverSoftware/teams/team-slug") def testDiscussions(self): discussions = list(self.team.get_discussions()) @@ -83,7 +102,9 @@ def testDiscussions(self): self.assertEqual(d.body_html, "

BODY

") self.assertEqual(d.body_version, "bedf0740b01d2d758cff9873c2387817") self.assertEqual(d.comments_count, 0) - self.assertEqual(d.comments_url, "https://api.github.com/teams/189850/discussions/1/comments") + self.assertEqual( + d.comments_url, "https://api.github.com/organizations/1234567/team/12345678/discussions/1/comments" + ) self.assertEqual(d.created_at, datetime(2019, 10, 8, 21, 3, 36, tzinfo=timezone.utc)) self.assertEqual( d.html_url, @@ -94,10 +115,10 @@ def testDiscussions(self): self.assertEqual(d.number, 1) self.assertEqual(d.pinned, True) self.assertEqual(d.private, False) - self.assertEqual(d.team_url, "https://api.github.com/teams/189850") + self.assertEqual(d.team_url, "https://api.github.com/organizations/1234567/team/12345678") self.assertEqual(d.title, "TITLE") self.assertEqual(d.updated_at, datetime(2019, 10, 8, 21, 3, 36, tzinfo=timezone.utc)) - self.assertEqual(d.url, "https://api.github.com/teams/189850/discussions/1") + self.assertEqual(d.url, "https://api.github.com/organizations/1234567/team/12345678/discussions/1") self.assertEqual(repr(d), 'TeamDiscussion(title="TITLE", number=1)') def testMembers(self): diff --git a/tests/Topic.py b/tests/Topic.py index 63811720a1..2d17ff58c8 100644 --- a/tests/Topic.py +++ b/tests/Topic.py @@ -5,6 +5,7 @@ # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # # Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -25,6 +26,8 @@ ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from operator import attrgetter @@ -36,7 +39,7 @@ def setUp(self): super().setUp() self.topics = list(self.g.search_topics("python")) - def testAllFields(self): + def testAttributes(self): topic = self.topics[0] self.assertEqual(topic.name, "python") @@ -47,15 +50,19 @@ def testAllFields(self): ) self.assertEqual( topic.description, - "Python is a dynamically typed programming language designed by Guido van Rossum. Much like the programming language Ruby, Python was designed to be easily read by programmers. Because of its large following and many libraries, Python can be implemented and used to do anything from webpages to scientific research.", + "Python is a dynamically-typed garbage-collected programming language " + "developed by Guido van Rossum in the late 80s to replace ABC. Much like the " + "programming language Ruby, Python was designed to be easily read by " + "programmers. Because of its large following and many libraries, Python can " + "be implemented and used to do anything from webpages to scientific research.", ) self.assertEqual(topic.created_by, "Guido van Rossum") self.assertEqual(topic.released, "February 20, 1991") self.assertEqual(topic.created_at, datetime(2016, 12, 7, 0, 7, 2, tzinfo=timezone.utc)) - self.assertEqual(topic.updated_at, datetime(2019, 10, 9, 20, 33, 49, tzinfo=timezone.utc)) + self.assertEqual(topic.updated_at, datetime(2025, 1, 7, 9, 22, 52, tzinfo=timezone.utc)) self.assertEqual(topic.featured, True) self.assertEqual(topic.curated, True) - self.assertEqual(topic.score, 7576.306) + self.assertEqual(topic.score, 1.0) self.assertEqual(topic.__repr__(), 'Topic(name="python")') @@ -63,34 +70,33 @@ def testNamesFromSearchResults(self): expected_names = [ "python", "django", + "hacktoberfest", "flask", "python-script", - "python36", "opencv-python", + "numpy", + "backend", + "fastapi", "ruby", "python-library", - "scikit-learn", - "python37", + "keras", "selenium-python", - "sublime-text", - "leetcode-python", - "learning-python", "tkinter-python", - "python35", + "scikit-learn", + "pandas-python", + "streamlit", + "leetcode-python", + "python36", "machinelearning-python", - "python-flask", - "python-package", + "nltk-python", + "data-analysis-python", + "micropython", + "python37", + "langchain-python", + "learning-python", + "oops-in-python", "python-telegram-bot", - "python-wrapper", - "python3-6", - "opencv3-python", - "hackerrank-python", - "python-api", - "python2-7", - "pythonista", - "haxe", - "python-requests", - "python-2-7", + "python-package", + "python-project", ] - self.assertListKeyEqual(self.topics, attrgetter("name"), expected_names) diff --git a/tests/Traffic.py b/tests/Traffic.py index 4d267a2e74..3cc7f42b27 100644 --- a/tests/Traffic.py +++ b/tests/Traffic.py @@ -6,6 +6,7 @@ # Copyright 2019 Wan Liuyang # # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -25,6 +26,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -63,35 +66,35 @@ def testGetPaths(self): ) def testGetViews(self): - viewsResponse = self.repo.get_views_traffic() - self.assertEqual(viewsResponse["count"], 93) - self.assertEqual(viewsResponse["uniques"], 4) - self.assertEqual(len(viewsResponse["views"]), 5) - view_obj = viewsResponse["views"][0] - self.assertEqual(view_obj.uniques, 4) + views = self.repo.get_views_traffic() + self.assertEqual(views.count, 93) + self.assertEqual(views.uniques, 4) + self.assertEqual(len(views.views), 5) + view = views.views[0] + self.assertEqual(view.uniques, 4) self.assertEqual( - view_obj.timestamp, + view.timestamp, datetime(2018, 11, 27, 0, 0, tzinfo=timezone.utc), ) - self.assertEqual(view_obj.count, 56) + self.assertEqual(view.count, 56) self.assertEqual( - repr(view_obj), - "View(uniques=4, timestamp=2018-11-27 00:00:00+00:00, count=56)", + repr(view), + "Traffic(uniques=4, timestamp=2018-11-27 00:00:00+00:00, count=56)", ) def testGetClones(self): - clonesResponse = self.repo.get_clones_traffic() - self.assertEqual(clonesResponse["count"], 4) - self.assertEqual(clonesResponse["uniques"], 4) - self.assertEqual(len(clonesResponse["clones"]), 1) - clone_obj = clonesResponse["clones"][0] - self.assertEqual(clone_obj.uniques, 4) + clones = self.repo.get_clones_traffic() + self.assertEqual(clones.count, 4) + self.assertEqual(clones.uniques, 4) + self.assertEqual(len(clones.clones), 1) + clone = clones.clones[0] + self.assertEqual(clone.uniques, 4) self.assertEqual( - clone_obj.timestamp, + clone.timestamp, datetime(2018, 11, 27, 0, 0, tzinfo=timezone.utc), ) - self.assertEqual(clone_obj.count, 4) + self.assertEqual(clone.count, 4) self.assertEqual( - repr(clone_obj), - "Clones(uniques=4, timestamp=2018-11-27 00:00:00+00:00, count=4)", + repr(clone), + "Traffic(uniques=4, timestamp=2018-11-27 00:00:00+00:00, count=4)", ) diff --git a/tests/UserKey.py b/tests/UserKey.py index 937df38c84..b5c4b503a1 100644 --- a/tests/UserKey.py +++ b/tests/UserKey.py @@ -13,6 +13,7 @@ # Copyright 2019 Wan Liuyang # # Copyright 2020 Steve Kowalik # # Copyright 2023 Enrico Minack # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -32,6 +33,10 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime, timezone + from . import Framework @@ -41,11 +46,13 @@ def setUp(self): self.key = self.g.get_user().get_key(2626650) def testAttributes(self): + self.assertEqual(self.key.created_at, datetime(2024, 12, 23, 12, 34, 56, tzinfo=timezone.utc)) self.assertEqual(self.key.id, 2626650) self.assertEqual( self.key.key, "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw==", ) + self.assertTrue(self.key.read_only) self.assertEqual(self.key.title, "Key added through PyGithub") self.assertEqual(self.key.url, "https://api.github.com/user/keys/2626650") self.assertTrue(self.key.verified) diff --git a/tests/Workflow.py b/tests/Workflow.py index bd15160bda..8c16433cd5 100644 --- a/tests/Workflow.py +++ b/tests/Workflow.py @@ -17,6 +17,8 @@ # Copyright 2023 Thomas Burghout # # Copyright 2024 Benjamin K <53038537+treee111@users.noreply.github.com> # # Copyright 2024 Enrico Minack # +# Copyright 2025 Enrico Minack # +# Copyright 2025 Nick McClorey <32378821+nickrmcclorey@users.noreply.github.com># # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -36,6 +38,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -51,8 +55,15 @@ def testAttributes(self): repr(self.workflow), 'Workflow(url="https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390", name="check")', ) + self.assertEqual(self.workflow.badge_url, "https://github.com/PyGithub/PyGithub/workflows/check/badge.svg") + self.assertEqual(self.workflow.created_at, datetime(2020, 4, 15, 0, 48, 32, tzinfo=timezone.utc)) + self.assertIsNone(self.workflow.deleted_at) + self.assertEqual( + self.workflow.html_url, "https://github.com/PyGithub/PyGithub/blob/master/.github/workflows/check.yml" + ) self.assertEqual(self.workflow.id, 1026390) self.assertEqual(self.workflow.name, "check") + self.assertEqual(self.workflow.node_id, "MDg6V29ya2Zsb3cxMDI2Mzkw") self.assertEqual(self.workflow.path, ".github/workflows/check.yml") self.assertEqual(self.workflow.state, "active") timestamp = datetime(2020, 4, 15, 0, 48, 32, tzinfo=timezone.utc) @@ -130,3 +141,19 @@ def testCreateDispatchWithString(self): def testCreateDispatchForNonTriggerEnabled(self): workflow = self.g.get_repo("wrecker/PyGithub").get_workflow("check.yml") self.assertFalse(workflow.create_dispatch("main")) + + def testDisable(self): + workflow = self.g.get_repo("nickrmcclorey/PyGithub").get_workflow("ci.yml") + self.assertTrue(workflow.disable()) + + def testDisabledWhenAlreadyDisabled(self): + workflow = self.g.get_repo("nickrmcclorey/PyGithub").get_workflow("ci.yml") + self.assertFalse(workflow.disable()) + + def testEnable(self): + workflow = self.g.get_repo("nickrmcclorey/PyGithub").get_workflow("ci.yml") + self.assertTrue(workflow.enable()) + + def testEnableWhenAlreadyEnabled(self): + workflow = self.g.get_repo("nickrmcclorey/PyGithub").get_workflow("ci.yml") + self.assertTrue(workflow.enable()) diff --git a/tests/WorkflowRun.py b/tests/WorkflowRun.py index 03e3b1de2e..2f5841d084 100644 --- a/tests/WorkflowRun.py +++ b/tests/WorkflowRun.py @@ -10,6 +10,7 @@ # Copyright 2024 Chris Gavin # # Copyright 2024 Enrico Minack # # Copyright 2024 Geoffrey # +# Copyright 2025 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,6 +30,8 @@ # # ################################################################################ +from __future__ import annotations + from datetime import datetime, timezone from . import Framework @@ -46,30 +49,67 @@ def testAttributes(self): 'WorkflowRun(url="https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935", id=3881497935)', ) self.assertEqual(self.workflow_run.actor.login, "nuang-ee") + self.assertEqual( + self.workflow_run.artifacts_url, + "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/artifacts", + ) + self.assertEqual( + self.workflow_run.cancel_url, + "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/cancel", + ) + self.assertEqual(self.workflow_run.check_suite_id, 10279069747) + self.assertEqual(self.workflow_run.check_suite_node_id, "CS_kwDOADYVqs8AAAACZK4oMw") + self.assertEqual( + self.workflow_run.check_suite_url, "https://api.github.com/repos/PyGithub/PyGithub/check-suites/10279069747" + ) + self.assertEqual(self.workflow_run.conclusion, "success") + self.assertEqual(self.workflow_run.created_at, datetime(2023, 1, 10, 8, 24, 19, tzinfo=timezone.utc)) + self.assertEqual(self.workflow_run.display_title, "TEST PR") + self.assertEqual(self.workflow_run.event, "pull_request") + self.assertEqual(self.workflow_run.head_branch, "feat/workflow-run") + self.assertEqual(self.workflow_run.head_commit.sha, "c6e5cac67a58a4eb11f1f28567a77a6e2cc8ee98") + self.assertEqual(self.workflow_run.head_repository.full_name, "nuang-ee/PyGithub") + self.assertIsNone(self.workflow_run.head_repository_id) + self.assertEqual(self.workflow_run.head_sha, "c6e5cac67a58a4eb11f1f28567a77a6e2cc8ee98") + self.assertEqual(self.workflow_run.html_url, "https://github.com/PyGithub/PyGithub/actions/runs/3881497935") self.assertEqual(self.workflow_run.id, 3881497935) + self.assertEqual( + self.workflow_run.jobs_url, "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/jobs" + ) + self.assertEqual( + self.workflow_run.logs_url, "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/logs" + ) self.assertEqual(self.workflow_run.name, "CI") self.assertEqual(self.workflow_run.head_branch, "feat/workflow-run") self.assertEqual(self.workflow_run.head_sha, "c6e5cac67a58a4eb11f1f28567a77a6e2cc8ee98") + self.assertEqual(self.workflow_run.node_id, "WFR_kwLOADYVqs7nWvVP") self.assertEqual(self.workflow_run.path, ".github/workflows/ci.yml") self.assertEqual(self.workflow_run.display_title, "TEST PR") - self.assertEqual(self.workflow_run.run_number, 930) - self.assertEqual(self.workflow_run.run_attempt, 1) + self.assertIsNone(self.workflow_run.previous_attempt_url) + self.assertEqual(len(self.workflow_run.pull_requests), 0) + self.assertEqual(self.workflow_run.referenced_workflows, []) + self.assertEqual(self.workflow_run.repository.full_name, "PyGithub/PyGithub") + self.assertIsNone(self.workflow_run.repository_id) self.assertEqual( - self.workflow_run.run_started_at, - datetime(2023, 1, 10, 8, 24, 19, tzinfo=timezone.utc), + self.workflow_run.rerun_url, "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/rerun" ) + self.assertEqual(self.workflow_run.run_attempt, 1) + self.assertEqual(self.workflow_run.run_number, 930) + self.assertEqual(self.workflow_run.run_attempt, 1) + self.assertEqual(self.workflow_run.run_started_at, datetime(2023, 1, 10, 8, 24, 19, tzinfo=timezone.utc)) self.assertEqual(self.workflow_run.event, "pull_request") self.assertEqual(self.workflow_run.status, "completed") self.assertEqual(self.workflow_run.conclusion, "success") - self.assertEqual(self.workflow_run.workflow_id, 1903133) + self.assertEqual(self.workflow_run.triggering_actor.login, "nuang-ee") + self.assertEqual(self.workflow_run.updated_at, datetime(2023, 1, 10, 8, 28, 20, tzinfo=timezone.utc)) self.assertEqual( - self.workflow_run.url, - "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935", + self.workflow_run.url, "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935" ) + self.assertEqual(self.workflow_run.workflow_id, 1903133) self.assertEqual( - self.workflow_run.html_url, - "https://github.com/PyGithub/PyGithub/actions/runs/3881497935", + self.workflow_run.url, "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935" ) + self.assertEqual(self.workflow_run.html_url, "https://github.com/PyGithub/PyGithub/actions/runs/3881497935") self.assertEqual(self.workflow_run.pull_requests, []) created_at = datetime(2023, 1, 10, 8, 24, 19, tzinfo=timezone.utc) self.assertEqual(self.workflow_run.created_at, created_at) @@ -104,6 +144,7 @@ def testAttributes(self): "https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1903133", ) self.assertEqual(self.workflow_run.head_commit.message, "add attribute 'name' on WorkflowRun") + self.assertEqual(self.workflow_run.head_commit.tree.sha, "3ce398f9ee2571549b7fea545bfa5bf28e3ca0f5") self.assertEqual(self.workflow_run.repository.name, "PyGithub") self.assertEqual(self.workflow_run.head_repository.name, "PyGithub") diff --git a/tox.ini b/tox.ini index a13fb3c336..057fd5a26b 100644 --- a/tox.ini +++ b/tox.ini @@ -16,7 +16,7 @@ python = [testenv] deps = -rrequirements/test.txt -commands = pytest --cov=github --cov-report=xml {posargs} +commands = pytest --junit-xml pytest.xml --cov=github --cov-report=xml {posargs} [testenv:lint] basepython = python3.8